Bucketeer MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bucketeer MCP Serverlist feature flags for the checkout flow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bucketeer MCP Server
A Model Context Protocol (MCP) server for managing feature flags in Bucketeer, an open-source feature flag management platform.
This is a beta version. Breaking changes may be introduced before general release.
Features
This MCP server provides tools for basic CRUD operations on Bucketeer feature flags:
listFeatureFlags- List all feature flags with filtering and paginationcreateFeatureFlag- Create a new feature flaggetFeatureFlag- Get a specific feature flag by IDupdateFeatureFlag- Update an existing feature flagarchiveFeatureFlag- Archive a feature flag (make it inactive)
Related MCP server: Unleash MCP (Feature Toggle)
Prerequisites
Node.js 18 or higher
A Bucketeer instance with API access
An API key with appropriate permissions (READ, WRITE, or ADMIN)
Installation
Using npx (Recommended)
The easiest way to use Bucketeer MCP Server is directly with npx - no installation required:
npx @bucketeer/mcpLocal Installation
Clone this repository
git clone https://github.com/bucketeer-io/bucketeer-mcp.git
cd bucketeer-mcpInstall dependencies
npm installBuild the project
npm run buildUsage
Running the Server
Using npx (No Installation Required)
npx @bucketeer/mcpUsing Local Installation
Start the MCP server
npm startFor development with auto-reload
npm run devMCP Client Configuration
To use this server with an MCP client, add it to your MCP client configuration.
Using npx (Recommended)
{
"mcpServers": {
"bucketeer": {
"command": "npx",
"args": ["@bucketeer/mcp"],
"env": {
"BUCKETEER_HOST": "api.bucketeer.io",
"BUCKETEER_API_KEY": "your-api-key",
"BUCKETEER_ENVIRONMENT_ID": "your-environment-id"
}
}
}
}Using Local Installation
{
"mcpServers": {
"bucketeer": {
"command": "node",
"args": ["/path/to/bucketeer-mcp/dist/index.js"],
"env": {
"BUCKETEER_HOST": "api.bucketeer.io",
"BUCKETEER_API_KEY": "your-api-key",
"BUCKETEER_ENVIRONMENT_ID": "your-environment-id"
}
}
}
}Available Tools
listFeatureFlags
List all feature flags in the specified environment.
Parameters:
environmentId(optional) - Environment ID (uses default if not provided)pageSize(optional) - Number of items per page (1-100, default: 20)cursor(optional) - Pagination cursor for next pagetags(optional) - Filter by tagsorderBy(optional) - Field to order by (CREATED_AT, UPDATED_AT, NAME)orderDirection(optional) - Order direction (ASC, DESC)searchKeyword(optional) - Search keyword for feature name or IDmaintainer(optional) - Filter by maintainer emailarchived(optional) - Filter by archived status
createFeatureFlag
Create a new feature flag.
Parameters:
id(required) - Unique identifier (alphanumeric, hyphens, underscores)name(required) - Human-readable namedescription(optional) - Description of the feature flagenvironmentId(optional) - Environment ID (uses default if not provided)variations(required) - Array of variations (at least 2)value(required) - The value returned when this variation is servedname(required) - Name of the variationdescription(optional) - Description of the variation
tags(optional) - Tags for the feature flagdefaultOnVariationIndex(required) - Index of variation when flag is on (0-based)defaultOffVariationIndex(required) - Index of variation when flag is off (0-based)variationType(optional) - Type of the variation values: STRING (default), BOOLEAN, NUMBER, or JSON
getFeatureFlag
Get a specific feature flag by ID.
Parameters:
id(required) - The ID of the feature flag to retrieveenvironmentId(optional) - Environment ID (uses default if not provided)featureVersion(optional) - Specific version of the feature to retrieve
updateFeatureFlag
Update an existing feature flag.
Parameters:
id(required) - The ID of the feature flag to updatecomment(required) - Comment for the update (required for audit trail)environmentId(optional) - Environment ID (uses default if not provided)name(optional) - New name for the feature flagdescription(optional) - New descriptiontags(optional) - New tagsenabled(optional) - Enable or disable the feature flagarchived(optional) - Archive or unarchive the feature flag
Note:
This tool requires a comment for audit trail purposes
It does not support updating variations. To modify variations, you would need to archive the current flag and create a new one.
archiveFeatureFlag
Archive a feature flag (make it inactive). Archived flags will return the default value defined in your code for all users.
Parameters:
id(required) - The ID of the feature flag to archiveenvironmentId(optional) - Environment ID (uses default if not provided)comment(required) - Comment for the archive action (required for audit trail)
Note: This operation archives the flag rather than permanently deleting it. The flag can be unarchived later if needed.
Development
Linting
Run the linter
npm run lintBuilding
Build the TypeScript code
npm run buildContributing
We would ❤️ for you to contribute to Bucketeer and help improve it! Anyone can use and enjoy it!
Please follow our contribution guide here.
License
Apache License 2.0, see LICENSE.
Available Tools
5 toolsarchiveFeatureFlagC
Archive a feature flag (make it inactive)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the feature flag to archive | |
| environmentId | No | Environment ID (uses default if not provided) | |
| comment | Yes | Comment for the archive action (required for audit trail) |
TDQS
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. It states the action ('archive') and outcome ('make it inactive'), implying a mutation that changes state, but lacks details on permissions required, whether the action is reversible, audit implications from the comment parameter, or rate limits. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and outcome without unnecessary words. It directly communicates the tool's purpose ('archive a feature flag') and result ('make it inactive'), making it easy to parse. Every part of the sentence earns its place by clarifying the tool's intent concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity as a mutation operation with no annotations and no output schema, the description is incomplete. It lacks information on behavioral aspects like side effects, return values, error handling, or how it integrates with sibling tools. For a tool that archives resources, more context on implications and usage is needed to be fully helpful to an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (id, environmentId, comment) with their purposes. The description adds no additional parameter semantics beyond implying archiving affects a feature flag's activity state. Since the schema handles the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate for or enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('archive') and resource ('feature flag'), specifying the outcome ('make it inactive'). It distinguishes from siblings like create, get, list, and update by focusing on deactivation rather than creation, retrieval, or modification. However, it doesn't explicitly contrast with potential delete operations or other archival tools, 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.
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 updateFeatureFlag for status changes or delete operations. It mentions making the flag 'inactive', which implies a state change, but doesn't clarify prerequisites, consequences, or typical scenarios for archiving over other actions. Without such context, users 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.
createFeatureFlagC
Create a new feature flag in the specified environment
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Unique identifier for the feature flag (alphanumeric, hyphens, underscores) | |
| name | Yes | Human-readable name for the feature flag | |
| description | No | Description of the feature flag | |
| environmentId | No | Environment ID (uses default if not provided) | |
| variations | Yes | List of variations (at least 2 required) | |
| tags | No | Tags for the feature flag | |
| defaultOnVariationIndex | Yes | Index of the variation to serve when flag is on (0-based) | |
| defaultOffVariationIndex | Yes | Index of the variation to serve when flag is off (0-based) | |
| variationType | No | Type of the variation values (default: STRING) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action without behavioral details. It doesn't mention permissions required, whether creation is idempotent, rate limits, error conditions, or what happens on success (e.g., returns the created flag). For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 and front-loaded with the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 9 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the creation workflow, what 'create' entails (e.g., validation rules beyond schema), or what the tool returns. The schema handles parameter details, but behavioral context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing detailed parameter documentation. The description adds no parameter-specific information beyond implying 'environmentId' is optional (uses default), which is already covered in the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create') and resource ('feature flag') with the specific context 'in the specified environment'. It distinguishes from siblings like 'updateFeatureFlag' or 'getFeatureFlag' by specifying it's for creation, though it doesn't explicitly contrast with all siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'updateFeatureFlag' for modifications or 'archiveFeatureFlag' for removal. The description mentions 'specified environment' but doesn't explain when environment selection matters or what happens if omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getFeatureFlagC
Get a specific feature flag by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the feature flag to retrieve | |
| environmentId | No | Environment ID (uses default if not provided) | |
| featureVersion | No | Specific version of the feature to retrieve |
TDQS
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 the tool retrieves a flag but doesn't mention whether this is a read-only operation, if it requires authentication, what happens if the ID doesn't exist, or any rate limits. For a retrieval tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 retrieval tool and front-loaded with the core action, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (retrieval with 3 parameters) and lack of annotations and output schema, the description is incomplete. It doesn't explain return values, error conditions, or how optional parameters like 'environmentId' and 'featureVersion' affect behavior, leaving gaps for the agent to navigate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are documented in the input schema. The description adds no additional meaning beyond implying retrieval by ID, which is already covered. This meets the baseline of 3 when the schema does the heavy lifting, but no extra value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('a specific feature flag by ID'), making the purpose understandable. However, it doesn't explicitly distinguish this from sibling tools like 'listFeatureFlags' or 'archiveFeatureFlag', which would require more specific differentiation to earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'listFeatureFlags' for multiple flags or 'updateFeatureFlag' for modifications. It lacks context about prerequisites or exclusions, leaving the agent to 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.
listFeatureFlagsC
List all feature flags in the specified environment
| Name | Required | Description | Default |
|---|---|---|---|
| environmentId | No | Environment ID (uses default if not provided) | |
| pageSize | No | Number of items per page (1-100) | |
| cursor | No | Pagination cursor for next page | |
| tags | No | Filter by tags | |
| orderBy | No | Field to order by | |
| orderDirection | No | Order direction | |
| searchKeyword | No | Search keyword for feature name or ID | |
| maintainer | No | Filter by maintainer email | |
| archived | No | Filter by archived status |
TDQS
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. It mentions listing 'all' feature flags but doesn't clarify pagination behavior (implied by cursor/pageSize parameters), rate limits, authentication requirements, or what 'all' means in context of filters. The description is minimal and lacks important operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 list 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain the relationship between parameters (e.g., how pagination works with filters), what the output looks like, or important behavioral aspects. The high parameter count and lack of structured metadata require more descriptive context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description adds no additional parameter semantics beyond implying environment filtering. This meets the baseline of 3 when schema coverage is high, but doesn't provide extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and resource ('feature flags') with scope ('in the specified environment'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'getFeatureFlag' which retrieves a single flag, 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.
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 'getFeatureFlag' for single flag retrieval or 'searchKeyword' parameter for filtered searches. It mentions 'specified environment' but doesn't explain environment selection or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
updateFeatureFlagC
Update an existing feature flag
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the feature flag to update | |
| comment | Yes | Comment for the update (required for audit trail) | |
| environmentId | No | Environment ID (uses default if not provided) | |
| name | No | New name for the feature flag | |
| description | No | New description for the feature flag | |
| tags | No | New tags for the feature flag | |
| enabled | No | Enable or disable the feature flag | |
| archived | No | Archive or unarchive the feature flag |
TDQS
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 an update operation, implying mutation, but doesn't cover critical aspects like required permissions, whether changes are reversible, rate limits, or what the response looks like. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 any fluff. It's appropriately sized and front-loaded, with every word earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 8 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what happens during updates (e.g., partial vs. full updates), error conditions, or return values, leaving significant gaps in understanding how to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with all 8 parameters well-documented in the schema itself. The description adds no additional parameter information beyond what's in the schema, so it meets the baseline of 3 for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('an existing feature flag'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its siblings like 'archiveFeatureFlag' or 'createFeatureFlag', which also modify feature flags in different ways.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'archiveFeatureFlag' or 'createFeatureFlag'. It doesn't mention prerequisites, such as needing an existing feature flag ID, or contextual factors like whether this is for routine updates versus major changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no ambiguity: archive, create, get, list, and update are all unique actions targeting feature flags. The descriptions reinforce this by specifying distinct operations (e.g., 'make it inactive' vs. 'create a new feature flag'), making misselection unlikely.
All tool names follow a consistent verb_noun pattern (e.g., archiveFeatureFlag, createFeatureFlag) with identical casing (camelCase) and the same noun ('FeatureFlag') throughout. This predictable pattern enhances readability and agent usability.
With 5 tools, the count is well-scoped for managing feature flags, covering core CRUD operations (create, get, update, list) plus archiving. Each tool earns its place without bloat, aligning with typical server scopes of 3-15 tools for focused domains.
The tool set provides complete lifecycle coverage for feature flags: creation, retrieval (get and list), updating, and archiving (deactivation). No obvious gaps exist, as agents can perform all essential operations without dead ends in this domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Statsig API - interact with Statsig's feature flags, experiments, and analytics
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Remote MCP server for the Hackle Admin API: experiments, feature flags, remote config, messaging.
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that allows AI assistants to programmatically manage Unleash feature flags through natural language, enabling operations like creating, updating, and retrieving feature flags across projects.5173ISC
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server implementation that integrates with Unleash Feature Toggle system.2138711MIT

hackle-mcpofficial
AlicenseBqualityCmaintenanceA Model Context Protocol server for Hackle API providing tools and resources for querying A/B Test data.195203MIT
GrowthBook MCP Serverofficial
AlicenseBqualityBmaintenanceOfficial GrowthBook MCP server for creating flags, getting experiments, and more.148,01323MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bucketeer-io/bucketeer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server