Skip to main content
Glama
growthbook

GrowthBook MCP Server

Official
by growthbook

GrowthBook MCP Thin

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.

Install / run

npm install
npm run build

Point 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

Related MCP server: langfuse-mcp

Environment variables

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

HTTP + OAuth mode

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 connect to:

  • http://127.0.0.1:3333/mcp — full (skills + API read/write)

  • http://127.0.0.1:3333/mcp/api — capability-only (growthbook_api_read + growthbook_api_write)

Unauthenticated requests receive 401 with WWW-Authenticate pointing at /.well-known/oauth-protected-resource, which advertises the GrowthBook Authorization Server.

Before handling MCP, the server probes GrowthBook REST (GET /api/v1/) with the bearer. A 401 from that probe (or later from an API tool) yields HTTP 401 with error="invalid_token" so the MCP client can refresh — instead of surfacing "This API key has expired" as a tool error. A 403 is treated as an accepted bearer (permission denied ≠ invalid token) so clients are not forced into a refresh loop.

Capability-only mode

HTTP (recommended for remote): point the client at /mcp/api instead of /mcp:

{
  "mcpServers": {
    "growthbook": {
      "url": "http://127.0.0.1:3333/mcp/api"
    }
  }
}

Path

Tools

/mcp

growthbook_list_skills, growthbook_read_skill, growthbook_api_read, growthbook_api_write (unless GB_SKILLS_ENABLED=false)

/mcp/api

growthbook_api_read, growthbook_api_write only

stdio / process-wide: set env so skills are never registered:

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

When skills are disabled, only the API read/write tools are registered. growthbook_list_skills and growthbook_read_skill are not exposed.

How skills are bundled

npm run build   # tsc && bundle-skills

scripts/bundle-skills.mjs copies the top-level skill tree from the canonical skills checkout, preserving structure:

skills/<skill>/SKILL.md                   → server/skills/<skill>/SKILL.md
skills/<skill>/references/<workflow>.md   → server/skills/<skill>/references/<workflow>.md

Source path resolution:

  1. SKILLS_SRC env var (path to the skills repo root)

  2. agent-skills.local.json{ "path": "../skills" }, relative to the repo root. Gitignored; copy agent-skills.local.json.example

  3. skills-src/ — what CI and the Docker build vendor

There is no implicit sibling lookup. ../skills resolves to whatever happens to be at that path, which makes a local build silently disagree with the commit CI builds from.

CI, cloud deploys, and releases all read agent-skills.lock.json and check out that exact skills commit. To ship upstream skill changes, update the commit in the lock file. Local development can point at any checkout with agent-skills.local.json or SKILLS_SRC.

The skills repo stays the source of truth — this package does not maintain a fork of skill content. New skills flow through automatically, except those named in the small blocklist in bundle-skills.mjs. Currently only gb-setup is blocked because it configures the gb-call shell adapter rather than GrowthBook itself.

Per-skill scripts/ directories are not copied. Relative `references/foo.md` links are rewritten to qualified `feature-flags/references/foo` paths so growthbook_read_skill can resolve them.

Using skills with the API tools

Bundled skills still show workflows as:

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

This MCP server does not shell out to gb-call. Map GETgrowthbook_api_read and POST/PUT/PATCH/DELETEgrowthbook_api_write with the same path and optional JSON body string. Server instructions and growthbook_read_skill output include this bridge note.

Tools detail

growthbook_api_read / growthbook_api_write

{ "path": "/api/v1/projects" }
{ "method": "POST", "path": "/api/v2/features", "body": "{\"id\":\"my-flag\",...}" }
  • Read: GET only (readOnlyHint: true)

  • Write: POST | PUT | PATCH | DELETE (destructiveHint: true)

  • Returns raw response body on 2xx

  • On non-2xx, returns an actionable error (isError: true) covering auth failures, self-hosted 404 hints, and rate limits

  • Freeform paths target the GrowthBook REST API

growthbook_list_skills / growthbook_read_skill

Only registered when GB_SKILLS_ENABLED is not disabled.

  • growthbook_list_skills returns top-level skill entry points. An entry may contain a complete workflow or route to child workflows.

  • growthbook_read_skill accepts a listed top-level name or a qualified child path named by a loaded skill (feature-flags/references/flag-create) and returns the full markdown (workflow + guardrails).

Development

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

Standalone HTTP mode

