GitHub MCP Server: सेटअप, टोकन उपयोग और रेट लिमिट, बिना किसी झटके के

GitHub MCP server को VS Code, Claude Desktop या Cursor से OAuth या सीमित अनुमति वाले टोकन के साथ जोड़ें, टूल परिभाषाओं को टूलसेट और केवल-पढ़ने वाले मोड से घटाएँ, और GitHub की 5,000 प्रति घंटा और 80 प्रति मिनट की सीमाओं को संभालें, ताकि 403 या 429 त्रुटियाँ अचानक न आएँ।

GitHub MCP Server: सेटअप, टोकन उपयोग और रेट लिमिट, बिना किसी झटके के
Cristian Da Conceicao
Picasso IA के संस्थापक

GitHub MCP server को अपने एडिटर से जोड़ते ही AI एजेंट आपकी ओर से issues पढ़ सकता है, pull requests की समीक्षा कर सकता है और branches खोल सकता है। लेकिन यह हर बातचीत में टूल डेफ़िनिशन की लंबी सूची भी लोड करता है, और जो भी टोकन आप इसे देते हैं, उसका रिक्वेस्ट बजट भी खर्च करता है। तीन बातें तय करती हैं कि सेटअप आसान लगेगा या भारी: आप इसे कैसे जोड़ते हैं, सर्वर कितने कॉन्टेक्स्ट टोकन खाता है, और आपको पहले कौन-सी रेट लिमिट छूती है।

नीचे दिया हर आँकड़ा GitHub के अपने डॉक्युमेंटेशन या 2026 में प्रकाशित कम्युनिटी मापों से लिया गया है, और हर एक पर उसका स्रोत लिखा है। टोकन गिनती सर्वर के वर्ज़न के साथ बदलती है, इसलिए इन्हें वादे नहीं, बल्कि रेंज मानें। MCP टूलिंग के बारे में आप जो भी संख्या पढ़ें, उस पर बजट बनाने से पहले देख लें कि उसे किस वर्ज़न पर मापा गया था।

💡 संक्षेप में: रिमोट सर्वर इस्तेमाल करें, उसे सीमित टोकन दें, सिर्फ़ वही toolsets चालू रखें जिनकी आपको ज़रूरत है, और जब GitHub 403 या 429 लौटाए तो कम से कम एक मिनट रुकें।

रिमोट या लोकल सर्वर?

दोनों विकल्पों में वही GitHub टूल मिलते हैं। बदलता है यह कि प्रोसेस कौन चलाता है और आप साइन इन कैसे करते हैं। गलत चुनाव का मतलब है पाँच लैपटॉप पर Docker संभालना, या किसी फ़ीचर के लिए GitHub का इंतज़ार करना जिसकी आपको कल ज़रूरत थी।

रिमोट सर्वर की मूल बातें

GitHub रिमोट सर्वर को https://api.githubcopilot.com/mcp/ पर होस्ट करता है। आपका क्लाइंट इसी URL की ओर इशारा करता है और आप ब्राउज़र के ज़रिए OAuth से साइन इन करते हैं, या Authorization हेडर में personal access token भेजते हैं। कुछ इंस्टॉल नहीं करना पड़ता और कुछ अपडेट नहीं करना पड़ता, क्योंकि नए टूल GitHub के शेड्यूल पर आते हैं, आपके शेड्यूल पर नहीं।

इसी होस्ट पर https://api.githubcopilot.com/mcp/insiders पर एक insiders वैरिएंट भी है, जिसमें शुरुआती फ़ीचर मिलते हैं। इसे अपने रोज़ के सेटअप तक पहुँचाने से पहले किसी टेस्ट मशीन पर आज़माएँ।

लोकल Docker विकल्प

लोकल सर्वर इमेज ghcr.io/github/github-mcp-server के रूप में आता है। आपका क्लाइंट इसे docker run -i --rm से चलाता है और stdio के ज़रिए इससे बात करता है। वर्ज़न आप चुनते हैं, हर environment variable आप नियंत्रित करते हैं, और GITHUB_HOST के साथ इसे GitHub Enterprise Server की ओर भी मोड़ सकते हैं। कीमत यह है कि हर मशीन पर Docker चाहिए और एक config फ़ाइल में टोकन पड़ा रहता है।

