Devcycle

com.devcyclePublished by devcycle.comOfficial publisherv6.6.1Updated Oct 24, 2026

DevCycle MCP server for feature flag management

VerifiedStreamable HTTPWeb executableProductivity & WorkflowDeveloper Tools

Overview

AI-generated overview

Hosted DevCycle MCP server that lets an AI coding assistant create, update and manage feature flags, variables, variations and targeting rules.

What you can do
  • Create, view and modify features, variables, variations, environments and targeting rules in DevCycle
  • Manage self-targeting overrides and retrieve SDK keys for a project
  • List or switch organizations and projects tied to the account
  • Generate type definitions and related DevCycle files for type-safe usage
When to use it
Useful when you work with DevCycle feature flags and want an assistant to make flag changes, inspect targeting, or generate SDK keys and type definitions without leaving the editor.
Requirements
A remote hosted endpoint; no local installation is required. OAuth authentication is required and the server walks you through it on first use. A DevCycle account with access to the relevant organization and project is needed.
Before you install
The assistant can create and change feature flags, variables, variations, targeting rules and overrides in your DevCycle projects, which affects what users see in your applications. Changes are made under your authenticated account, so review them before relying on them. The README also notes that CLI credential files should not be committed to version control.

Installation

In SourceWeft

  1. Open Devcycle in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.devcycle%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "devcycle": {
      "type": "http",
      "url": "https://mcp.devcycle.com/mcp"
    }
  }
}

README

DevCycle CLI & MCP Server

This repository contains the DevCycle CLI for managing feature flags from the command line, plus an MCP (Model Context Protocol) server that enables AI coding assistants to interact with DevCycle.

Major features include:

  • Fully manage your Features, Variables, Variations and Targeting Rules from the command line
  • Detect and list DevCycle Variable usages in your codebase
  • Manage your Self-Targeting Overrides to quickly switch between Variable values
  • Generate type definitions for type-safe usage of DevCycle (Typescript only)
  • MCP (Model Context Protocol) server for AI-powered feature flag management with Cursor and Claude

The CLI can be customized in several ways using command-line args or by creating a configuration file.

[oclif] [Version] [License]

MCP Server for AI Assistants

The DevCycle MCP (Model Context Protocol) server enables AI coding assistants like Cursor and Claude to manage feature flags directly from your development environment. DevCycle offers a hosted MCP server that requires no local installation.

Quick Setup (No Installation Required)

  1. Configure your AI assistant to use the hosted MCP server:

    • Cursor: Add to .cursor/mcp_settings.json:

      json
      {  "mcpServers": {    "devcycle": {      "url": "https://mcp.devcycle.com/mcp"    }  }}
    • Claude Desktop: Add to your Claude config file:

      json
      {  "mcpServers": {    "devcycle": {      "command": "npx",      "args": [        "mcp-remote",        "https://mcp.devcycle.com/mcp"      ]    }  }}
  2. That's it! The server will guide you through OAuth authentication when you first use it.

Your AI assistant can now create, update, and manage feature flags on your behalf.

For local installation options, detailed configuration, available tools, and advanced usage, see the complete MCP documentation.

CLI Documentation

Setup

Install the CLI

Using NPM

sh-session
$ npm install -g @devcycle/cli

Or alternatively, using homebrew

sh-session
$ brew tap devcyclehq/cli$ brew install devcycle

Authentication

Many of the CLI commands require DevCycle API authorization. There are several ways to provide these credentials.

Using Access Tokens (preferred)

Login Command

By using the login sso command, the CLI will retrieve and store an access token, which is valid for 24 hours.

The login again command can be used to retrieve a new access token using the saved project and organization without prompting for them.

This process will open browser windows to interact with the DevCycle universal login page. It will first obtain a personal access token, then prompt you to choose an organization. A second browser window is used to authenticate the CLI with your chosen organization.

To switch organizations once logged in, the organizations select command can be used.

If executing the CLI in a containerized environment, please ensure one of the following PORTs can be accessed via Port Forwarding: 2194 (default), 2195, 2196 or 8080. This will allow the authentication process to complete and set the access token appropriately.

Repo Init Command

The repo init command behaves in the same way as login sso, but creates a repo configuration file and stores the project and organization choices there instead.

Using Client Credentials

Client Credentials in Auth File

Use the dvc status command to find the configuration file location for your platform. The credentials can be stored in the file pointed to by the Auth config path. Create the file if it does not exist, with the following contents.

yaml
clientCredentials:  client_id: <your client id>  client_secret: <your client secret>

This file should not be checked in to version control.

The default location is based on the oclif configDir

If you intend to run the CLI using options that override config file locations, the dvc status command command can be run with those options to confirm that the file locations are as expected.

Project Selection

You also need to specify the default project ID for the CLI to use.

If there is a repo configuration file, the dvc diff and dvc usages commands will use the project defined there.

Otherwise, this is chosen during login or set using the project select command

Environment Variables

Set the following environment variables:

sh-session
$ export DEVCYCLE_CLIENT_ID=<your client id>$ export DEVCYCLE_CLIENT_SECRET=<your client secret>$ export DEVCYCLE_PROJECT_KEY=<your project key>

Command-Line Arguments

The CLI can be run with the following arguments:

sh-session
$ dvc --client-id=<your client id> --client-secret=<your client secret> --project=<your project key>

Github Action

The Devcycle Github actions are configured with auth information through the project-key, client-id and client-secret configuration parameters. This is passed to the CLI via command line arguments.

