GrowthBook

offiziell

Erstellen und Lesen von Feature-Flags, Überprüfen von Experimenten, Generieren von Flag-Typen, Durchsuchen der Dokumentation und Interagieren mit GrowthBooks Plattform für Feature-Flagging und Experimente.

Was kann man mit GrowthBook MCP machen?

  • Gebündelte Skills auflisten — Bitten Sie Ihren Assistenten, die GrowthBook-Agent-Skills mit growthbook_list_skills aufzulisten, um verfügbare Workflows zu sehen.
  • Vollständigen Leitfaden eines Skills lesen — Verwenden Sie growthbook_read_skill, um den vollständigen Markdown-Workflow und die Leitplanken für einen bestimmten Skill abzurufen.
  • GrowthBook-API-Daten lesen — Führen Sie authentifizierte GET-Anfragen an beliebige GrowthBook-REST-Endpunkte über growthbook_api_read durch, z. B. zum Abrufen von Projekten oder Features.
  • In die GrowthBook-API schreiben — Verwenden Sie growthbook_api_write, um Ressourcen über POST/PUT/PATCH/DELETE zu erstellen, zu aktualisieren oder zu löschen, mit destructiveHint aus Sicherheitsgründen.

Dokumentation

GrowthBook MCP Thin

Ein schlanker MCP-Server für GrowthBook mit vier Tools:

ToolZweck
growthbook_list_skillsListet gebündelte GrowthBook-Agentenfähigkeiten auf (Name + Beschreibung)
growthbook_read_skillGibt das vollständige Skill-Markdown zurück (Workflow + Leitplanken)
growthbook_api_readAuthentifizierter GET-Passthrough zur GrowthBook-API
growthbook_api_writeAuthentifizierter POST/PUT/PATCH/DELETE-Passthrough

Die Kompetenz liegt im Skills-Repository und wird zur Build-Zeit gebündelt. Die Fähigkeiten sind in Lese- vs. Schreib-API-Tools aufgeteilt (keine Endpunkt-spezifischen Formatierer), sodass Clients readOnlyHint / destructiveHint korrekt berücksichtigen können.

Tools sind mit growthbook_ präfixiert, damit sie eindeutig bleiben, wenn ein Client mehrere MCP-Server geladen hat.

Installation / Ausführung

npm install
npm run build

Richten Sie Ihren MCP-Client auf den kompilierten Einstiegspunkt:

{
  "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"
      }
    }
  }
}

Oder führen Sie das veröffentlichte Paket aus:

npx @growthbook/mcp

Umgebungsvariablen

VariableErforderlichStandardZweck
GB_API_KEYJa für stdio; optional für HTTP-OAuthGrowthBook-API-Schlüssel oder persönliches Zugriffstoken
GB_API_URLNeinhttps://api.growthbook.ioAPI-Basis-URL (selbst gehostet) und Standard-OAuth-AS-Aussteller
GB_MCP_TRANSPORTNeinstdiostdio oder http
GB_MCP_PORTNein3333HTTP-Listen-Port (wenn transport=http)
GB_MCP_HOSTNein127.0.0.1HTTP-Bind-Host
GB_MCP_URLJa für HTTPÖffentliche MCP-Basis-URL, die in die OAuth-Ressourcen-Metadaten eingestanzt wird (der Server weigert sich ohne sie im HTTP-Modus zu starten)
GB_OAUTH_ISSUERNeinGB_API_URLGrowthBook-OAuth-AS-Aussteller-URL
GB_HTTP_HEADER_*NeinZusätzliche Anfrage-Header (z. B. GB_HTTP_HEADER_CF_ACCESS_TOKEN)
GB_SKILLS_ENABLEDNeintrueAuf false / 0 setzen, um Skill-Tools zu deaktivieren

HTTP- + OAuth-Modus

OAUTH_AS_ENABLED=1  # on the GrowthBook API
GB_MCP_TRANSPORT=http GB_API_URL=http://localhost:3100 GB_MCP_PORT=3333 npm start

Clients verbinden sich mit:

  • http://127.0.0.1:3333/mcp — vollständig (Skills + API-Lesen/Schreiben)
  • http://127.0.0.1:3333/mcp/api — nur Fähigkeiten (growthbook_api_read + growthbook_api_write)

Nicht authentifizierte Anfragen erhalten 401 mit WWW-Authenticate, das auf /.well-known/oauth-protected-resource verweist, was den GrowthBook-Autorisierungsserver anzeigt.

Bevor der Server MCP verarbeitet, testet er GrowthBook REST (GET /api/v1/) mit dem Bearer-Token. Ein 401 von diesem Test (oder später von einem API-Tool) führt zu HTTP 401 mit error="invalid_token", sodass der MCP-Client aktualisieren kann — anstatt "This API key has expired" als Tool-Fehler anzuzeigen. Ein 403 wird als akzeptiertes Bearer-Token behandelt (Berechtigung verweigert ≠ ungültiges Token), sodass Clients nicht zu einer Aktualisierungsschleife gezwungen werden.

Nur-Fähigkeiten-Modus

HTTP (für Remote empfohlen): Richten Sie den Client auf /mcp/api anstatt auf /mcp:

{
  "mcpServers": {
    "growthbook": {
      "url": "http://127.0.0.1:3333/mcp/api"
    }
  }
}
PfadTools
/mcpgrowthbook_list_skills, growthbook_read_skill, growthbook_api_read, growthbook_api_write (außer bei GB_SKILLS_ENABLED=false)
/mcp/apinur growthbook_api_read, growthbook_api_write

stdio / prozessweit: Setzen Sie die Umgebungsvariable, sodass Skills nie registriert werden:

"env": {
  "GB_API_KEY": "...",
  "GB_SKILLS_ENABLED": "false"
}

Wenn Skills deaktiviert sind, werden nur die API-Lese-/Schreib-Tools registriert. growthbook_list_skills und growthbook_read_skill werden nicht bereitgestellt.

Wie Skills gebündelt werden

npm run build   # tsc && bundle-skills

scripts/bundle-skills.mjs kopiert jedes skills/*/SKILL.md aus dem kanonischen Skills-Checkout in server/skills/<name>.md.

Auflösung des Quellpfads:

  1. SKILLS_SRC Umgebungsvariable (Pfad zum Stammverzeichnis des Skills-Repos) oder
  2. ../skills (Schwesterverzeichnis)

Das Skills-Repo bleibt die Quelle der Wahrheit — dieses Paket forkt niemals Skill-Inhalte.

Verwendung von Skills mit den API-Tools

Gebündelte Skills zeigen Workflows weiterhin wie folgt an:

gb-call GET /api/v1/projects
gb-call POST /api/v2/features ./payload.json

Dieser MCP-Server führt keine Shell-Aufrufe an gb-call aus. Ordnen Sie GETgrowthbook_api_read und POST/PUT/PATCH/DELETEgrowthbook_api_write mit demselben Pfad und optionalem JSON-Body-String zu. Serveranweisungen und growthbook_read_skill-Ausgabe enthalten diesen Brücken-Hinweis.

Tool-Details

growthbook_api_read / growthbook_api_write

{ "path": "/api/v1/projects" }
{ "method": "POST", "path": "/api/v2/features", "body": "{\"id\":\"my-flag\",...}" }
  • Lesen: Nur GET (readOnlyHint: true)
  • Schreiben: POST | PUT | PATCH | DELETE (destructiveHint: true)
  • Gibt den rohen Antworttext bei 2xx zurück
  • Bei Nicht-2xx gibt es einen umsetzbaren Fehler zurück (isError: true), der Authentifizierungsfehler, Hinweise auf selbst gehostete 404-Fehler und Ratenlimits abdeckt
  • Freiform-Pfade zielen auf die GrowthBook-REST-API

growthbook_list_skills / growthbook_read_skill

Wird nur registriert, wenn GB_SKILLS_ENABLED nicht deaktiviert ist. growthbook_read_skill gibt den vollständigen SKILL.md-Inhalt zurück, damit der Agent Workflow-Schritte und Leitplanken befolgen kann.

Entwicklung

# Requires a sibling checkout at ../skills (or SKILLS_SRC)
npm install
npm run build
npm start

Eigenständiger HTTP-Modus

Standardmäßig läuft der Server über stdio. Setzen Sie GB_MCP_TRANSPORT=http, um ihn als eigenständigen HTTP-Server auszuführen, der MCP unter /mcp (Skills + API-Tools) und /mcp/api (nur Fähigkeiten) hinter einer OAuth-2.0-geschützten Ressourcenoberfläche bereitstellt (RFC-9728-Metadaten + RFC-6750 WWW-Authenticate).

  • GB_MCP_URL (erforderlich im HTTP-Modus) — die öffentliche Basis-URL des Servers. Sie wird in die OAuth-Ressource (Zielgruppe) und die geschützten Ressourcen-Metadaten eingestanzt und wird daher nie aus Anfrage-Headern abgeleitet. Der Server weigert sich, ohne sie zu starten.
  • GB_MCP_PORT (Standard 3333) und GB_MCP_HOST (Standard 127.0.0.1).
  • Eingehende Bearer-Token werden durch Abfragen der GrowthBook-REST-API validiert; ein abgelehntes Token erhält HTTP 401 + WWW-Authenticate, damit der Client aktualisieren kann.

Führen Sie es in einem vertrauenswürdigen Netzwerk oder an Loopback gebunden aus. Für eine Multi-Tenant- oder öffentliche Bereitstellung stellen Sie ein eigenes Gateway/eigene Authentifizierung davor.

Veröffentlichungen

Eine Veröffentlichung ist wohlüberlegt: Erhöhen Sie die Version in package.json und pushen Sie dann ein passendes v*-Tag:

git tag v2.0.0
git push origin v2.0.0

Dieser getaggte Commit (mit zum Zeitpunkt des Schnitts eingefrorenen Skills) veröffentlicht:

  • @growthbook/mcp an npm — Vorabversionen (Versionen mit einem -, z. B. 2.0.0-beta.1) erscheinen unter dem beta-Dist-Tag; stabile Versionen werden latest
  • ein Multi-Arch-Image (amd64 + arm64) an ghcr.io/growthbook/growthbook-mcp (:<version>, plus :<major>, :<major>.<minor> und :latest für stabile Veröffentlichungen)
  • einen Eintrag in der MCP-Registry
  • ein GitHub-Release

Installieren Sie eine Veröffentlichung mit npx @growthbook/mcp@<version> oder ziehen Sie ghcr.io/growthbook/growthbook-mcp:<version>.