काले रैक के बीच साफ़ नेटवर्क केबल वाला संकरा सर्वर रूम गलियारा

रिमोट सर्वरलोकल Docker सर्वर
इंस्टॉलकोई नहींDocker इमेज
साइन इनOAuth, या हेडर में टोकनGITHUB_PERSONAL_ACCESS_TOKEN में टोकन, या callback port के साथ OAuth
अपडेटGitHub संभालता हैआप इमेज पुल करते हैं
GitHub Enterprise Serverसमर्थित नहींGITHUB_HOST के ज़रिए समर्थित
किसके लिए सबसे अच्छाज़्यादातर व्यक्तिगत डेवलपरपिन किए गए वर्ज़न और Enterprise Server

पाँच मिनट में सेटअप

नीचे दिया हर स्निपेट प्रोजेक्ट के README से लिया गया है। कोई एक चिपकाएँ, क्लाइंट को रीस्टार्ट करें और स्मोक टेस्ट के तौर पर एजेंट से अपनी खुली pull requests की सूची माँगें। अगर सूची आ जाए, तो कनेक्शन काम कर रहा है, और इसके आगे का सब कुछ ट्यूनिंग है।

लैपटॉप पर टाइप करते डेवलपर के हाथ, जिसमें हार्डवेयर सिक्योरिटी टोकन लगा है

OAuth के साथ VS Code

यह सबसे छोटा रास्ता है। कोई टोकन बनाना नहीं पड़ता और कोई सीक्रेट स्टोर नहीं करना पड़ता।

{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}

VS Code एक ब्राउज़र टैब खोलता है, आप एक्सेस को मंज़ूरी देते हैं, और क्रेडेंशियल किसी फ़ाइल में लिखे जाने के बजाय मेमोरी में रहता है।

टोकन के साथ VS Code

यह रास्ता तब अपनाएँ जब आपका क्लाइंट OAuth फ़्लो को सपोर्ट नहीं करता, या जब आप किसी टोकन को खास scopes तक सीमित रखना चाहते हैं।

{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

password: true फ़्लैग VS Code के पूछने पर वैल्यू को मास्क कर देता है, इसलिए टोकन उस फ़ाइल में कभी नहीं लिखा जाता जिसे आप कमिट कर सकते हैं।

Claude Desktop कॉन्फ़िग

Claude Desktop लोकल Docker सर्वर शुरू करता है और उसे एक environment variable के ज़रिए टोकन देता है:

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
               "ghcr.io/github/github-mcp-server"],
      "env": {"GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"}
    }
  }
}

your_token_here की जगह असली टोकन लगाएँ और यह फ़ाइल version control से बाहर रखें। Cursor भी VS Code वाले उदाहरणों से मिलती-जुलती संरचना स्वीकार करता है।

💡 अगर टोकन और OAuth दोनों कॉन्फ़िगर हैं, तो टोकन जीतता है। प्रोजेक्ट डॉक्स के अनुसार GITHUB_PERSONAL_ACCESS_TOKEN को OAuth पर प्राथमिकता मिलती है।

Personal Access Token के Scopes

नोटबुक और फ़ाउंटेन पेन के बगल में बंद लैपटॉप पर रखा पीतल का ताला

टोकन इस सेटअप का वह हिस्सा है जो आपको सचमुच नुकसान पहुँचा सकता है। जो एजेंट कोई व्यापक टोकन रखता है, वह उस टोकन की इजाज़त वाली हर चीज़ कर सकता है, जिसमें वे गलतियाँ भी शामिल हैं जो आप हाथ से कभी नहीं करेंगे।

सबसे छोटे scopes चुनें

README तीन scopes की सिफ़ारिश करता है:

Scopeक्या अनुमति देता है
repoRepository ऑपरेशन
read:packagesDocker इमेज एक्सेस
read:orgOrganization team एक्सेस

