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
रिपॉजिटरी स्थिति की जांच करें। कमिट करने से पहले यह समझने के लिए इसका उपयोग करें कि क्या कमिट किया जाएगा।
पैरामीटर:
| Parameter | Type | Default | विवरण |
|---|---|---|---|
format | "summary" | "detailed" | "json" | "summary" | आउटपुट फ़ॉर्मेट |
include_diff | bool | false | पूर्ण diff सामग्री शामिल करें |
include_stats | bool | true | लाइन परिवर्तन आंकड़े शामिल करें |
include_history | int | 0 | शामिल करने के लिए हालिया कमिट्स की संख्या |
staged_only | bool | false | केवल स्टेज्ड परिवर्तन दिखाएं |
include_untracked | bool | true | अनट्रैक्ड फ़ाइलें शामिल करें |
max_diff_lines | int | 500 | diff आउटपुट साइज सीमा (0 = असीमित) |
रिटर्न: ब्रांच नाम, फ़ाइल स्थिति (स्टेज्ड/अस्टेज्ड/अनट्रैक्ड/कन्फ्लिक्ट्स), वैकल्पिक diff सामग्री, वैकल्पिक आंकड़े और वैकल्पिक कमिट इतिहास।
gac_commit
AI-संचालित कमिट मैसेज जेनरेट करें और वैकल्पिक रूप से कमिट निष्पादित करें।
पैरामीटर:
| Parameter | Type | Default | विवरण |
|---|---|---|---|
stage_all | bool | false | कमिट से पहले सभी परिवर्तन स्टेज करें (git add -A) |
files | list[str] | [] | स्टेज करने के लिए विशिष्ट फ़ाइलें |
dry_run | bool | false | निष्पादन के बिना प्रीव्यू |
message_only | bool | false | कमिट किए बिना मैसेज जेनरेट करें |
push | bool | false | कमिट के बाद रिमोट पर पुश करें |
group | bool | false | परिवर्तनों को कई तार्किक कमिट्स में विभाजित करें |
one_liner | bool | false | सिंगल-लाइन कमिट मैसेज |
scope | string | null | null | कन्वेंशनल कमिट स्कोप (न दिया जाए तो ऑटो-डिटेक्ट) |
hint | string | "" | बेहतर मैसेज के लिए अतिरिक्त संदर्भ |
model | string | null | null | AI मॉडल ओवरराइड (provider:model_name) |
language | string | null | null | कमिट मैसेज भाषा ओवरराइड |
skip_secret_scan | bool | false | सिक्योरिटी स्कैन छोड़ें |
no_verify | bool | false | प्री-कमिट हुक छोड़ें |
auto_confirm | bool | false | पुष्टि प्रॉम्प्ट छोड़ें (एजेंट के लिए आवश्यक) |
रिटर्न: सफलता स्थिति, जेनरेट किया गया कमिट मैसेज, कमिट हैश (यदि कमिट किया गया), बदली गई फ़ाइलों की सूची और कोई चेतावनी।
वर्कफ़्लो
बेसिक कमिट
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 कॉन्फ़िगरेशन का उपयोग करता है। इसके अलावा कोई अतिरिक्त सेटअप आवश्यक नहीं है:
- प्रोवाइडर और मॉडल: अपने AI प्रोवाइडर को कॉन्फ़िगर करने के लिए
uvx gac initयाuvx gac modelचलाएं - API कुंजियाँ:
~/.gac.envमें संग्रहीत (uvx gac initके दौरान सेट अप) - वैकल्पिक सेटिंग्स: सभी 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 चला रहे हैं।