GAC को MCP सर्वर के रूप में उपयोग करना

May 17, 2026 · View on GitHub

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano

GAC एक Model Context Protocol (MCP) सर्वर के रूप में चल सकता है, जिससे AI एजेंट और एडिटर शेल कमांड के बजाय संरचित टूल कॉल के माध्यम से कमिट जेनरेट कर सकते हैं।

विषय-सूची

MCP क्या है?

Model Context Protocol एक खुला मानक है जो AI एप्लिकेशन को एक संरचित इंटरफ़ेस के माध्यम से बाहरी टूल्स को कॉल करने की अनुमति देता है। GAC को MCP सर्वर के रूप में चलाकर, कोई भी MCP-संगत क्लाइंट शेल कमांड को सीधे इनवोक किए बिना रिपॉजिटरी स्थिति की जांच कर सकता है और AI-संचालित कमिट बना सकता है।

लाभ

  • संरचित इंटरैक्शन: एजेंट शेल आउटपुट को पार्स करने के बजाय वैलिडेटेड पैरामीटर के साथ टाइप्ड टूल्स कॉल करते हैं
  • दो-टूल वर्कफ़्लो: gac_status से जांच करें, gac_commit से कार्य करें - एजेंट रीजनिंग के लिए स्वाभाविक
  • पूर्ण GAC क्षमताएं: AI कमिट मैसेज, ग्रुप्ड कमिट्स, सीक्रेट स्कैनिंग और पुश - सभी MCP के माध्यम से उपलब्ध
  • ज़ीरो कॉन्फ़िगरेशन: सर्वर आपकी मौजूदा GAC कॉन्फ़िगरेशन (~/.gac.env, प्रोवाइडर सेटिंग्स आदि) का उपयोग करता है

सेटअप

MCP सर्वर uvx gac serve से शुरू होता है और मानक MCP ट्रांसपोर्ट stdio के माध्यम से संचार करता है।

Claude Code

अपने प्रोजेक्ट के .mcp.json या ग्लोबल ~/.claude/claude_code_config.json में जोड़ें:

{
  "mcpServers": {
    "gac": {
      "command": "uvx",
      "args": ["gac", "serve"]
    }
  }
}

या यदि आपके पास GAC ग्लोबली इंस्टॉल है:

{
  "mcpServers": {
    "gac": {
      "command": "gac",
      "args": ["serve"]
    }
  }
}

Cursor

अपनी Cursor MCP सेटिंग्स (.cursor/mcp.json) में जोड़ें:

{
  "mcpServers": {
    "gac": {
      "command": "uvx",
      "args": ["gac", "serve"]
    }
  }
}

अन्य MCP क्लाइंट

कोई भी MCP-संगत क्लाइंट GAC का उपयोग कर सकता है। सर्वर एंट्री पॉइंट है:

command: uvx
args: ["gac", "serve"]
transport: stdio

उपलब्ध टूल्स

सर्वर दो टूल्स प्रदान करता है:

gac_status

रिपॉजिटरी स्थिति की जांच करें। कमिट करने से पहले यह समझने के लिए इसका उपयोग करें कि क्या कमिट किया जाएगा।

पैरामीटर:

ParameterTypeDefaultविवरण
format"summary" | "detailed" | "json""summary"आउटपुट फ़ॉर्मेट
include_diffboolfalseपूर्ण diff सामग्री शामिल करें
include_statsbooltrueलाइन परिवर्तन आंकड़े शामिल करें
include_historyint0शामिल करने के लिए हालिया कमिट्स की संख्या
staged_onlyboolfalseकेवल स्टेज्ड परिवर्तन दिखाएं
include_untrackedbooltrueअनट्रैक्ड फ़ाइलें शामिल करें
max_diff_linesint500diff आउटपुट साइज सीमा (0 = असीमित)

रिटर्न: ब्रांच नाम, फ़ाइल स्थिति (स्टेज्ड/अस्टेज्ड/अनट्रैक्ड/कन्फ्लिक्ट्स), वैकल्पिक diff सामग्री, वैकल्पिक आंकड़े और वैकल्पिक कमिट इतिहास।

gac_commit

AI-संचालित कमिट मैसेज जेनरेट करें और वैकल्पिक रूप से कमिट निष्पादित करें।

पैरामीटर:

ParameterTypeDefaultविवरण
stage_allboolfalseकमिट से पहले सभी परिवर्तन स्टेज करें (git add -A)
fileslist[str][]स्टेज करने के लिए विशिष्ट फ़ाइलें
dry_runboolfalseनिष्पादन के बिना प्रीव्यू
message_onlyboolfalseकमिट किए बिना मैसेज जेनरेट करें
pushboolfalseकमिट के बाद रिमोट पर पुश करें
groupboolfalseपरिवर्तनों को कई तार्किक कमिट्स में विभाजित करें
one_linerboolfalseसिंगल-लाइन कमिट मैसेज
scopestring | nullnullकन्वेंशनल कमिट स्कोप (न दिया जाए तो ऑटो-डिटेक्ट)
hintstring""बेहतर मैसेज के लिए अतिरिक्त संदर्भ
modelstring | nullnullAI मॉडल ओवरराइड (provider:model_name)
languagestring | nullnullकमिट मैसेज भाषा ओवरराइड
skip_secret_scanboolfalseसिक्योरिटी स्कैन छोड़ें
no_verifyboolfalseप्री-कमिट हुक छोड़ें
auto_confirmboolfalseपुष्टि प्रॉम्प्ट छोड़ें (एजेंट के लिए आवश्यक)

रिटर्न: सफलता स्थिति, जेनरेट किया गया कमिट मैसेज, कमिट हैश (यदि कमिट किया गया), बदली गई फ़ाइलों की सूची और कोई चेतावनी।

वर्कफ़्लो

बेसिक कमिट

1. gac_status()                              → देखें क्या बदला है
2. gac_commit(stage_all=true, auto_confirm=true)  → स्टेज करें, मैसेज जेनरेट करें और कमिट करें

कमिट से पहले प्रीव्यू

1. gac_status(include_diff=true, include_stats=true)  → परिवर्तनों की विस्तृत समीक्षा करें
2. gac_commit(stage_all=true, dry_run=true)            → कमिट मैसेज का प्रीव्यू करें
3. gac_commit(stage_all=true, auto_confirm=true)       → कमिट निष्पादित करें

ग्रुप्ड कमिट्स

1. gac_status()                                           → सभी परिवर्तन देखें
2. gac_commit(stage_all=true, group=true, dry_run=true)   → तार्किक ग्रुपिंग का प्रीव्यू करें
3. gac_commit(stage_all=true, group=true, auto_confirm=true)  → ग्रुप्ड कमिट्स निष्पादित करें

संदर्भ के साथ कमिट

1. gac_status(include_history=5)  → स्टाइल संदर्भ के लिए हालिया कमिट्स देखें
2. gac_commit(
     stage_all=true,
     hint="Fixes login timeout bug from issue #42",
     scope="auth",
     auto_confirm=true
   )

कॉन्फ़िगरेशन

MCP सर्वर आपकी मौजूदा GAC कॉन्फ़िगरेशन का उपयोग करता है। इसके अलावा कोई अतिरिक्त सेटअप आवश्यक नहीं है:

  1. प्रोवाइडर और मॉडल: अपने AI प्रोवाइडर को कॉन्फ़िगर करने के लिए uvx gac init या uvx gac model चलाएं
  2. API कुंजियाँ: ~/.gac.env में संग्रहीत (uvx gac init के दौरान सेट अप)
  3. वैकल्पिक सेटिंग्स: सभी GAC पर्यावरण चर लागू होते हैं (GAC_LANGUAGE, GAC_VERBOSE आदि)

सभी कॉन्फ़िगरेशन विकल्पों के लिए मुख्य दस्तावेज़ देखें।

समस्या निवारण

"No model configured"

MCP सर्वर का उपयोग करने से पहले अपने AI प्रोवाइडर और मॉडल को सेट अप करने के लिए uvx gac init चलाएं।

"No staged changes found"

फ़ाइलों को मैन्युअल रूप से स्टेज करें (git add) या gac_commit कॉल में stage_all=true का उपयोग करें।

सर्वर शुरू नहीं हो रहा

सत्यापित करें कि GAC इंस्टॉल है और एक्सेसिबल है:

uvx gac --version

यदि uvx का उपयोग कर रहे हैं, तो सुनिश्चित करें कि uv इंस्टॉल है और आपके PATH में है।

एजेंट सर्वर नहीं ढूंढ पा रहा

सुनिश्चित करें कि MCP कॉन्फ़िगरेशन फ़ाइल आपके क्लाइंट के लिए सही स्थान पर है और command पथ आपके शेल एनवायरमेंट से एक्सेसिबल है।

Rich आउटपुट भ्रष्टता

MCP सर्वर stdio प्रोटोकॉल भ्रष्टता को रोकने के लिए सभी Rich कंसोल आउटपुट को स्वचालित रूप से stderr पर रीडायरेक्ट करता है। यदि आपको गड़बड़ आउटपुट दिखाई देता है, तो सुनिश्चित करें कि MCP का उपयोग करते समय आप uvx gac के बजाय uvx gac serve चला रहे हैं।

यह भी देखें