repo से शुरू करें और बाकी तभी जोड़ें जब कोई टूल permission error देने लगे। अगर आप सिर्फ़ कुछ गिने-चुने repositories में काम करते हैं, तो उन्हीं तक सीमित fine-grained टोकन और भी कसा हुआ रहेगा। हर प्रोजेक्ट के लिए अलग टोकन रखें, ताकि एक को रद्द करने से बाकी न टूटें।

टोकन को Git से बाहर रखें

तीन आदतें ज़्यादातर लीक को रोक देती हैं:

  • टोकन को environment variable या प्रॉम्प्ट इनपुट में रखें, कभी कमिट की गई config फ़ाइल में नहीं।
  • किसी भी लोकल config की अनुमतियाँ chmod 600 ~/.your-app/config.json से सीमित करें।
  • टोकन को शेड्यूल पर रोटेट करें, और जैसे ही कोई diff में दिखे, उसे तुरंत रद्द करें।

टूल डेफ़िनिशन की असली कीमत

स्टील के स्केल के बगल में प्रिंटेड पन्नों के दो ढेर, एक ऊँचा और एक पतला

MCP क्लाइंट हर जुड़े सर्वर की डेफ़िनिशन मॉडल के कॉन्टेक्स्ट में लोड करता है, ताकि मॉडल जान सके कि वह किन चीज़ों को कॉल कर सकता है। यह पेलोड हर request पर आपकी कॉन्टेक्स्ट विंडो में गिना जाता है, चाहे एजेंट कोई टूल इस्तेमाल करे या नहीं। कम्युनिटी अनुमान के अनुसार नाम, विवरण और पैरामीटर schema जोड़ने पर एक अकेली डेफ़िनिशन लगभग 300 से 600 टोकन की होती है।

GitHub के सर्वर में बहुत सारे टूल हैं, इसीलिए कॉन्टेक्स्ट फूलने की हर चर्चा में यह नाम आता है।

आँकड़े क्या कहते हैं

ये 2026 में dev.to पर प्रकाशित कम्युनिटी माप हैं, GitHub के आँकड़े नहीं:

मापटोकनटूलस्रोत
पूरी टूल सतहलगभग 55,00093Piotr Hajdas
पूरी टूल सतह, कम गिनतीलगभग 42,000उल्लेख नहींThe Daily Agent
सिर्फ़ डिफ़ॉल्ट toolsetsलगभग 4,20026Ken Imoto

200,000 टोकन की विंडो पर 55,000 वाला आँकड़ा एक चौथाई से ज़्यादा जगह है, जो आपके कुछ लिखने से पहले ही खप जाती है। डिफ़ॉल्ट toolsets लगभग 2% आते हैं। संख्याएँ इसलिए अलग हैं क्योंकि लोगों ने अलग सर्वर वर्ज़न और toolset कॉन्फ़िगरेशन पर माप किया।

आपका क्लाइंट भी मायने रखता है। 2026 के एक लेख के अनुसार Claude Code डिफ़ॉल्ट रूप से MCP टूल schemas को एक tool-search चरण के पीछे टाल देता है, और एक माप में इससे 46.9% की कमी दर्ज हुई। Cursor, Windsurf और Gemini CLI definitions पहले से लोड करते हैं, इसलिए उन्हें पूरी कीमत चुकानी पड़ती है।

toolsets से काटें

Toolsets टूल के पूरे समूहों को चालू या बंद करते हैं। कोई सेटिंग न हो तो सर्वर context, issues, pull_requests, repos और users चालू करता है। सूची के बाकी toolsets actions, code_quality, code_security, copilot, dependabot, discussions, gists, git, governance, labels, notifications, orgs, projects, secret_protection, security_advisories और stargazers हैं। विशेष मान all और default वही करते हैं जो उनके नाम कहते हैं।

लोकल सर्वर के लिए GITHUB_TOOLSETS सेट करें:

