A thin MCP server for GrowthBook with four tools:
| Tool | Purpose |
|---|---|
growthbook_list_skills |
List top-level skill entry points (name + description) |
growthbook_read_skill |
Return a listed skill or qualified child workflow (feature-flags or feature-flags/references/flag-create) |
growthbook_api_read |
Authenticated GET passthrough to the GrowthBook API |
growthbook_api_write |
Authenticated POST/PUT/PATCH/DELETE passthrough |
Competence lives in the skills repo and is bundled at build time. Capability is split into read vs write API tools (no per-endpoint formatters) so clients can honor readOnlyHint / destructiveHint correctly.
Tools are prefixed with growthbook_ so they stay unambiguous when a client has multiple MCP servers loaded.
npm install
npm run buildPoint your MCP client at the compiled entrypoint:
{
"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"
}
}
}
}Or run the published package:
npx @growthbook/mcp| Variable | Required | Default | Purpose |
|---|---|---|---|
GB_API_KEY |
Yes for stdio; optional for HTTP OAuth | — | GrowthBook API key or personal access token |
GB_API_URL |
No | https://api.growthbook.io |
API base URL (self-hosted) and default OAuth AS issuer |
GB_MCP_TRANSPORT |
No | stdio |
stdio or http |
GB_MCP_PORT |
No | 3333 |
HTTP listen port (when transport=http) |
GB_MCP_HOST |
No | 127.0.0.1 |
HTTP bind host |
GB_MCP_URL |
Yes for HTTP | — | Public MCP base URL stamped into OAuth resource metadata (server refuses to start in HTTP mode without it) |
GB_OAUTH_ISSUER |
No | GB_API_URL |
GrowthBook OAuth AS issuer URL |
GB_HTTP_HEADER_* |
No | — | Extra request headers (e.g. GB_HTTP_HEADER_CF_ACCESS_TOKEN) |
GB_SKILLS_ENABLED |
No | true |
Set to false / 0 to disable skill tools |