Uses environment variables for configuration through a .env file, allowing users to securely store and access their Bucketeer credentials and settings.
Runs on Node.js platform (version 18 or higher), leveraging it to implement the MCP server for Bucketeer feature flag management.
Built with TypeScript for type safety and better developer experience, as evidenced by the project structure including TypeScript configuration and type definitions.
Bucketeer MCP Server
A Model Context Protocol (MCP) server for managing feature flags in Bucketeer, an open-source feature flag management platform.
Features
This MCP server provides tools for basic CRUD operations on Bucketeer feature flags:
- listFeatureFlags - List all feature flags with filtering and pagination
- createFeatureFlag - Create a new feature flag
- getFeatureFlag - Get a specific feature flag by ID
- updateFeatureFlag - Update an existing feature flag
- archiveFeatureFlag - Archive a feature flag (make it inactive)
Prerequisites
- Node.js 18 or higher
- A Bucketeer instance with API access
- An API key with appropriate permissions (READ, WRITE, or ADMIN)
Installation
- Clone this repository:
- Install dependencies:
- Build the project:
- Create a
.env
file based on.env.example
:
- Configure your environment variables in
.env
:
Usage
Running the Server
Start the MCP server:
For development with auto-reload:
MCP Client Configuration
To use this server with an MCP client, add it to your MCP client configuration:
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.
API Key Permissions
Different operations require different permission levels:
- READ: Required for listFeatureFlags and getFeatureFlag
- WRITE: Required for createFeatureFlag, updateFeatureFlag, and archiveFeatureFlag
Development
Project Structure
Linting
Run the linter:
Building
Build the TypeScript code:
Troubleshooting
Common Issues
- Authentication errors: Ensure your API key is valid and has the necessary permissions
- Environment ID not found: Verify the environment ID exists in your Bucketeer instance
- Connection errors: Check that the BUCKETEER_HOST is correct and accessible
Logging
The server logs to stderr in JSON format. Adjust the log level using the LOG_LEVEL
environment variable:
error
- Only errorswarn
- Warnings and errorsinfo
- General information (default)debug
- Detailed debug information
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
This server cannot be installed
A Model Context Protocol server for managing Bucketeer feature flags, providing tools for listing, creating, retrieving, updating, and archiving feature flags.
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that interfaces with Biomart databases, allowing models to discover biological datasets, explore attributes/filters, retrieve biological data, and translate between different biological identifiers.Last updated -85PythonMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server implementation that provides endpoints for wallet-based authentication, cluster management, and name registration services.Last updated -TypeScript
- -securityFlicense-qualityA lightweight Model Context Protocol server that enables creating, managing, and querying model contexts with integrated Datadog metrics and monitoring.Last updated -Python
- -securityFlicense-qualityA comprehensive utilities library for building Model Context Protocol servers, providing standardized tools for response formatting, caching, rate limiting, logging, and WebSocket management.Last updated -TypeScript