docker run -e GITHUB_PERSONAL_ACCESS_TOKEN=<token> \
  -e GITHUB_TOOLSETS="repos,issues,pull_requests" \
  ghcr.io/github/github-mcp-server

रिमोट सर्वर के लिए X-MCP-Toolsets हेडर में वही comma-separated सूची भेजें:

{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}",
        "X-MCP-Toolsets": "repos,issues,pull_requests"
      }
    }
  }
}

परिणाम को ठीक करने के लिए दो और नियंत्रण हैं। GITHUB_TOOLS (या X-MCP-Tools हेडर) आपके toolsets के ऊपर अलग-अलग टूल जोड़ता है, जैसे gists के सभी टूल चालू किए बिना get_gist। X-MCP-Exclude-Tools टूल हटाता है, और डॉक्स बताते हैं कि excluded टूल toolsets और अलग-अलग टूल, दोनों पर भारी पड़ते हैं।

लकड़ी के काम की दीवार पर पेगबोर्ड, जिस पर चुने हुए कुछ औज़ार बेंच पर रखे हैं

💡 all से बचें। लगभग 4,200 टोकन की डेफ़िनिशन से बढ़कर लगभग 55,000 पर जाने का मतलब है ऐसे टूल के लिए भुगतान करना जिन्हें आप शायद कभी कॉल नहीं करेंगे, और उनकी कीमत हर request पर चुकाते हैं।

Read-Only और Lockdown मोड

शीशे के डिस्प्ले केस के पीछे से पुराना दस्तावेज़ पढ़ता संग्रहालय का दर्शक

दो स्विच आपके toolsets को छुए बिना नुकसान का दायरा घटाते हैं:

मोडलोकल सर्वररिमोट सर्वरअसर
Read-only--read-only या GITHUB_READ_ONLYX-MCP-Readonly: true, या पथ /mcp/x/all/readonlyहर write टूल बंद करता है, भले ही आपने उन्हें माँगा हो
Lockdown--lockdown-mode या GITHUB_LOCKDOWN_MODEX-MCP-Lockdown हेडरसिर्फ़ push access वाले उपयोगकर्ताओं की public-repository सामग्री दिखाता है

Read-only एक सख्त फ़िल्टर की तरह काम करता है जो आपकी बाकी कॉन्फ़िगरेशन पर भारी पड़ता है, और बंद किए गए टूल का मतलब है लोड होने के लिए कम डेफ़िनिशन। Lockdown तब मायने रखता है जब एजेंट ऐसे issues या comments पढ़ता है जो अजनबियों ने लिखे हों, क्योंकि बिना push access वाले लोगों का टेक्स्ट ही वह जगह है जहाँ शत्रुतापूर्ण निर्देश छिपते हैं। HTTP मोड में, एक बार ऑपरेटर सर्वर पर lockdown चालू कर दे, तो X-MCP-Lockdown हेडर उसे एक request के लिए भी बंद नहीं कर सकता।

वे रेट लिमिट जो आपको सचमुच छुएँगी

टोल प्लाज़ा पर बूथों के सामने कतार में लगी गाड़ियों का हवाई दृश्य

सर्वर GitHub API को आपकी पहचान के तहत कॉल करता है, इसलिए मायने वे सीमाएँ रखती हैं जो GitHub अपने REST API के लिए डॉक्यूमेंट करता है। दो परतें लागू होती हैं: प्रति घंटे की primary limit और प्रति मिनट की secondary limits।

प्रति घंटे की Primary Limits

कॉलरसीमा
प्रमाणीकरण के बिनाप्रति घंटे 60 रिक्वेस्ट
प्रमाणित यूज़र (टोकन, OAuth ऐप या GitHub App)प्रति घंटे 5,000
Enterprise Cloud संगठनों के स्वामित्व या अनुमोदित ऐप्सप्रति घंटे 15,000
Enterprise के बाहर GitHub App इंस्टॉलेशन5,000, 12,500 तक बढ़ती है
GITHUB_TOKEN Actions के भीतरप्रति repository प्रति घंटे 1,000 (Enterprise Cloud पर 15,000)

5,000 प्रति घंटे पर आपको औसतन लगभग 83 calls प्रति मिनट मिलती हैं। ऐसा एजेंट जो किसी repository के issues की सूची लाता है, हर issue खोलता है और फिर हर comment पढ़ता है, वह कुछ ही मिनटों में सैकड़ों calls खर्च कर सकता है, इसलिए बड़े triage सेशन में प्रति घंटे का बजट एक असली बाध्यता है।

प्रति मिनट की Secondary Limits

Secondary limits बर्स्ट रोकने के लिए होती हैं, और एजेंट बर्स्ट पैदा करते हैं। GitHub इन्हें इस तरह डॉक्यूमेंट करता है:

  • एक साथ अधिकतम 100 रिक्वेस्ट।
  • REST एंडपॉइंट्स के लिए प्रति मिनट 900 points।
  • 90 सेकंड का CPU टाइम असली समय के प्रति 60 सेकंड पर।
  • प्रति मिनट 80 कंटेंट जनरेट करने वाली रिक्वेस्ट और प्रति घंटे 500।
  • प्रति घंटे 2,000 OAuth access token रिक्वेस्ट।

समानांतर (parallel) टूल calls एक साथ चलने की सीमा के सामने जमा होती जाती हैं। ऐसा एजेंट जो लूप में दर्जनों issues पर comment करता है, प्रति घंटे के बजट तक पहुँचने से बहुत पहले प्रति मिनट 80 की कंटेंट-जनरेशन सीमा तक पहुँच जाता है।

403 और 429 एरर ठीक करना

रात में एक ही डेस्क लैंप के नीचे लैपटॉप पर थका हुआ डेवलपर

जब कोई सीमा टूटती है, तो GitHub 403 या 429 लौटाता है। कुछ भी बदलने से पहले response headers पढ़ें:

हेडरअर्थ
x-ratelimit-limitप्रति घंटे अधिकतम रिक्वेस्ट
x-ratelimit-remainingमौजूदा विंडो में बची हुई रिक्वेस्ट
x-ratelimit-usedमौजूदा विंडो में की गई रिक्वेस्ट
x-ratelimit-resetविंडो कब रीसेट होती है, UTC epoch सेकंड में
x-ratelimit-resourceरिक्वेस्ट किस resource में गिनी गई

काम करने वाला Backoff

  1. अगर response में retry-after header है, तो उतने सेकंड इंतज़ार करें।
  2. वरना x-ratelimit-reset में दिए समय तक इंतज़ार करें।
  3. बिना headers वाली secondary limits के लिए कम से कम एक मिनट रुकें, फिर हर नई विफलता पर देरी को घातांकीय रूप से (exponentially) बढ़ाएँ।

यह नियम अपने एजेंट के निर्देशों में भी रखें: जब GitHub 403 या 429 लौटाए, तो दोबारा कोशिश करने के बजाय रुककर रिपोर्ट करे। जो एजेंट तुरंत दोबारा कोशिश करता है, वह उस सीमा पर और requests जलाता है जो अभी रीसेट ही नहीं हुई।

3 आम गलतियाँ

  1. हर toolset चालू कर देना। कॉन्टेक्स्ट टूल डेफ़िनिशन से भर जाता है और एजेंट धीमा हो जाता है और टूल चुनने में भी कम सटीक रहता है।
  2. लूप में लिखना। बल्क comments, labels या issues 80 प्रति मिनट की content सीमा को जल्दी छू लेते हैं। काम को बैच करें और बैचों के बीच रुकें।
  3. एक ही व्यापक टोकन हर जगह इस्तेमाल करना। लीक होने या गड़बड़ करने पर सब एक साथ टूट जाता है। हर प्रोजेक्ट को अपना सीमित टोकन दें।

PicassoIA मॉडल को काम पर लगाएँ

लकड़ी की मेज़ के चारों ओर लैपटॉप स्क्रीन देखते तीन डेवलपर

GitHub MCP server कच्चा माल लौटाता है: issues की सूची, diffs, comment threads। कोई लार्ज लैंग्वेज मॉडल उसे फ़ैसलों में बदलता है। PicassoIA पर Claude Sonnet 5 मल्टी-स्टेप कोडिंग और टूल-यूज़ कार्यों को संभालता है, स्क्रीनशॉट पढ़ता है, और आपको यह तय करने देता है कि वह कितनी गहराई से सोचे। इसलिए यह आपके GitHub एजेंट के लौटाए नतीजों पर दूसरी नज़र के रूप में अच्छा काम करता है।

PicassoIA पर Sonnet 5 कैसे इस्तेमाल करें

  1. PicassoIA पर Claude Sonnet 5 खोलें।
  2. आपके एजेंट ने जो issue list या diff लौटाया है, उसे Prompt फ़ील्ड में चिपकाएँ। पहले टोकन और निजी डेटा हटा दें।
  3. एक बार System Prompt सेट करें, जैसे: "आप pull requests की समीक्षा करते हैं और जोखिम भरे बदलावों को तीन बुलेट में बताते हैं।" इसे पूरे प्रोजेक्ट के लिए दोबारा इस्तेमाल करें।
  4. Effort स्तर चुनें। low डिफ़ॉल्ट और सबसे तेज़ है, जबकि high या max उस बग के लिए ठीक है जो कई फ़ाइलों को छूता है।
  5. Max Tokens को 8,192 पर रहने दें, जब तक जवाब कट न रहा हो।
  6. जब सिर्फ़ टेक्स्ट काफ़ी न हो, तो एरर का स्क्रीनशॉट Image फ़ील्ड में जोड़ें।

PicassoIA अपना developer API और MCP कनेक्टर भी देता है, और वही सीमा-तर्क यहाँ भी लागू होता है। API https://api.picassoia.com/v1 पर उपलब्ध है, ऐसी Bearer credentials स्वीकार करता है जो pia_sk_ से शुरू होती हैं, और jobs एसिंक्रोनस तरीके से चलाता है: एक prediction बनाएँ, उसकी स्थिति जाँचें, फिर नतीजा लाएँ। API और MCP के ज़रिए चार मॉडल उपलब्ध हैं: PicassoIA Image, PicassoIA Image Editor Pro, PicassoIA Video और Seedance 2.5 Lite। एक अकाउंट एक साथ 5 predictions चला सकता है, और यह सीमा सभी credentials और MCP कनेक्शनों में साझा रहती है। GitHub की 100 एक साथ चलने वाली रिक्वेस्ट वाली सीमा से यही सबक़ मिलता है: एक साथ चलने की सीमा ही वह पहली दीवार है जिससे समानांतर एजेंट सबसे पहले टकराता है।

Picasso IA पर आज़माएँ

आपका README, release notes और issue templates ऊपर एक असली इमेज के साथ बेहतर लगते हैं। PicassoIA Image से एक फोटोरियलिस्टिक हेडर बनाएँ, फिर PicassoIA Image Editor Pro से फ़्रेमिंग ठीक करें या कोई बारीकी सुधारें।

आज आज़माने लायक तीन प्रॉम्प्ट:

  • सूर्योदय के समय एक साफ़-सुथरी डेवलपर डेस्क, जिस पर लैपटॉप, नोटबुक और मग हों, 35mm फ़िल्म पर शूट की गई।
  • नरम ऊपरी रोशनी और साफ़ केबल वाला संकरा सर्वर रूम गलियारा, वाइड एंगल।
  • लकड़ी की मेज़ के चारों ओर एक शांत टीम रिव्यू सेशन, प्राकृतिक खिड़की की रोशनी में।

एक चुनें, कुछ वैरिएशन बनाएँ और देखें कि कौन-सा आपके अगले repository पेज को अलग दिखाता है। Picasso IA के साथ अपनी इमेज बनाना शुरू करें और तब तक प्रयोग करें जब तक नतीजा आपके प्रोजेक्ट जैसा न लगे।

यह लेख शेयर करें

अपनी भाषा चुनें

संबंधित लेख