GrowthBook

आधिकारिक

फीचर फ्लैग बनाएं और पढ़ें, प्रयोगों की समीक्षा करें, फ्लैग प्रकार उत्पन्न करें, डॉक्स खोजें, और GrowthBook के फीचर फ्लैगिंग और प्रयोग प्लेटफॉर्म के साथ इंटरैक्ट करें।

GrowthBook MCP के साथ आप क्या कर सकते हैं?

  • उपलब्ध स्किल्स की सूची देखें — असिस्टेंट से growthbook_list_skills कॉल करने को कहें ताकि GrowthBook वर्कफ़्लो के शीर्ष-स्तरीय एंट्री पॉइंट और उनके विवरण देखे जा सकें।

  • स्किल वर्कफ़्लो लोड करें — growthbook_read_skill का उपयोग करके किसी पूर्ण स्किल का मार्कडाउन प्राप्त करें, जिसमें feature-flags/references/flag-create जैसे चाइल्ड वर्कफ़्लो भी शामिल हैं।

  • GrowthBook डेटा पढ़ें — असिस्टेंट से growthbook_api_read को /api/v1/projects जैसे पाथ के साथ कॉल करवाएं ताकि प्रमाणित GET अनुरोधों के माध्यम से डेटा प्राप्त किया जा सके।

  • GrowthBook API में लिखें — growthbook_api_write का उपयोग करके संसाधन बनाएं या संशोधित करें, उदाहरण के लिए, नए फ्लैग के लिए JSON बॉडी के साथ /api/v2/features पर POST करें।

  • रीड/राइट अनुमतियों का सम्मान करें — सर्वर readOnlyHint और destructiveHint प्रदान करता है ताकि क्लाइंट केवल-पठन बनाम परिवर्तनकारी ऑपरेशनों को सुरक्षित रूप से नियंत्रित कर सकें।

दस्तावेज़

GrowthBook MCP Thin

GrowthBook के लिए एक हल्का MCP सर्वर जिसमें चार उपकरण हैं:

उपकरणउद्देश्य
growthbook_list_skillsशीर्ष-स्तरीय कौशल प्रवेश बिंदुओं की सूची (नाम + विवरण)
growthbook_read_skillसूचीबद्ध कौशल या योग्य चाइल्ड वर्कफ़्लो लौटाएँ (feature-flags या feature-flags/references/flag-create)
growthbook_api_readGrowthBook API के लिए प्रमाणित GET पासथ्रू
growthbook_api_writeप्रमाणित POST/PUT/PATCH/DELETE पासथ्रू

क्षमता skills रिपॉजिटरी में रहती है और बिल्ड समय पर बंडल की जाती है। क्षमता को रीड बनाम राइट API उपकरणों में विभाजित किया गया है (कोई प्रति-एंडपॉइंट फ़ॉर्मेटर नहीं) ताकि क्लाइंट readOnlyHint / destructiveHint का सही ढंग से सम्मान कर सकें।

उपकरणों को growthbook_ से उपसर्गित किया जाता है ताकि जब किसी क्लाइंट में कई MCP सर्वर लोड हों तो वे स्पष्ट रहें।

इंस्टॉल / चलाएँ

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_KEYstdio के लिए हाँ; HTTP OAuth के लिए वैकल्पिक—GrowthBook API कुंजी या व्यक्तिगत एक्सेस टोकन
GB_API_URLनहींhttps://api.growthbook.ioAPI आधार URL (स्व-होस्टेड) और डिफ़ॉल्ट OAuth AS जारीकर्ता
GB_MCP_TRANSPORTनहींstdiostdio या http
GB_MCP_PORTनहीं3333HTTP सुनने का पोर्ट (जब transport=http)
GB_MCP_HOSTनहीं127.0.0.1HTTP बाइंड होस्ट
GB_MCP_URLHTTP के लिए हाँ—सार्वजनिक MCP आधार URL जो OAuth संसाधन मेटाडेटा में अंकित होता है (सर्वर इसके बिना HTTP मोड में शुरू करने से इनकार करता है)
GB_MCP_KEEP_ALIVE_TIMEOUT_MSनहीं90000HTTP मोड में निष्क्रिय कीप-अलाइव टाइमआउट। सामने किसी भी लोड बैलेंसर के निष्क्रिय टाइमआउट से अधिक होना चाहिए, अन्यथा LB उस कनेक्शन को पुनः उपयोग कर सकता है जिसे सर्वर पहले ही बंद कर चुका है और अनुरोध 502 के साथ विफल हो जाता है
GB_OAUTH_ISSUERनहींGB_API_URLGrowthBook 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/api के बजाय /mcp पर इंगित करें:

{
  "mcpServers": {
    "growthbook": {
      "url": "http://127.0.0.1:3333/mcp/api"
    }
  }
}
पथउपकरण
/mcpgrowthbook_list_skills, growthbook_read_skill, growthbook_api_read, growthbook_api_write (जब तक GB_SKILLS_ENABLED=false न हो)
/mcp/apigrowthbook_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

स्रोत पथ समाधान:

  1. SKILLS_SRC env चर (कौशल रिपॉजिटरी रूट का पथ)
  2. agent-skills.local.json — { "path": "../skills" }, रिपॉजिटरी रूट के सापेक्ष। Gitignored; agent-skills.local.json.example की प्रतिलिपि बनाएँ
  3. skills-src/ — CI और Docker बिल्ड जो वेंडर करते हैं

कोई अंतर्निहित सहोदर लुकअप नहीं है। ../skills उस पथ पर जो कुछ भी होता है उसे हल करता है, जिससे स्थानीय बिल्ड उस कमिट से चुपचाप असहमत हो जाता है जिससे CI बिल्ड होता है।

CI, क्लाउड डिप्लॉय और रिलीज़ सभी agent-skills.lock.json पढ़ते हैं और उस सटीक कौशल कमिट को चेकआउट करते हैं। अपस्ट्रीम कौशल परिवर्तन भेजने के लिए, लॉक फ़ाइल में कमिट अपडेट करें। स्थानीय विकास agent-skills.local.json या SKILLS_SRC के साथ किसी भी चेकआउट पर इंगित कर सकता है।

कौशल रिपॉजिटरी सत्य का स्रोत बनी रहती है — यह पैकेज कौशल सामग्री का फोर्क नहीं बनाए रखता। नए कौशल स्वचालित रूप से प्रवाहित होते हैं, उन्हें छोड़कर जो bundle-skills.mjs में छोटी ब्लॉकलिस्ट में नामित हैं। वर्तमान में केवल gb-setup ब्लॉक किया गया है क्योंकि यह gb-call शेल एडाप्टर को कॉन्फ़िगर करता है न कि GrowthBook को।

प्रति-कौशल 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 को लक्षित करते हैं

growthbook_list_skills / growthbook_read_skill

केवल तब पंजीकृत होते हैं जब GB_SKILLS_ENABLED अक्षम न हो।

  • growthbook_list_skills शीर्ष-स्तरीय कौशल प्रवेश बिंदु लौटाता है। एक प्रविष्टि में पूर्ण वर्कफ़्लो हो सकता है या चाइल्ड वर्कफ़्लो की ओर मार्ग हो सकता है।
  • growthbook_read_skill एक सूचीबद्ध शीर्ष-स्तरीय नाम या लोड किए गए कौशल द्वारा नामित योग्य चाइल्ड पथ स्वीकार करता है (feature-flags/references/flag-create) और पूर्ण मार्कडाउन लौटाता है (वर्कफ़्लो + गार्डरेल)।

विकास

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 को /mcp (कौशल + API उपकरण) और /mcp/api (केवल-क्षमता) पर उजागर करता है, 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 में संस्करण बढ़ाएँ, फिर मेल खाता v* टैग धकेलें:

git tag v2.0.0
git push origin v2.0.0

वह टैग किया गया कमिट (कट समय पर कौशल के साथ स्थिर) प्रकाशित करता है:

  • @growthbook/mcp npm पर — प्रीरिलीज़ (- वाले संस्करण, जैसे 2.0.0-beta.1) beta डिस्ट-टैग के अंतर्गत जाते हैं; स्थिर संस्करण latest बन जाते हैं
  • amd64 + arm64 का मल्टी-आर्क इमेज ghcr.io/growthbook/growthbook-mcp पर (:<version>, साथ ही :<major>, :<major>.<minor>, और स्थिर रिलीज़ के लिए :latest)
  • MCP रजिस्ट्री में एक प्रविष्टि
  • एक GitHub रिलीज़

npx @growthbook/mcp@<version> के साथ रिलीज़ इंस्टॉल करें या ghcr.io/growthbook/growthbook-mcp:<version> खींचें।