GrowthBook
आधिकारिकफीचर फ्लैग बनाएं और पढ़ें, प्रयोगों की समीक्षा करें, फ्लैग प्रकार उत्पन्न करें, डॉक्स खोजें, और GrowthBook के फीचर फ्लैगिंग और प्रयोग प्लेटफॉर्म के साथ इंटरैक्ट करें।
GrowthBook MCP के साथ आप क्या कर सकते हैं?
- उपलब्ध वर्कफ़्लो खोजें — सहायक से GrowthBook स्किल प्रवेश बिंदुओं की सूची
growthbook_list_skillsके माध्यम से माँगें ताकि पता चले कि कौन से कार्य समर्थित हैं। - चरण-दर-चरण गाइड लोड करें —
feature-flags/references/flag-createजैसे विशिष्ट वर्कफ़्लो का अनुरोधgrowthbook_read_skillके माध्यम से करें ताकि सुरक्षा उपायों सहित विस्तृत निर्देश प्राप्त हों। - GrowthBook डेटा क्वेरी करें — सहायक से किसी भी मान्य REST API पथ का उपयोग करके
growthbook_api_readके माध्यम से प्रोजेक्ट, फ़ीचर या अन्य संसाधन प्राप्त करवाएँ। - GrowthBook संसाधन संशोधित करें — सहायक को
growthbook_api_writeके माध्यम से फ़्लैग बनाने या अपडेट करने का निर्देश दें, POST/PUT/PATCH/DELETE कॉल को समान API पथों पर मैप करते हुए।
दस्तावेज़
GrowthBook MCP Thin
GrowthBook के लिए एक थिन MCP सर्वर, जिसमें चार टूल हैं:
| टूल | उद्देश्य |
|---|---|
growthbook_list_skills | शीर्ष-स्तरीय स्किल प्रवेश बिंदुओं की सूची (नाम + विवरण) |
growthbook_read_skill | सूचीबद्ध स्किल या योग्य चाइल्ड वर्कफ़्लो लौटाएं (feature-flags या feature-flags/references/flag-create) |
growthbook_api_read | GrowthBook API के लिए प्रमाणित GET पासथ्रू |
growthbook_api_write | प्रमाणित POST/PUT/PATCH/DELETE पासथ्रू |
क्षमता skills रिपॉजिटरी में रहती है और बिल्ड समय पर बंडल की जाती है। क्षमता को रीड बनाम राइट API टूल में विभाजित किया गया है (कोई प्रति-एंडपॉइंट फ़ॉर्मेटर नहीं) ताकि क्लाइंट readOnlyHint / destructiveHint का सही ढंग से सम्मान कर सकें।
टूल growthbook_ से उपसर्गित हैं ताकि जब किसी क्लाइंट में कई MCP सर्वर लोड हों तो वे स्पष्ट रहें।
कर्सर प्लगइन
Cursor Marketplace से GrowthBook इंस्टॉल करें। प्लगइन कर्सर को https://mcp.growthbook.io/mcp पर होस्ट किए गए सर्वर से जोड़ता है; पहला टूल कॉल इसे अधिकृत करने के लिए GrowthBook साइन-इन खोलता है। सेल्फ-होस्टेड GrowthBook उपयोगकर्ताओं को नीचे बताए अनुसार सर्वर को मैन्युअल रूप से कॉन्फ़िगर करना चाहिए।
प्लगइन .cursor-plugin/plugin.json और mcp.json द्वारा परिभाषित है। स्थानीय रूप से परिवर्तनों का परीक्षण करने के लिए, रिपॉजिटरी को ~/.cursor/plugins/local/growthbook में कॉपी करें और Developer: Reload Window चलाएं।
इंस्टॉल / चलाएं
npm install
npm run build
अपने MCP क्लाइंट को संकलित एंट्रीपॉइंट पर इंगित करें:
{
"mcpServers": {
"growthbook": {
"command": "node",
"args": ["/absolute/path/to/growthbook-mcp/server/index.js"],
"env": {
"GB_API_KEY": "your_api_key_or_pat",
"GB_API_URL": "https://api.growthbook.io"
}
}
}
}
या प्रकाशित पैकेज चलाएं:
npx @growthbook/mcp
पर्यावरण चर
| चर | आवश्यक | डिफ़ॉल्ट | उद्देश्य |
|---|---|---|---|
GB_API_KEY | stdio के लिए हाँ; HTTP OAuth के लिए वैकल्पिक | — | GrowthBook API कुंजी या व्यक्तिगत एक्सेस टोकन |
GB_API_URL | नहीं | https://api.growthbook.io | API आधार URL (सेल्फ-होस्टेड) और डिफ़ॉल्ट OAuth AS जारीकर्ता |
GB_MCP_TRANSPORT | नहीं | stdio | stdio या http |
GB_MCP_PORT | नहीं | 3333 | HTTP सुनने का पोर्ट (जब transport=http) |
GB_MCP_HOST | नहीं | 127.0.0.1 | HTTP बाइंड होस्ट |
GB_MCP_URL | HTTP के लिए हाँ | — | सार्वजनिक MCP आधार URL OAuth संसाधन मेटाडेटा में अंकित (सर्वर इसके बिना HTTP मोड में शुरू करने से इनकार करता है) |
GB_MCP_KEEP_ALIVE_TIMEOUT_MS | नहीं | 90000 | HTTP मोड में निष्क्रिय कीप-अलाइव टाइमआउट। सामने किसी भी लोड बैलेंसर के निष्क्रिय टाइमआउट से अधिक होना चाहिए, अन्यथा LB उस कनेक्शन का पुन: उपयोग कर सकता है जिसे सर्वर पहले ही बंद कर चुका है और अनुरोध 502 के साथ विफल हो जाता है |
OPENAI_APPS_CHALLENGE_TOKEN | नहीं | — | OpenAI प्लगइन डोमेन सत्यापन के लिए /.well-known/openai-apps-challenge पर सादे पाठ के रूप में परोसा जाता है (HTTP मोड); अनसेट होने पर रूट 404 लौटाता है |
GB_OAUTH_ISSUER | नहीं | GB_API_URL | GrowthBook OAuth AS जारीकर्ता URL |
GB_HTTP_HEADER_* | नहीं | — | अतिरिक्त अनुरोध हेडर (जैसे GB_HTTP_HEADER_CF_ACCESS_TOKEN) |
GB_SKILLS_ENABLED | नहीं | true | स्किल टूल अक्षम करने के लिए false / 0 पर सेट करें |
HTTP + OAuth मोड
OAUTH_AS_ENABLED=1 # on the GrowthBook API
GB_MCP_TRANSPORT=http GB_API_URL=http://localhost:3100 GB_MCP_PORT=3333 npm start
क्लाइंट इससे जुड़ते हैं:
http://127.0.0.1:3333/mcp— पूर्ण (स्किल + API रीड/राइट)http://127.0.0.1:3333/mcp/api— केवल-क्षमता (growthbook_api_read+growthbook_api_write)
अप्रमाणित अनुरोध 401 प्राप्त करते हैं, जिसमें WWW-Authenticate /.well-known/oauth-protected-resource की ओर इशारा करता है, जो GrowthBook प्राधिकरण सर्वर का विज्ञापन करता है।
MCP को संभालने से पहले, सर्वर बियरर के साथ GrowthBook REST (GET /api/v1/) की जांच करता है। उस जांच से (या बाद में API टूल से) 401 HTTP 401 उत्पन्न करता है, जिसमें error="invalid_token" होता है ताकि MCP क्लाइंट रीफ्रेश कर सके — बजाय "This API key has expired" को टूल त्रुटि के रूप में दिखाने के। 403 को स्वीकृत बियरर के रूप में माना जाता है (अनुमति अस्वीकृत ≠ अमान्य टोकन) ताकि क्लाइंट रीफ्रेश लूप में मजबूर न हों।
केवल-क्षमता मोड
HTTP (रिमोट के लिए अनुशंसित): क्लाइंट को /mcp के बजाय /mcp/api पर इंगित करें:
{
"mcpServers": {
"growthbook": {
"url": "http://127.0.0.1:3333/mcp/api"
}
}
}
| पथ | टूल |
|---|---|
/mcp | growthbook_list_skills, growthbook_read_skill, growthbook_api_read, growthbook_api_write (जब तक GB_SKILLS_ENABLED=false) |
/mcp/api | केवल growthbook_api_read, growthbook_api_write |
stdio / प्रक्रिया-व्यापी: env सेट करें ताकि स्किल कभी पंजीकृत न हों:
"env": {
"GB_API_KEY": "...",
"GB_SKILLS_ENABLED": "false"
}
जब स्किल अक्षम होती हैं, केवल API रीड/राइट टूल पंजीकृत होते हैं। growthbook_list_skills और growthbook_read_skill उजागर नहीं होते।
स्किल कैसे बंडल होती हैं
npm run build # tsc && bundle-skills
scripts/bundle-skills.mjs कैनोनिकल स्किल चेकआउट से शीर्ष-स्तरीय स्किल ट्री की प्रतिलिपि बनाता है, संरचना को संरक्षित करते हुए:
skills/<skill>/SKILL.md → server/skills/<skill>/SKILL.md
skills/<skill>/references/<workflow>.md → server/skills/<skill>/references/<workflow>.md
स्रोत पथ समाधान:
SKILLS_SRCenv चर (स्किल रिपॉजिटरी रूट का पथ)agent-skills.local.json—{ "path": "../skills" }, रिपॉजिटरी रूट के सापेक्ष। Gitignored;agent-skills.local.json.exampleकॉपी करेंskills-src/— CI और Docker बिल्ड क्या वेंडर करते हैं
कोई अंतर्निहित सिबलिंग लुकअप नहीं है। ../skills उस पथ पर जो कुछ भी होता है उसे हल करता है, जो स्थानीय बिल्ड को CI बिल्ड के कमिट से चुपचाप असहमत कर सकता है।
CI, क्लाउड डिप्लॉय और रिलीज़ सभी agent-skills.lock.json पढ़ते हैं और उस सटीक स्किल कमिट को चेकआउट करते हैं। अपस्ट्रीम स्किल परिवर्तन भेजने के लिए, लॉक फ़ाइल में कमिट अपडेट करें। स्थानीय विकास agent-skills.local.json या SKILLS_SRC के साथ किसी भी चेकआउट पर इंगित कर सकता है।
स्किल रिपॉजिटरी सत्य का स्रोत बनी रहती है — यह पैकेज स्किल सामग्री का फोर्क नहीं रखता। नई स्किल स्वचालित रूप से प्रवाहित होती हैं, उन्हें छोड़कर जो bundle-skills.mjs में छोटी ब्लॉकलिस्ट में नामित हैं। वर्तमान में केवल gb-setup अवरुद्ध है क्योंकि यह GrowthBook के बजाय gb-call शेल एडाप्टर कॉन्फ़िगर करता है।
प्रति-स्किल scripts/ निर्देशिकाएं कॉपी नहीं की जाती हैं। सापेक्ष
`references/foo.md` लिंक योग्य
`feature-flags/references/foo` paths so growthbook_read_skill में फिर से लिखे जाते हैं ताकि उन्हें हल किया जा सके।
API टूल के साथ स्किल का उपयोग
बंडल की गई स्किल अभी भी वर्कफ़्लो दिखाती हैं:
gb-call GET /api/v1/projects
gb-call POST /api/v2/features ./payload.json
यह MCP सर्वर gb-call को शेल आउट नहीं करता। GET → growthbook_api_read और POST/PUT/PATCH/DELETE → growthbook_api_write को समान पथ और वैकल्पिक JSON बॉडी स्ट्रिंग के साथ मैप करें। सर्वर निर्देश और growthbook_read_skill आउटपुट में यह ब्रिज नोट शामिल है।
टूल विवरण
growthbook_api_read / growthbook_api_write
{ "path": "/api/v1/projects" }
{ "method": "POST", "path": "/api/v2/features", "body": "{\"id\":\"my-flag\",...}" }
- रीड: केवल GET (
readOnlyHint: true) - राइट:
POST|PUT|PATCH|DELETE(destructiveHint: true) - 2xx पर कच्चा प्रतिक्रिया निकाय लौटाता है
- गैर-2xx पर, एक कार्रवाई योग्य त्रुटि लौटाता है (
isError: true) जिसमें प्रमाणीकरण विफलताएं, सेल्फ-होस्टेड 404 संकेत और दर सीमाएं शामिल हैं - फ्रीफॉर्म पथ GrowthBook REST API को लक्षित करते हैं
- प्रत्येक अनुरोध MCP उपयोग हेडर रखता है (उपयोग टेलीमेट्री देखें)
growthbook_list_skills / growthbook_read_skill
केवल तब पंजीकृत होते हैं जब GB_SKILLS_ENABLED अक्षम न हो।
growthbook_list_skillsशीर्ष-स्तरीय स्किल प्रवेश बिंदु लौटाता है। एक प्रविष्टि में पूर्ण वर्कफ़्लो हो सकता है या चाइल्ड वर्कफ़्लो को रूट कर सकता है।growthbook_read_skillएक सूचीबद्ध शीर्ष-स्तरीय नाम या लोड की गई स्किल द्वारा नामित योग्य चाइल्ड पथ स्वीकार करता है (feature-flags/references/flag-create) और पूर्ण मार्कडाउन (वर्कफ़्लो + गार्डरेल) लौटाता है।
उपयोग टेलीमेट्री
यह सर्वर स्वयं कहीं भी टेलीमेट्री नहीं भेजता। इसके बजाय, growthbook_api_read / growthbook_api_write द्वारा किया गया प्रत्येक REST कॉल हेडर शामिल करता है जो GrowthBook इंस्टेंस को बताता है कि कॉल MCP से आई है:
| हेडर | उदाहरण | सामग्री |
|---|---|---|
X-GB-MCP-Tool | growthbook_api_read | वह टूल जिसने कॉल किया |
X-GB-MCP-Version | 2.2.0 | इस सर्वर का संस्करण |
X-GB-MCP-Transport | stdio | stdio या http |
X-GB-MCP-Client | cursor/1.2.3 | initialize हैंडशेक से MCP क्लाइंट का नाम/संस्करण, या HTTP मोड में इसका User-Agent |
GrowthBook इन्हें अपनी मौजूदा उत्पाद टेलीमेट्री के माध्यम से रिकॉर्ड करता है, इसलिए वही नियंत्रण लागू होते हैं। सेल्फ-होस्टेड इंस्टेंस पर, GrowthBook बैक-एंड पर DISABLE_TELEMETRY सेट करने से यह GrowthBook की बाकी टेलीमेट्री के साथ बंद हो जाता है। पुराने GrowthBook संस्करण हेडर को अनदेखा करते हैं। स्किल टूल (growthbook_list_skills / growthbook_read_skill) स्थानीय रूप से परोसे जाते हैं और कोई अनुरोध नहीं करते, इसलिए उन्हें ट्रैक नहीं किया जाता।
विकास
git clone git@github.com:growthbook/skills.git ../skills
cp agent-skills.local.json.example agent-skills.local.json # edit if not at ../skills
npm install
npm run build
npm start
स्टैंडअलोन HTTP मोड
डिफ़ॉल्ट रूप से सर्वर stdio पर चलता है। इसे स्टैंडअलोन HTTP सर्वर के रूप में चलाने के लिए GB_MCP_TRANSPORT=http सेट करें जो /mcp (स्किल + API टूल) और /mcp/api (केवल-क्षमता) पर MCP उजागर करता है, OAuth 2.0 संरक्षित-संसाधन सतह (RFC 9728 मेटाडेटा + RFC 6750 WWW-Authenticate) के पीछे।
GB_MCP_URL(HTTP मोड में आवश्यक) — सर्वर का सार्वजनिक आधार URL। यह OAuth संसाधन (दर्शक) और संरक्षित-संसाधन मेटाडेटा में अंकित है, इसलिए इसे कभी भी अनुरोध हेडर से प्राप्त नहीं किया जाता। सर्वर इसके बिना शुरू करने से इनकार करता है।GB_MCP_PORT(डिफ़ॉल्ट3333) औरGB_MCP_HOST(डिफ़ॉल्ट127.0.0.1)।- आने वाले बियरर GrowthBook REST API की जांच करके मान्य किए जाते हैं; अस्वीकृत टोकन को HTTP
401+WWW-Authenticateमिलता है ताकि क्लाइंट रीफ्रेश कर सके।
इसे विश्वसनीय नेटवर्क पर या लूपबैक से बंधा हुआ चलाएं। मल्टी-टेनेंट या सार्वजनिक तैनाती के लिए, इसे अपने स्वयं के गेटवे/प्रमाणीकरण के साथ सामने रखें।
रिलीज़
रिलीज़ काटना जानबूझकर है: package.json में संस्करण बढ़ाएं, npm run sync-version चलाएं (manifest.json, server.json और .cursor-plugin/plugin.json अपडेट करता है), फिर मिलान v* टैग धकेलें:
git tag v2.0.0
git push origin v2.0.0
वह टैग किया गया कमिट (कट समय पर स्किल के साथ जमे हुए) प्रकाशित करता है:
@growthbook/mcpnpm पर — प्रीरिलीज़ (-वाले संस्करण, जैसे2.0.0-beta.1)betaडिस्ट-टैग के तहत जाते हैं; स्थिर संस्करणlatestबन जाते हैंghcr.io/growthbook/growthbook-mcpपर एक मल्टी-आर्क (amd64+arm64) छवि (:<version>, साथ ही स्थिर रिलीज़ के लिए:<major>,:<major>.<minor>और:latest)- MCP रजिस्ट्री में एक प्रविष्टि
- एक GitHub रिलीज़
कर्सर प्लगइन CI द्वारा प्रकाशित नहीं है: संस्करण बढ़ने के बाद कर्सर डिफ़ॉल्ट शाखा से प्लगइन की फिर से समीक्षा करता है।
npx @growthbook/mcp@<version> के साथ रिलीज़ इंस्टॉल करें या ghcr.io/growthbook/growthbook-mcp:<version> खींचें।