By default the server runs over stdio. Set GB_MCP_TRANSPORT=http to run it as a standalone HTTP server that exposes MCP at /mcp (skills + API tools) and /mcp/api (capability-only), behind an OAuth 2.0 protected-resource surface (RFC 9728 metadata + RFC 6750 WWW-Authenticate).

  • GB_MCP_URL (required in HTTP mode) — the server's public base URL. It is stamped into the OAuth resource (audience) and the protected-resource metadata, so it is never derived from request headers. The server refuses to start without it.

  • GB_MCP_PORT (default 3333) and GB_MCP_HOST (default 127.0.0.1).

  • Incoming bearers are validated by probing the GrowthBook REST API; a rejected token gets HTTP 401 + WWW-Authenticate so the client can refresh.

Run it on a trusted network or bound to loopback. For a multi-tenant or public deployment, front it with your own gateway/auth.

Releases

Cutting a release is deliberate: bump the version in package.json, then push a matching v* tag:

git tag v2.0.0
git push origin v2.0.0

That tagged commit (with skills frozen at cut time) publishes:

  • @growthbook/mcp to npm — prereleases (versions with a -, e.g. 2.0.0-beta.1) go under the beta dist-tag; stable versions become latest

  • a multi-arch (amd64 + arm64) image to ghcr.io/growthbook/growthbook-mcp (:<version>, plus :<major>, :<major>.<minor>, and :latest for stable releases)

  • an entry in the MCP registry

  • a GitHub Release

Install a release with npx @growthbook/mcp@<version> or pull ghcr.io/growthbook/growthbook-mcp:<version>.

Available Tools

14 tools
create_feature_flagC