Usage

sh-session
$ npm install -g @devcycle/cli$ dvc COMMANDrunning command...$ dvc (--version)@devcycle/cli/6.6.1 linux-x64 node-v24.21.0$ dvc --help [COMMAND]USAGE  $ dvc COMMAND...

Command Topics

  • dvc alias - Manage repository variable aliases.
  • dvc autocomplete - display autocomplete installation instructions
  • dvc cleanup - Replace a DevCycle variable with a static value in the current version of your code. Currently only JavaScript is supported.
  • dvc diff - Print a diff of DevCycle variable usage between two versions of your code.
  • dvc environments - Create a new Environment for an existing Feature.
  • dvc features - Create, view, or modify Features with the Management API.
  • dvc generate - Generate Devcycle related files.
  • dvc help - Display help for dvc.
  • dvc identity - View or manage your DevCycle Identity.
  • dvc keys - Retrieve SDK keys from the Management API.
  • dvc login - Log in to DevCycle.
  • dvc logout - Discards any auth configuration that has been stored in the auth configuration file.
  • dvc organizations - List or switch organizations.
  • dvc overrides - Create, view, or modify Overrides for a Project with the Management API.
  • dvc projects - Create, or view Projects with the Management API.
  • dvc repo - Manage repository configuration.
  • dvc status - Check CLI status.
  • dvc targeting - Create, view, or modify Targeting Rules for a Feature with the Management API.
  • dvc usages - Print all DevCycle variable usages in the current version of your code.
  • dvc variables - Create, view, or modify Variables with the Management API.
  • dvc variations - Create a new Variation for an existing Feature.

Repo Configuration

The following commands can only be run from the root of a configured repository

Many of the options available as command-line args can also be specified using a repo configuration file. The default location for this file is <REPO ROOT>/.devcycle/config.yml.

This location can be overridden using the --repo-config-path flag.

The configuration file format is documented below:

yml
## the project and organization to use when connecting to the DevCycle Rest API for this repoproject: "project-key"org:  id: "org_xxxxxx"  name: "unique-org-key"  display_name: "Human Readable Org Name"## block for configuring "code insights" features like diff and variable usage scanning## use this section to improve the detection of DevCycle usage within your codecodeInsights:  ## add additional names to check for when looking for instances of DVCClient from an SDK  clientNames:    - "dvcClient"  ## map the values used in your code to the corresponding variable key in DevCycle  variableAliases:    "VARIABLES.ENABLE_V1": "enable-v1"  ## additional regex patterns used to match variables for a specific file extension  matchPatterns:    ## file extension to override for, containing a list of patterns to use    js:      - dvcClient\.variable\(\s*["']([^"']*)["']  ## an array of file glob patterns to include in usage scan  includeFiles:    - "*.[jt]s"  ## an array of file glob patterns to exclude from usage scan  excludeFiles:    - "dist/*"

Match Patterns and Aliases

When identifying variable usages in the code, the CLI will identify DevCycle SDK methods by default. To capture other usages you may define match patterns. Match patterns are defined by file extension.

:::note Each pattern must include exactly one capture group for the variable key. Capture the entire key value (including surrounding quotes if you choose the “with quotes” pattern). :::

Match patterns can be defined in the configuration file, for example:

yml
codeInsights:  matchPatterns:    js:      - customVariableGetter\(\s*["']([^"']*)["']    ts:      - customVariableGetter\(\s*["']([^"']*)["']    jsx:      - customVariableHook\(\s*["']([^"']*)["']      - customVariableGetter\(\s*["']([^"']*)["']    tsx:      - customVariableHook\(\s*["']([^"']*)["']      - customVariableGetter\(\s*["']([^"']*)["']
Capturing with or without quotes

Match patterns can capture variable keys with or without quotes, which affects whether aliases are needed:

With quotes:

yml
# Pattern captures the key including surrounding quotes- dvcClient\.variable\(\s*(["'][^"']*["'])\s*,
  • Matches: dvcClient.variable('my-variable', default)
  • Captures: 'my-variable' (with quotes)

Without quotes (aliases or generated constants required):

yml
# Pattern strips quotes, capturing only the content- dvcClient\.variable\(\s*["']([^"']*)["']
  • Matches: dvcClient.variable('my-variable', default)
  • Captures: my-variable

Match patterns can also be passed directly to relevant commands using the --match-pattern flag:

bash
dvc usages --match-pattern ts="customVariableGetter\(\s*["']([^"']*)["']" js="customVariableGetter\(\s*["']([^"']*)["']"

When testing your regex the --show-regex flag can be helpful. This will print all patterns used to find matches in your codebase.

bash
dvc usages --show-regex
Custom Wrapper Functions

If you use wrapper functions around the SDK, add patterns for them.

Example: Custom wrapper functions

yml
codeInsights:  matchPatterns:    ts:      # Matches: getFeatureFlag('my-variable', defaultValue)      - getFeatureFlag\(\s*([^,)]*)\s*,      # Matches: isFeatureEnabled('my-variable')      - isFeatureEnabled\(\s*([^,)]*)\s*\)    tsx:      # Matches: useFeatureFlag('my-variable', defaultValue)      - useFeatureFlag\(\s*([^,)]*)\s*,

Source: README.md at commit c0242ab

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

3
  1. v6.6.1LatestOct 14, 2026
  2. v6.6.0Oct 7, 2026
  3. v6.3.2Sep 16, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts