DevCycle MCP Reference
This page provides comprehensive documentation for all DevCycle MCP tools. For setup instructions, see MCP Getting Started.
Available Tools
The DevCycle MCP Server provides comprehensive feature flag management capabilities through tools organized into 6 categories:
- Feature Management
- Variable Management
- Project Management
- Self-Targeting & Overrides
- Results & Analytics
- SDK Installation
Production Safety
- Tools marked ⚠️ can affect production - confirm before proceeding
- Tools marked ⚠️⚠️ are destructive - require extra confirmation
Targeting a project
Most tools operate on a project. You can choose one in either of two ways:
- Call
select_projectonce, and it applies to every later tool call in the same session. - Pass an optional
projectKeyto an individual tool, which takes precedence over the selected project for that call only.
Per-call projectKey is the option to use when your MCP host starts a new session for each request, since a selection made with select_project will not carry over.
Feature Management
list_features
List all features in the current project with optional search and pagination.
Parameters:
search(optional): Search query to filter features (minimum 3 characters)page(optional): Page number (default: 1)perPage(optional): Items per page (default: 100, max: 1000)sortBy(optional): Sort field (createdAt,updatedAt,name,key,createdBy,propertyKey)sortOrder(optional): Sort order (asc,desc)staleness(optional): Filter by staleness (all,unused,released,unmodified,notStale)createdBy(optional): Filter by creator user IDtype(optional): Feature type (release,experiment,permission,ops)status(optional): Feature status (active,complete,archived)projectKey(optional): Project to target. Defaults to the project set byselect_project.
create_feature ⚠️
Create a new feature flag.
Parameters:
key: Unique feature key (pattern:^[a-z0-9-_.]+$)name: Human-readable name (max 100 chars)description(optional): Feature description (max 1000 chars)type(optional): Feature type (release,experiment,permission,ops)tags(optional): Array of tags for organizationvariations(optional): Array of variations with key, name, and variablesconfigurations(optional): Environment-specific configurationssdkVisibility(optional): SDK visibility settingsvariables(optional): Array of variables to create or reassociate with this featurecontrolVariation(optional): The key of the variation that is used as the control for Metricssettings(optional): Feature-level settings configurationprojectKey(optional): Project to target. Defaults to the project set byselect_project.
update_feature ⚠️
Update an existing feature flag.
Parameters:
key: Feature key to updatename(optional): New namedescription(optional): New descriptiontype(optional): New typetags(optional): New tagsvariations(optional): Updated variationsvariables(optional): Updated array of variables for this featuresettings(optional): Updated feature-level settings configurationsdkVisibility(optional): Updated SDK visibility settingscontrolVariation(optional): Updated control variation key for Metricsconfigurations(optional): Updated environment-specific targeting configurations (key-value map of environment keys)summary(optional): Updated feature summaryprojectKey(optional): Project to target. Defaults to the project set byselect_project.
update_feature_status ⚠️
Update the status of a feature flag.
Parameters:
key: Feature keystatus: New status (active,complete,archived)staticVariation(optional): Variation to serve if status iscompleteprojectKey(optional): Project to target. Defaults to the project set byselect_project.
delete_feature ⚠️⚠️
Delete a feature flag from ALL environments.
Parameters:
key: Feature key to deleteprojectKey(optional): Project to target. Defaults to the project set byselect_project.
cleanup_feature
Fetch the DevCycle Feature Cleanup prompt and return its markdown content to guide safe cleanup of a completed feature and its variables in codebases.
Parameters:
featureKey: The feature key you plan to clean up (used for context in the prompt)
get_feature_audit_log_history
Get feature flag audit log history from DevCycle. Returns audit log entities matching the DevCycle API schema with date, a0_user, and changes fields.
Parameters:
feature_key: Feature keypage(optional): Page number for pagination (default: 1)perPage(optional): Number of items per page (default: 100, max: 1000)sortBy(optional): Field to sort by (createdAt,updatedAt,action,user) (default:createdAt)sortOrder(optional): Sort order (asc,desc) (default:desc)startDate(optional): Start date for filtering (ISO 8601 format)endDate(optional): End date for filtering (ISO 8601 format)environment(optional): Environment key to filter byuser(optional): User ID to filter byaction(optional): Action type to filter byprojectKey(optional): Project to target. Defaults to the project set byselect_project.
Variable Management
list_variables
List all variables in the current project.
Parameters:
search(optional): Search querypage(optional): Page numberperPage(optional): Items per pagesortBy(optional): Sort field (createdAt,updatedAt,name,key,createdBy,propertyKey)sortOrder(optional): Sort order (asc,desc)feature(optional): Filter by feature keytype(optional): Filter by variable type (String,Boolean,Number,JSON)status(optional): Filter by variable status (active,archived)projectKey(optional): Project to target. Defaults to the project set byselect_project.
create_variable ⚠️
Create a new variable.
Parameters:
key: Unique variable key (pattern:^[a-z0-9-_.]+$)type: Variable type (String,Boolean,Number,JSON)name(optional): Variable namedescription(optional): Variable descriptiondefaultValue(optional): Default value_feature(optional): Associated feature keyvalidationSchema(optional): Validation rulespersistent(optional): Whether the variable is intended to be long-livedtags(optional): Tags to organize variablesprojectKey(optional): Project to target. Defaults to the project set byselect_project.
update_variable ⚠️
Update an existing variable.
Parameters:
key: Variable key to updatename(optional): New namedescription(optional): New descriptiontype(optional): New typevalidationSchema(optional): New validation rulespersistent(optional): Whether the variable is intended to be long-livedtags(optional): Tags to organize variablesprojectKey(optional): Project to target. Defaults to the project set byselect_project.
delete_variable ⚠️⚠️
Delete a variable from ALL environments.
Parameters:
key: Variable key to deleteprojectKey(optional): Project to target. Defaults to the project set byselect_project.
SDK Installation
install_devcycle_sdk
Fetch DevCycle SDK installation instructions and follow the guide to install the SDK. Includes documentation and examples for using the SDK in your application.
Parameters:
guide: One ofandroid,android-openfeature,angular,dotnet,dotnet-openfeature,flutter,go,go-openfeature,ios,ios-openfeature,java,java-openfeature,javascript,javascript-openfeature,nestjs,nestjs-openfeature,nextjs,nodejs,nodejs-openfeature,php,php-openfeature,python,python-openfeature,react,react-native,react-openfeature,roku,ruby,ruby-openfeature
Project Management
get_current_project
Get details of a project, defaulting to the currently selected one.
Parameters:
projectKey(optional): Project to target. Defaults to the project set byselect_project.
select_project
Select a project to use for subsequent MCP operations. Returns the current project, its environments, and SDK keys.
The selection is remembered for the rest of the session. If your MCP host starts a new session per request, pass a projectKey to each tool instead.
Parameters:
projectKey(optional): Project key to select (if omitted, lists available projects to choose from)
Self-Targeting & Overrides
get_self_targeting_identity
Get current DevCycle identity for self-targeting.
Parameters:
projectKey(optional): Project to target. Defaults to the project set byselect_project.
update_self_targeting_identity
Update DevCycle identity for testing.
Parameters:
dvc_user_id: DevCycle User ID (use empty string to clear)projectKey(optional): Project to target. Defaults to the project set byselect_project.
list_self_targeting_overrides
List all active overrides for the current project.
Parameters:
projectKey(optional): Project to target. Defaults to the project set byselect_project.
set_self_targeting_override ⚠️
Set an override to test a specific variation.
Parameters:
feature_key: Feature keyenvironment_key: Environment keyvariation_key: Variation to serveprojectKey(optional): Project to target. Defaults to the project set byselect_project.
clear_feature_self_targeting_overrides ⚠️
Clear overrides for a specific feature/environment.
Parameters:
feature_key: Feature keyenvironment_key: Environment keyprojectKey(optional): Project to target. Defaults to the project set byselect_project.
Results & Analytics
get_feature_total_evaluations
Get total variable evaluations per time period for a specific feature.
Parameters:
featureKey: Feature keystartDate(optional): Start date as Unix timestamp (milliseconds since epoch)endDate(optional): End date as Unix timestamp (milliseconds since epoch)platform(optional): Platform filter for evaluation resultsvariable(optional): Variable key filter for evaluation resultsenvironment(optional): Environment key to filter resultsperiod(optional): Time aggregation period (day,hour,month)sdkType(optional): Filter by SDK type (client,server,mobile,api)projectKey(optional): Project to target. Defaults to the project set byselect_project.
get_project_total_evaluations
Get total variable evaluations per time period for the entire project.
Parameters:
startDate(optional): Start date as Unix timestamp (milliseconds since epoch)endDate(optional): End date as Unix timestamp (milliseconds since epoch)environment(optional): Environment key to filter resultsperiod(optional): Time aggregation period (day,hour,month)sdkType(optional): Filter by SDK type (client,server,mobile,api)projectKey(optional): Project to target. Defaults to the project set byselect_project.
Authentication Methods
1. CLI Authentication (Recommended for local development)
dvc login sso
dvc projects select
2. Environment Variables (Recommended for CI/CD)
export DEVCYCLE_CLIENT_ID="your-client-id"
export DEVCYCLE_CLIENT_SECRET="your-client-secret"
export DEVCYCLE_PROJECT_KEY="your-project-key"
Advanced Configuration
Local MCP Server Installation
For users who prefer to run the DevCycle MCP server locally rather than using the hosted version, you can install and configure the local server:
Prerequisites
- Node.js 18+ installed
- DevCycle CLI installed globally:
npm install -g @devcycle/cli - DevCycle account with API credentials or SSO authentication
Installation
Install the DevCycle CLI which includes the local MCP server:
npm install -g @devcycle/cli
Authentication
Choose one of the following authentication methods:
Option 1: CLI Authentication (Recommended for local development)
# Authenticate via SSO
dvc login sso
# Select your project
dvc projects select
Option 2: Environment Variables (Recommended for CI/CD)
export DEVCYCLE_CLIENT_ID="your-client-id"
export DEVCYCLE_CLIENT_SECRET="your-client-secret"
export DEVCYCLE_PROJECT_KEY="your-project-key"
AI Editor Configuration
- Cursor
- VS Code
- Claude Code
- OpenCode
- Claude Desktop
- Windsurf
- Codex CLI
- Gemini CLI
Add the following to your ~/.cursor/mcp_settings.json file:
{
"mcpServers": {
"devcycle": {
"command": "dvc-mcp"
}
}
}
Add the following to your settings.json file:
{
"mcp.servers": {
"devcycle": {
"command": "dvc-mcp"
}
}
}
Run the following command:
claude mcp add --transport stdio devcycle dvc-mcp
Run the following command and follow the interactive prompts to add the local DevCycle MCP server (name: devcycle, type: local, command: dvc-mcp):
opencode mcp add
For more details, see the OpenCode MCP documentation.
Locate and edit your Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add the following configuration:
{
"mcpServers": {
"devcycle": {
"command": "dvc-mcp"
}
}
}
In Windsurf Settings → Cascade → Manage MCPs → View raw config:
{
"mcpServers": {
"devcycle": {
"command": "dvc-mcp"
}
}
}
Locate and edit your configuration file at ~/.codex/config.toml:
[mcp_servers.devcycle]
command = "dvc-mcp"
For more details, see the OpenAI Codex MCP documentation.
Locate and edit your configuration file at ~/.gemini/settings.json:
{
"mcpServers": {
"devcycle": {
"command": "dvc-mcp"
}
}
}
For more details, see the Gemini CLI MCP documentation.
Error Handling
The MCP server returns structured error responses:
{
"errorType": "AUTHENTICATION_ERROR",
"errorMessage": "401 Unauthorized",
"toolName": "list_features",
"suggestions": [
"Re-authenticate with DevCycle (run \"dvc login sso\" for CLI for local MCP or re-login through OAuth for remote MCP)",
"Verify your API credentials are correct",
"Check if your token has expired"
],
"timestamp": "2025-07-01T00:00:00.000Z"
}
Fields:
errorType: One ofAUTHENTICATION_ERROR,PERMISSION_ERROR,RESOURCE_NOT_FOUND,VALIDATION_ERROR,SCHEMA_VALIDATION_ERROR,RATE_LIMIT_ERROR,NETWORK_ERROR,PROJECT_ERROR,UNKNOWN_ERROR.errorMessage: Human-readable error description.toolName: The MCP tool that produced the error.suggestions: Remediation steps tailored to the error type.timestamp: ISO 8601 timestamp when the error was generated.
Common error scenarios:
- Authentication failures: Check credentials and project configuration
- API rate limits: Implement retry logic in your automation
- Validation errors: Ensure parameters meet requirements (patterns, lengths, etc.)
- Permission errors: Verify your API key has necessary permissions
Development & Local Testing
Running from Source
# Clone the repository
git clone https://github.com/DevCycleHQ/cli.git
cd cli
# Install dependencies
yarn install
# Build the project
yarn build
# Run the MCP server
node dist/mcp/index.js
Testing with AI Assistants
For local testing, update your AI assistant configuration to point to the local build:
{
"mcpServers": {
"devcycle": {
"command": "node",
"args": ["/path/to/cli/dist/mcp/index.js"]
}
}
}
Debug Logging
The MCP server logs all operations to stderr, which can be viewed in:
- Cursor: Developer Tools console
- Claude Desktop: Log files in the application support directory
Environment Variables for Development
# Enable verbose logging
export DEBUG=1
# Use specific DevCycle API endpoint
export DEVCYCLE_API_URL="https://api.devcycle.com"
Getting Help
- GitHub Issues: GitHub Issues
- General Documentation: DevCycle Docs
- Support: Contact Support