Create, add, or wrap an element with a feature flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
archivedNoWhether the feature flag is archived
defaultValueYesThe default value of the feature flag
descriptionNoA description of the feature flag
fileExtensionYesThe extension of the current file. If it's unclear, ask the user.
idYesA unique key name for the feature
projectNoThe project the feature flag belongs to
tagsNoTags for the feature flag
valueTypeYesThe value type the feature flag will return

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. The description states it's for creation/adding/wrapping, implying a write operation, but doesn't specify what happens after creation (e.g., where the flag is stored, whether it's immediately active, if it requires permissions, or what the response looks like). For a tool with 8 parameters and no annotations, this leaves significant gaps in understanding the tool's behavior and effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, compact sentence with no wasted words. However, the use of multiple verbs ('Create, add, or wrap') slightly reduces clarity without adding value, and it could be more front-loaded with a clearer primary action. Overall, it's efficient but not perfectly structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, 4 required, no output schema, and no annotations), the description is inadequate. It doesn't explain the outcome of the creation (e.g., what is returned, where the flag is stored), doesn't differentiate from siblings, and provides minimal behavioral context. For a creation tool with significant parameters, this leaves too many gaps for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are documented in the schema itself (e.g., 'id' as a unique key name, 'fileExtension' with specific enum values). The description adds no additional meaning about parameters beyond what's in the schema—it doesn't explain how parameters relate to each other or provide usage context. With high schema coverage, the baseline is 3 even without param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create, add, or wrap an element with a feature flag' uses multiple verbs (create, add, wrap) which creates ambiguity about the exact action. It mentions 'feature flag' as the resource but doesn't specify what kind of element is being wrapped or where this creation happens (e.g., in code, in a configuration system). Compared to siblings like 'create_force_rule' or 'create_sdk_connection', it's not clearly differentiated beyond the general domain of feature flags.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There are sibling tools like 'generate_flag_types', 'get_feature_flags', and 'get_single_feature_flag' that might be related, but the description doesn't indicate whether this is for initial creation versus updates, or when to use it versus other creation tools. No prerequisites or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_force_ruleA

Create a new force rule on an existing feature. If the existing feature isn't apparent, create a new feature using create_feature_flag first. A force rule sets a feature to a specific value for a specific environment based on a condition. For A/B tests and experiments, use create_experiment instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
conditionNoApplied to everyone by default. Write conditions in MongoDB-style query syntax.
descriptionNo
environmentsYes
featureIdYesThe ID of the feature to create the rule on
fileExtensionYesThe extension of the current file. If it's unclear, ask the user.
valueYesThe type of the value should match the feature type

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes the rule's purpose and dependencies but lacks details on permissions, rate limits, error handling, or what happens if the featureId is invalid. It adds some context but misses key behavioral traits for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences front-loaded with the main purpose, followed by prerequisites and alternatives. Each sentence earns its place with no wasted words, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with 6 parameters, 67% schema coverage, and no output schema or annotations, the description is adequate but incomplete. It covers usage and purpose but lacks details on return values, error cases, or full parameter semantics, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%, and the description adds value by explaining that force rules set values based on conditions and environments, which clarifies the purpose of parameters like condition and environments beyond the schema. However, it doesn't detail parameter interactions or constraints like value matching feature type specifics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a new force rule on an existing feature, specifying it sets a feature to a specific value for specific environments based on a condition. It distinguishes from sibling create_feature_flag (which creates features) and create_experiment (for A/B tests).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: use create_feature_flag first if the feature doesn't exist, and use create_experiment instead for A/B tests and experiments. This clearly defines when to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_sdk_connectionC

Create an SDK connection for a user. Returns an SDK clientKey that can be used to fetch features and experiments.

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentNoThe environment associated with the SDK connection.
languageYesThe language of the SDK. Either 'javascript' or 'typescript'.
nameYesName of the SDK connection in GrowthBook. Should reflect the current project.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions the return value (clientKey) and its purpose, but lacks details on permissions, side effects, error conditions, or rate limits. For a creation tool with zero annotation coverage, this leaves significant gaps in understanding its operational behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: one stating the action and resource, and another explaining the return value. It's front-loaded with the core purpose and avoids unnecessary elaboration, though it could be slightly more concise by integrating the return value into the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description provides basic purpose and return value context but lacks completeness for a creation tool. It doesn't cover error handling, authentication needs, or system impacts. While it meets minimum viability, there are clear gaps in contextual information needed for reliable tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing clear documentation for all parameters. The description adds no additional parameter semantics beyond what's in the schema, such as explaining relationships between parameters or usage nuances. Baseline score of 3 is appropriate since the schema adequately covers parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and resource 'SDK connection for a user', specifying that it returns a 'clientKey' for fetching features and experiments. It distinguishes from siblings like 'get_sdk_connections' (read vs. create) but doesn't explicitly differentiate from other creation tools like 'create_feature_flag' or 'create_force_rule'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or comparisons with sibling tools like 'get_sdk_connections' or other creation tools. The description only states what it does, not when to choose it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_flag_typesB

Generate types for feature flags

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. 'Generate types' implies a creation or output operation, but the description doesn't disclose what 'types' refer to (e.g., TypeScript interfaces, JSON schemas), whether this is a read-only or mutating operation, what permissions are needed, or what the output format is. It lacks behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource, making it easy to parse. Every word earns its place by conveying the essential purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and the description's vagueness about what 'types' are and the tool's behavior, this is incomplete. The agent lacks sufficient information to understand what the tool produces or how to use it effectively in context with sibling tools. It should clarify output format and usage scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate. A baseline of 4 is applied since the schema fully covers the absence of parameters, and the description doesn't need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Generate types for feature flags' clearly states the action (generate) and target resource (types for feature flags). It's specific enough to understand the tool's function, though it doesn't explicitly differentiate from sibling tools like 'get_feature_flags' or 'get_single_feature_flag' which retrieve rather than generate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or relationships to sibling tools like 'create_feature_flag' or 'get_feature_flags'. The agent must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_attributesD

Get all attributes

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get all attributes' doesn't reveal anything about permissions, rate limits, pagination, response format, or whether this is a read-only operation. It fails to provide essential context needed for safe and effective tool invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While technically concise with just three words, this is a case of under-specification rather than effective brevity. The description doesn't provide enough information to be useful. Every sentence should earn its place, but here the single phrase fails to convey meaningful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is completely inadequate. It doesn't explain what 'attributes' are, what system they belong to, what format they're returned in, or any behavioral characteristics. For a tool with no structured metadata, this minimal description leaves critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't need to compensate for any parameter gaps. While it doesn't add any parameter-specific information beyond what the schema provides, this is acceptable for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get all attributes' is a tautology that essentially restates the tool name 'get_attributes'. It doesn't specify what type of attributes, from what system, or what scope 'all' refers to. While it indicates a retrieval action, it lacks the specificity needed to distinguish it from sibling tools like 'get_feature_flags' or 'get_environments'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of context, prerequisites, or comparison to sibling tools like 'get_feature_flags' or 'get_experiments'. Without any usage instructions, an agent would have to guess based on the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_environmentsB

Fetches all environments from the GrowthBook API. GrowthBook comes with one environment by default (production), but you can add as many as you need. Feature flags can be enabled and disabled on a per-environment basis. You can also set the default feature state for any new environment. Additionally, you can scope environments to only be available in specific projects, allowing for further control and segmentation over feature delivery.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'fetches all environments,' implying a read-only operation, but doesn't clarify key behaviors such as authentication requirements, rate limits, error handling, or the format of the returned data. The additional context about GrowthBook environments is informative but doesn't address operational traits needed for reliable tool invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise but could be more front-loaded. The first sentence clearly states the purpose, but the following sentences provide general background about GrowthBook environments that, while informative, may not be essential for tool selection. This extra context adds length without directly aiding in tool invocation, reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, no annotations, no output schema), the description is somewhat complete but has gaps. It explains what the tool does and provides context about environments, which helps understanding. However, it lacks details on behavioral aspects like response format or error conditions, which are important for a tool with no structured output schema, leaving room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, and the schema description coverage is 100%, so there's no need for parameter documentation in the description. The description appropriately avoids discussing parameters, focusing instead on the tool's purpose and context. This meets the baseline for tools with no parameters, though it doesn't add value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Fetches all environments from the GrowthBook API.' It uses a specific verb ('fetches') and resource ('environments'), making the action explicit. However, it doesn't distinguish this tool from potential siblings like 'get_projects' or 'get_feature_flags' beyond the resource name, which keeps it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It explains what environments are in GrowthBook (e.g., default production environment, per-environment flag control, project scoping), but this is background information rather than usage instructions. There's no mention of prerequisites, when this tool is appropriate, or what other tools might be better for related tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_experimentC

