यह प्रोटोकॉल संदर्भ है। यदि आप बस Claude या ChatGPT को अपने इंजन की ओर इंगित करके उससे बात करना शुरू करना चाहते हैं, तो अपने एजेंट को कनेक्ट करना वह पृष्ठ है जो आप चाहते हैं — यह क्लाइंट पक्ष को कवर करता है। यह पृष्ठ उसके अंतर्गत होने वाली प्रक्रियाओं को कवर करता है।
एंडपॉइंट
POST https://your-host/mcp एक URL, डैशबोर्ड और REST API के समान मूल पर। ट्रांसपोर्ट POST पर JSON-RPC 2.0 के साथ streamable HTTP है; कॉन्फ़िगर करने के लिए कोई अलग SSE एंडपॉइंट नहीं है।
| प्रोटोकॉल संस्करण | 2025-06-18 |
|---|---|
| सर्वर नाम | fastsite |
| क्षमताएँ | tools |
| विधियाँ | initialize, ping, tools/list, tools/call |
अन्य कुछ भी -32601 लौटाता है। नोटिफिकेशन बिना बॉडी के 202 का जवाब देते हैं। 20 संदेशों तक के बैच स्वीकार किए जाते हैं।
टूल की विफलताएँ परिणाम हैं, प्रोटोकॉल त्रुटियाँ नहीं
जब कोई टूल विफल होता है — एक अनुपस्थित साइट, एक अस्वीकृत शेल फ़ाइल, एक सत्यापन त्रुटि — तो आपको JSON-RPC त्रुटि नहीं, बल्कि isError: true और एक मानव-पठनीय संदेश के साथ एक सामान्य परिणाम मिलता है। यह जानबूझकर किया गया है: एक मॉडल संदेश पढ़कर खुद को सुधार सकता है, जो वह ट्रांसपोर्ट-स्तरीय विफलता के साथ नहीं कर सकता।
प्रमाणीकरण
OAuth 2.1, पब्लिक क्लाइंट, PKCE आवश्यक। जो क्लाइंट पहले कभी आपके इंजन से नहीं मिला, वह पूरा प्रवाह स्वयं खोज और पूरा कर सकता है — कुछ भी हाथ से पूर्व-पंजीकृत नहीं है।
- क्लाइंट बिना टोकन के
/mcpपरPOSTकरता है और401के साथ एकWWW-Authenticateहेडर प्राप्त करता है जो रिसोर्स मेटाडेटा URL का नाम बताता है। - यह
/.well-known/oauth-protected-resourceफ़ेच करता है, जो ऑथराइज़ेशन सर्वर की ओर इंगित करता है। - यह एंडपॉइंट और समर्थित स्कोप के लिए
/.well-known/oauth-authorization-serverफ़ेच करता है। - यह
POST /oauth/registerपर खुद को पंजीकृत करता है और एकclient_idप्राप्त करता है। कोई सीक्रेट जारी नहीं किया जाता। - यह ब्राउज़र में
/oauth/authorizeखोलता है। आप अपने सामान्य इंजन खाते से साइन इन करते हैं और अनुरोधित स्कोप को स्वीकृत करते हैं। - यह एक एक्सेस टोकन और रिफ्रेश टोकन के लिए
/oauth/tokenपर कोड एक्सचेंज करता है। - यह
Authorization: Bearer …के साथ/mcpको कॉल करता है।
| ऑथराइज़ेशन कोड | 60 सेकंड, एकल उपयोग |
|---|---|
| एक्सेस टोकन | 1 घंटा |
| रिफ्रेश टोकन | 30 दिन, प्रत्येक उपयोग पर रोटेट होता है |
| PKCE | केवल S256 — plain अस्वीकृत है |
रिफ्रेश टोकन रोटेट होते हैं, और पहले से रोटेट किए गए टोकन का पुनः उपयोग चोरी माना जाता है: पूरा टोकन परिवार रद्द कर दिया जाता है और क्लाइंट को फिर से ऑथराइज़ करना होता है। कोड और टोकन हैश करके संग्रहीत किए जाते हैं, कभी सादे पाठ में नहीं।
क्लाइंट को स्कोप स्पष्ट रूप से अनुरोध करने होंगे
कोई डिफ़ॉल्ट स्कोप सेट नहीं है। एक ऑथराइज़ेशन अनुरोध जो scope को पूरी तरह छोड़ देता है, उसे सुरक्षित न्यूनतम देने के बजाय invalid_scope के साथ अस्वीकार कर दिया जाता है। यदि आप एक क्लाइंट लिख रहे हैं, तो केवल वही मांगें जो आपको चाहिए — सहमति स्क्रीन उपयोगकर्ता को प्रत्येक स्कोप का सरल भाषा में विवरण दिखाती है।
एक टोकन क्या तक पहुँच सकता है
स्कोप तय करते हैं कि किस प्रकार का ऑपरेशन अनुमत है। आपका खाता तय करता है कि यह किन साइटों पर लागू होता है।
एक टोकन उन स्कोप को वहन करता है जिन्हें आपने स्वीकृत किया है। प्रत्येक साइट-स्कोप्ड टूल फिर उस साइट तक साइन-इन उपयोगकर्ता की अपनी पहुँच जाँचता है — प्रत्यक्ष सदस्यता, साइट की टीम की सदस्यता, या एडमिन भूमिका। आपके खाते से जुड़ा एक एजेंट उन साइटों तक पहुँच सकता है जिन तक आप पहुँच सकते हैं, और किसी अन्य तक नहीं। content:write देने से यह नहीं बढ़ता; यह केवल तय करता है कि एजेंट उन साइटों पर क्या कर सकता है जो आपके पास पहले से हैं।
स्कोप शब्दावली API कुंजियों के साथ साझा की जाती है, इसलिए एक टूल और एक एंडपॉइंट एक ही चीज़ लागू करते हैं। पूरी सूची REST API पृष्ठ पर है।
टूल
पचास से अधिक, जो डैशबोर्ड की सभी कार्यक्षमताओं को कवर करते हैं। tools/list आपके संस्करण के लिए आधिकारिक सूची है — यह इसका आकार है।
सामग्री
list_posts, get_post, create_post, create_page, update_post, delete_content, restore_content, purge_content, list_trash, fact_check
मीडिया
list_media, upload_media_from_url, delete_media, restore_media, purge_media
शेल और डिज़ाइन
shell_list_files, shell_get_file, shell_put_file, shell_snapshot, shell_restore, list_components, upsert_component, delete_component
स्थानीयकरण
add_language, remove_language, translate_site
प्रकाशन
publish_site, preview_site, get_build_status, list_jobs
साइटें और रूटिंग
list_sites, create_site, update_site, list_redirects, upsert_redirect, delete_redirect, list_scripts, upsert_script, delete_script
वेबहुक और बैकअप
list_webhooks, create_webhook, webhook_deliveries, backup_site, list_backups, restore_backup
टीमें और क्रेडेंशियल
list_teams, create_team, invite_member, accept_invite, और प्रकाशन के लिए उपयोग किए जाने वाले GitHub क्रेडेंशियल टूल
इंजन को पुनर्स्थापित करना जानबूझकर अनुपस्थित है। डिज़ास्टर रिकवरी एक कमांड है जिसे आप वर्कर बंद करके बॉक्स पर चलाते हैं, न कि कुछ ऐसा जिसे कोई एजेंट ट्रिगर कर सके।
गाइड से शुरू करें
get_authoring_guide वह टूल है जिसे पहले कॉल करना है, शेल डिज़ाइन करने या बॉडी लिखने से पहले। एक साइट हैंडल पास करें और यह उस साइट के लोकेल और एम्बेड सिंटैक्स को शामिल करता है।
{
"method": "tools/call",
"params": {
"name": "get_authoring_guide",
"arguments": { "site": "blog" }
}
} यह वे नियम लौटाता है जिन्हें बिल्ड ऑडिट वास्तव में लागू करता है: केवल बॉडी HTML, आवश्यक छवि आयाम और alt टेक्स्ट, शून्य-JavaScript बाधा, और मीडिया व कंपोनेंट के लिए एम्बेड सिंटैक्स। जो एजेंट इसे पहले पढ़ता है वह ऐसा मार्कअप लिखता है जो प्रकाशित होता है; जो अनुमान लगाता है वह ऐसा मार्कअप लिखता है जो अस्वीकार हो जाता है।
सामग्री बनाना
{
"method": "tools/call",
"params": {
"name": "create_post",
"arguments": {
"site": "blog",
"title": "Hello, world",
"body_html": "<p>Shipped by an agent.</p>",
"status": "published"
}
}
} छवियों को मीडिया id द्वारा संदर्भित किया जाता है, कभी बाहरी URL द्वारा नहीं — upload_media_from_url एक छवि आयात करता है और बॉडी में पेस्ट करने के लिए एम्बेड स्निपेट लौटाता है। Alt टेक्स्ट आवश्यक है।
यदि कोई क्लाइंट कनेक्ट नहीं होगा
- डिस्कवरी localhost लौटाती है। इंजन OAuth मेटाडेटा में अपना URL विज्ञापित करता है। यदि
APP_URLअभी भी डिफ़ॉल्ट है, तो एक रिमोट क्लाइंट कोlocalhostके विरुद्ध ऑथराइज़ करने के लिए कहा जाता है और पंजीकरण विफल हो जाता है।APP_URLको वास्तविक सार्वजनिक URL पर सेट करें। - एंडपॉइंट पहुँच योग्य और HTTPS होना चाहिए। रिमोट क्लाइंट गैर-लूपबैक होस्ट पर सादे HTTP पर OAuth प्रवाह नहीं चलाएंगे।
- पहले 401 जाँचें। एक सही अप्रमाणित
POST /mcpएकWWW-Authenticateहेडर के साथ401लौटाता है। यदि यह कुछ और लौटाता है, तो समस्या इंजन के सामने है, क्लाइंट में नहीं। - Stdio-only क्लाइंट को एक ब्रिज की आवश्यकता है। उन्हें
npx mcp-remote https://your-host/mcpपर इंगित करें।
सादे HTTP कॉल पसंद करते हैं? REST API टोकन के बजाय API कुंजी के साथ समान ऑपरेशन कवर करता है।