यह प्रोटोकॉल संदर्भ है। यदि आप बस 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 आवश्यक। जो क्लाइंट पहले कभी आपके इंजन से नहीं मिला, वह पूरा प्रवाह स्वयं खोज और पूरा कर सकता है — कुछ भी हाथ से पूर्व-पंजीकृत नहीं है।

  1. क्लाइंट बिना टोकन के /mcp पर POST करता है और 401 के साथ एक WWW-Authenticate हेडर प्राप्त करता है जो रिसोर्स मेटाडेटा URL का नाम बताता है।
  2. यह /.well-known/oauth-protected-resource फ़ेच करता है, जो ऑथराइज़ेशन सर्वर की ओर इंगित करता है।
  3. यह एंडपॉइंट और समर्थित स्कोप के लिए /.well-known/oauth-authorization-server फ़ेच करता है।
  4. यह POST /oauth/register पर खुद को पंजीकृत करता है और एक client_id प्राप्त करता है। कोई सीक्रेट जारी नहीं किया जाता।
  5. यह ब्राउज़र में /oauth/authorize खोलता है। आप अपने सामान्य इंजन खाते से साइन इन करते हैं और अनुरोधित स्कोप को स्वीकृत करते हैं।
  6. यह एक एक्सेस टोकन और रिफ्रेश टोकन के लिए /oauth/token पर कोड एक्सचेंज करता है।
  7. यह Authorization: Bearer … के साथ /mcp को कॉल करता है।
ऑथराइज़ेशन कोड60 सेकंड, एकल उपयोग
एक्सेस टोकन1 घंटा
रिफ्रेश टोकन30 दिन, प्रत्येक उपयोग पर रोटेट होता है
PKCEकेवल S256plain अस्वीकृत है

रिफ्रेश टोकन रोटेट होते हैं, और पहले से रोटेट किए गए टोकन का पुनः उपयोग चोरी माना जाता है: पूरा टोकन परिवार रद्द कर दिया जाता है और क्लाइंट को फिर से ऑथराइज़ करना होता है। कोड और टोकन हैश करके संग्रहीत किए जाते हैं, कभी सादे पाठ में नहीं।

क्लाइंट को स्कोप स्पष्ट रूप से अनुरोध करने होंगे

कोई डिफ़ॉल्ट स्कोप सेट नहीं है। एक ऑथराइज़ेशन अनुरोध जो 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 कुंजी के साथ समान ऑपरेशन कवर करता है।