Gets a single experiment from GrowthBook

ParametersJSON Schema
NameRequiredDescriptionDefault
experimentIdYesThe ID of the experiment to get

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a read operation ('Gets'), implying it's non-destructive, but doesn't specify permissions required, rate limits, error conditions, or what data is returned. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is incomplete for a data retrieval tool. It doesn't explain what an 'experiment' entails in GrowthBook, what fields are returned, or how to interpret results. For a tool that presumably returns structured data, more context is needed to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'experimentId' clearly documented. The description doesn't add any additional semantic context beyond what the schema provides, such as format examples or where to find experiment IDs. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Gets') and resource ('a single experiment from GrowthBook'), making the purpose unambiguous. However, it doesn't distinguish this tool from its sibling 'get_experiments' (plural), which appears to retrieve multiple experiments, leaving some ambiguity about when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling 'get_experiments' for retrieving multiple experiments or clarify if this is for detailed views versus list views. No prerequisites or context for usage are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_experimentsC

Fetches all experiments from the GrowthBook API

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
projectNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While 'fetches' implies a read operation, it doesn't mention pagination behavior (implied by limit/offset parameters), authentication requirements, rate limits, or what format the experiments are returned in. The description is too minimal for a tool with parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a simple fetch operation and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, 0% schema description coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain the tool's behavior, parameter meanings, or return format. The description should provide more context about what 'all experiments' means given the pagination parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for 3 parameters, the description provides no information about what 'limit', 'offset', or 'project' mean. It doesn't explain that 'limit' controls pagination size, 'offset' controls pagination starting point, or 'project' filters results. The description fails to compensate for the schema's lack of parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetches') and resource ('experiments from the GrowthBook API'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 'get_experiment' (singular), which appears to fetch a single experiment rather than all experiments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling 'get_experiment' tool for fetching individual experiments, nor does it explain when filtering by project might be appropriate versus fetching all experiments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_feature_flagsC

Fetches all feature flags from the GrowthBook API. Flags are returned in the order they were created, from oldest to newest.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
projectNo

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states that flags are returned in creation order, which adds useful context, but lacks critical details such as whether this is a read-only operation, authentication requirements, rate limits, error handling, or response format. For a tool with zero annotation coverage, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded and efficiently uses two sentences with zero waste. The first sentence states the core purpose, and the second adds behavioral context about ordering, making it appropriately sized and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters with 0% schema coverage, no annotations, and no output schema), the description is incomplete. It covers the basic action and result ordering but omits parameter explanations, authentication needs, error handling, and output details, leaving significant gaps for the agent to operate effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It mentions no parameters at all, failing to explain the purpose of 'limit', 'offset', or 'project'. This leaves the agent guessing about their roles, such as pagination or filtering, which is inadequate given the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetches') and resource ('all feature flags from the GrowthBook API'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from its sibling 'get_single_feature_flag', which handles individual flags versus this tool's collection retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_single_feature_flag' for individual flags or 'search_growthbook_docs' for documentation. It mentions the ordering of results but doesn't specify use cases, prerequisites, or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectsC

Fetches all projects from the GrowthBook API

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. While 'fetches' implies a read operation, it doesn't disclose important behavioral traits like authentication requirements, rate limits, pagination behavior (implied by limit/offset parameters but not explained), error conditions, or what 'all projects' means in terms of scope or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's appropriately sized for a simple fetch operation and front-loads the essential information about what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read operation with 2 parameters, 0% schema description coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain what 'projects' are in this context, how results are structured, what authentication is required, or any limitations of the fetch operation. The agent would have significant gaps in understanding how to properly use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage for both parameters, the description provides no information about the 'limit' and 'offset' parameters. However, since there are only 2 parameters and they have default values in the schema, the baseline is 3. The description doesn't compensate for the lack of parameter documentation but doesn't make the situation worse.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetches') and resource ('all projects from the GrowthBook API'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'get_experiments' or 'get_feature_flags' that also fetch different resources from the same API.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There's no mention of prerequisites, when-not-to-use scenarios, or comparisons to sibling tools like 'get_experiments' or 'get_feature_flags' that fetch different data types from the same API.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_sdk_connectionsC

Get all SDK connections, which are how GrowthBook connects to an app. Importantly, users need the key, which is a public client key that allows the app to fetch features and experiments the API

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
projectNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that users need the key and explains its purpose, which adds some context. However, it doesn't describe important behaviors like whether this is a read-only operation, if it requires authentication, how results are returned (e.g., pagination), or any rate limits. For a tool with no annotation coverage, this leaves significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise with three sentences, but the structure could be improved. The first sentence states the purpose clearly, but the following sentences focus on explaining SDK connections and the key's purpose rather than front-loading critical usage information. Some sentences feel tangential rather than essential for tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It explains what SDK connections are but misses crucial details: parameter meanings, behavioral traits (like read-only status), output format, and differentiation from siblings. For a tool that retrieves potentially sensitive connection data, this leaves too many unanswered questions for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate for undocumented parameters. The description mentions nothing about the three parameters (limit, offset, project) or their purposes. It doesn't explain what 'project' filters, how pagination works with limit/offset, or default values. With zero parameter information in the description, it fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get all SDK connections' (verb+resource). It explains that SDK connections are 'how GrowthBook connects to an app' and mentions the key's purpose, which provides useful context. However, it doesn't explicitly differentiate this from sibling tools like 'create_sdk_connection' or 'get_projects', keeping it from a perfect score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when this tool is appropriate compared to other get_* tools (like get_feature_flags or get_projects) or when to use create_sdk_connection instead. The mention of the key's purpose is informative but doesn't constitute usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_single_feature_flagC

Fetches a specific feature flag from the GrowthBook API

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the feature flag
projectNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'fetches' data, implying a read-only operation, but doesn't clarify authentication requirements, rate limits, error handling, or the format of the returned data. For a tool with no annotations, this leaves significant gaps in understanding how it behaves in practice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the key action and resource, making it easy to parse. Every part of the sentence earns its place by conveying essential information succinctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a read operation with 2 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what data is returned, how errors are handled, or dependencies like authentication. For a tool that fetches specific data, more context is needed to ensure reliable use by an agent, especially with siblings that might overlap in functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%, with the 'id' parameter documented but 'project' lacking a description. The tool description mentions 'a specific feature flag', which aligns with the 'id' parameter, but doesn't add meaning beyond what the schema provides for 'id' or clarify the role of 'project'. Since coverage is moderate, the description doesn't fully compensate but doesn't worsen the gap, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetches') and resource ('a specific feature flag from the GrowthBook API'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_feature_flags' (plural) or 'get_experiment', which might retrieve similar data. The specificity of 'single' in the tool name helps, but the description could be more explicit about this distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_feature_flags' for listing multiple flags or 'get_experiment' for related data, nor does it specify prerequisites such as needing a project context. Without this context, an agent might struggle to choose between similar tools in the server.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stale_safe_rolloutsC

