Unleash MCP (Feature Toggle)
The Unleash MCP Server bridges LLM applications with the Unleash feature flag system via the Model Context Protocol, enabling comprehensive feature flag management:
Check and retrieve detailed information about feature flags
Create, update, and archive feature flags in projects
Enable or disable feature flags in specific environments
Add, update, delete, and reorder strategies for feature flags
Mark features as stale or not stale
Validate feature flag names for availability
List all feature flags, projects, environments, and feature types
Manage tags by adding or retrieving them
Perform batch operations like marking multiple features as stale
Modify existing flags using standard updates or JSON Patch
Supports the project through donations via Buy Me A Coffee, as mentioned in the 'Support the Project' section with a QR code and link.
Required for running the server, with version 18 or higher specified in the requirements.
Used as the implementation language for the server, with version 5.0 or higher required.
Click on "Deploy 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., "@Unleash MCP (Feature Toggle) check if the new checkout feature is enabled for user ID 12345"
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.
Unleash MCP Server
A Model Context Protocol (MCP) server implementation that integrates with Unleash Feature Toggle system.
Overview
This project provides a bridge between LLM applications and Unleash feature flag system using the Model Context Protocol (MCP). It allows AI applications to:
Check feature flag status from Unleash
Expose feature flag information to LLMs
Create feature flag
Update feature flag
List all projects
Related MCP server: OpsLevel MCP
Table of Contents
Requirements
Node.js (v18 or higher)
TypeScript (v5.0 or higher)
Access to an Unleash server instance
Installation
# Install dependencies
npm iArchitecture
The Unleash MCP Server acts as a bridge between LLM applications and the Unleash feature flag system:
+----------------+ +-------------------+ +----------------+
| | | | | |
| LLM App | <--> | Unleash MCP | <--> | Unleash API |
| (MCP Client) | | Server | | Server |
| | | | | |
+----------------+ +-------------------+ +----------------+Development
Project Structure
unleash-mcp-server/
├── src/
│ ├── index.ts # Main entry point
│ ├── server.ts # Server implementation
│ ├── config.ts # Configuration handling
│ ├── transport/ # MCP transport implementations
│ │ ├── http.ts # HTTP/SSE transport
│ │ └── stdio.ts # STDIO transport
│ ├── unleash/ # Unleash API client implementations
│ │ ├── unleash-client.ts # Main Unleash client
│ │ ├── get-feature-flag.ts
│ │ └── get-all-projects.ts
│ ├── resources/ # MCP resource implementations
│ │ ├── flags.ts # Feature flag resources
│ │ └── projects.ts # Project resources
│ ├── tools/ # MCP tool implementations
│ │ ├── get-flag.ts # Get feature flag tool
│ │ └── get-projects.ts # Get projects tool
│ └── prompts/ # MCP prompt implementations
│ ├── flag-check.ts # Check single flag
│ └── batch-flag-check.ts # Check multiple flags
├── tests/ # Tests
└── package.json # Project configurationCoding Standards
Naming Conventions:
Files: Use kebab-case.ts (e.g.,
feature-flag.ts)Classes: Use PascalCase (e.g.,
UnleashClient)Functions/Methods: Use camelCase (e.g.,
getFlagStatus)Interfaces/Types: Use PascalCase (e.g.,
FeatureFlagConfig)
Imports:
Always include .js extension when importing local files
Follow import ordering: Node.js built-ins → External dependencies → Local imports
Use named exports over default exports
Documentation:
Use JSDoc comments for public functions, classes, and interfaces
Document complex logic with inline comments
Building
# Compile TypeScript
npm run build
# Run the server
npm startTesting
# Run tests
npm testInspecting
# MCP stdio inspect
npm run build
npx @modelcontextprotocol/inspector node dist/index.js
# MCP sse inspect
npm start
npx @modelcontextprotocol/inspectorHow to use
For Claude or Cursor config:
{
"mcpServers": {
"unleash": {
"command": "npx",
"args": [
"-y",
"unleash-mcp"
],
"env": {
"UNLEASH_URL": "YOUR_UNLEASH_END_POINT",
"UNLEASH_API_TOKEN": "YOUR_UNLEASH_API_TOKEN",
"MCP_TRANSPORT": "stdio",
"MCP_HTTP_PORT": 3001
}
}
}
}Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support the Project
If you find this project helpful, consider buying me a coffee!
Scan the QR code above or click here to support the development of this project.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
21 toolsaddFeatureTagC
Add a tag to a feature flag
Inputs: featureName (required), tagType (required), tagValue (required).
addStrategyC
Add a strategy to a feature flag in a specific environment
Inputs: environment (required), featureName (required), projectId (required), strategyName (required), +2 more.
archiveFlagC
Archive a feature flag in a specific project
Inputs: featureName (required), projectId (required).
createFlagC
Create a new feature flag in an Unleash project
Inputs: name (required), project (required), description, impressionData, +1 more.
deleteStrategyC
Delete a strategy configuration from a feature flag in the specified environment
Inputs: environment (required), featureName (required), projectId (required), strategyId (required).
disableFlagC
Disables a feature flag in the specified environment
Inputs: environment (required), featureName (required), projectId (required).
enableFlagC
Enables a feature flag in the specified environment
Inputs: environment (required), featureName (required), projectId (required).
getEnvironmentsB
Get a list of all environments configured in Unleash
getFeatureTagsC
Get a list of all tags for a specific feature
Inputs: featureName (required).
getFeatureTypesB
Get a list of all feature types with their descriptions and lifetimes
getFlagC
Get detailed information about a feature flag
Inputs: flagName (required).
getProjectFeatureC
Get detailed information about a feature flag in a specific project
Inputs: featureName (required), projectId (required).
getProjectFeaturesC
Get all features for a specific project from the Unleash repository
Inputs: projectId (required).
getProjectsB
Get a list of all projects
listFlagsB
Get a list of all feature flags
markFeaturesStaleC
Marks features as stale or not stale in the specified project
Inputs: features (required), projectId (required), stale (required).
patchFlagB
Modify specific properties of an existing feature flag in an Unleash project using JSON Patch operations
Inputs: featureName (required), patches (required), projectId (required).
setStrategySortOrderC
Set the sort order of strategies for a feature flag in a specific environment
Inputs: environment (required), featureName (required), projectId (required), strategyIds (required).
updateFlagC
Update an existing feature flag in an Unleash project
Inputs: featureName (required), projectId (required), archived, description, +3 more.
updateStrategyC
Update a strategy configuration for a feature flag in the specified environment
Inputs: environment (required), featureName (required), name (required), projectId (required), +3 more.
validateFeatureNameC
Validate if a feature flag name is valid and available for use
Inputs: featureName (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 21 tools
Most tools have distinct purposes, but there is some overlap between getFlag and getProjectFeature, and between updateFlag and patchFlag, which could cause minor confusion. However, descriptions clarify the differences (e.g., project-specific vs. general, full update vs. partial patch), so misselection is unlikely.
Tool names generally follow a consistent verb_noun pattern (e.g., createFlag, deleteStrategy, getProjects), with minor deviations like addFeatureTag (noun_verb) and markFeaturesStale (verb_adjective_noun). The naming is readable and mostly predictable, though not perfectly uniform.
With 21 tools, the count is on the higher side for a feature toggle server, bordering on heavy. While it covers many operations, it might feel overwhelming or redundant, such as having both listFlags and getProjectFeatures for listing features.
The tool set provides comprehensive CRUD and lifecycle coverage for feature flags, including creation, retrieval, updating, archiving, enabling/disabling, and strategy management. It also includes utility functions like validation and environment/project listing, leaving no obvious gaps for the domain.
Maintenance
Related MCP Connectors
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
Enable secure connectivity between Sentry issues and debugging data, and LLM clients, using a Model Context Protocol (MCP) server.
A Model Context Protocol server for Wix AI tools
Feature flags, A/B experiments, kill switches, dynamic config & i18n — Shipeasy MCP server.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol (MCP) server that provides JSON-RPC functionality through OpenRPC.245 npm43Apache 2.0

OpsLevel MCPofficial
AlicenseNot gradedqualityFmaintenanceModel Context Protocol (MCP) server for OpsLevel12MIT
argocd-mcpofficial
AlicenseCqualityCmaintenanceAn implementation of Model Context Protocol (MCP) server for Argo CD.1426,537 npm604Apache 2.0- AlicenseNot gradedqualityBmaintenanceA generic, modular server for implementing the Model Context Protocol (MCP).330 npm45ISC