Fetches all complete safe rollouts (rolled-back or released) from the GrowthBook API

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
projectNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation ('fetches') but does not detail aspects like pagination behavior (implied by 'limit' and 'offset' parameters), error handling, authentication needs, or rate limits. This is a significant gap for a tool with parameters and no structured safety hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence contributes to understanding the tool's function, making it appropriately sized and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, no annotations, no output schema), the description is incomplete. It lacks details on parameter usage, behavioral traits, and output format, which are crucial for an agent to invoke the tool correctly. The description alone does not provide enough context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 0%, so the description must compensate, but it adds no information about the parameters ('limit', 'offset', 'project'). The baseline is 3 because the schema itself defines the parameters with types and defaults, though without descriptions. The description does not enhance understanding of what these parameters mean or how they affect the fetch operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetches') and resource ('all complete safe rollouts from the GrowthBook API'), specifying that these rollouts are either 'rolled-back or released'. However, it does not explicitly differentiate from sibling tools like 'get_experiments' or 'get_feature_flags', which might also retrieve related data from the same API.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as other 'get_' tools in the sibling list. It mentions the type of rollouts ('complete safe rollouts') but does not specify use cases, prerequisites, or exclusions, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_growthbook_docsC

Search the GrowthBook docs on how to use a feature

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query to look up in the GrowthBook docs.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool searches documentation, implying a read-only operation, but doesn't disclose behavioral traits like authentication needs, rate limits, response format, or error handling. For a search tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse. Every part of the sentence contributes essential information, earning its place with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (simple search with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the search returns, how results are structured, or any behavioral constraints. For a tool with no structured data beyond the input schema, the description should provide more context to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds minimal meaning beyond the input schema, which has 100% coverage for the single parameter 'query'. It specifies the query is for 'GrowthBook docs on how to use a feature', slightly contextualizing the parameter's purpose, but doesn't provide syntax examples, search scope details, or result limitations. With high schema coverage, the baseline is 3, and the description meets but doesn't exceed this.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Search') and the target resource ('GrowthBook docs'), specifying the purpose is to find information 'on how to use a feature'. It distinguishes from siblings by focusing on documentation search rather than operations like creating flags or retrieving data. However, it doesn't explicitly differentiate from potential similar search tools (none exist in siblings), keeping it at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions searching for 'how to use a feature', but doesn't specify contexts, prerequisites, or exclusions. With siblings including various get_* tools for data retrieval, there's no indication of when documentation search is preferred over direct data access, resulting in minimal usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv1.0.0
    • First observedcreate_feature_flag
    • First observedcreate_force_rule
    • First observedcreate_sdk_connection
    • First observedgenerate_flag_types
    • First observedget_attributes
    • First observedget_environments
    • First observedget_experiment
    • First observedget_experiments
    • First observedget_feature_flags
    • First observedget_projects
    • First observedget_sdk_connections
    • First observedget_single_feature_flag
    • First observedget_stale_safe_rollouts
    • First observedsearch_growthbook_docs

TDQS

B3/5.0

Scored across 14 tools

Disambiguation4/5

Most tools have distinct purposes, such as create_feature_flag vs. create_force_rule, but there is some overlap between get_feature_flags and get_single_feature_flag, which could cause confusion if an agent needs to fetch a specific flag versus all flags. The descriptions help clarify, but the boundary is not perfectly clear.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern (e.g., create_feature_flag, get_experiments) with minor deviations like generate_flag_types (which uses 'generate' instead of 'get') and search_growthbook_docs (which includes 'growthbook' in the name). Overall, it is mostly predictable and readable.

Tool Count5/5

With 14 tools, the count is well-scoped for a GrowthBook MCP server, covering key operations like creating flags, rules, connections, and fetching various resources. Each tool appears to earn its place without feeling excessive or insufficient for the domain.

Completeness4/5

The tool set provides good coverage for core GrowthBook operations, including CRUD-like actions for features, experiments, and connections, but there are minor gaps such as missing update or delete tools for flags or experiments, which agents might need to work around. The inclusion of search_growthbook_docs adds helpful context.

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server for managing Bucketeer feature flags, providing tools for listing, creating, retrieving, updating, and archiving feature flags.
    5
    1
    MIT
  • A
    license
    C
    quality
    A
    maintenance
    MCP server for Langfuse observability. Query traces, debug exceptions, analyze sessions, and manage prompts and datasets for your LLM applications.
    48
    105
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for managing deep links, analytics, and app configuration on Grovs. Works with Claude Code, Cursor, Windsurf, and any MCP-compatible client.
    16
    2
    MIT