@kud/mcp-harness-fme
Click 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., "@@kud/mcp-harness-fmelist all feature flags in workspace production"
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.
MCP server for Harness FME (Split.io) — read and toggle feature flags.
Website · Documentation
Features
30 tools — covers workspaces, environments, feature flags, flag definitions, segments, rule-based segments, and change requests.
Kill & restore — instantly kill a flag to force all traffic to the default treatment, or restore it with a single tool call.
Safety guard — every destructive operation (delete, kill, archive, disable) requires
confirm: true, preventing accidental changes.Rule-based segments — create, update, enable, disable, and submit change requests for rule-based segments per environment.
Change request flow — submit segment definition changes with optional approvers for teams that require approval gates.
Zero-config startup — reads
MCP_HARNESS_FME_API_KEYfrom the environment and exits immediately if it is missing.
Related MCP server: Featureflow MCP Server
Install
Add to your MCP client config (see Usage below), or install globally to run manually:
npx --yes @kud/mcp-harness-fme@latestSet the environment variable MCP_HARNESS_FME_API_KEY to your Harness FME API key before starting the server.
Usage
This is a standard stdio MCP server — it works with any MCP client (Claude Desktop, Claude Code, Cursor, Windsurf, Cline, Zed, …). Add it to your client's MCP config:
{
"mcpServers": {
"harness-fme": {
"command": "npx",
"args": ["--yes", "@kud/mcp-harness-fme@latest"],
"env": {
"MCP_HARNESS_FME_API_KEY": "your_api_key"
}
}
}
}Most clients read this mcpServers shape — Claude Desktop's config file, Cursor's .cursor/mcp.json, Windsurf, Cline, and so on. For Claude Code, there's a CLI shortcut:
claude mcp add --transport stdio --scope user harness-fme \
--env MCP_HARNESS_FME_API_KEY=your_api_key \
-- npx --yes @kud/mcp-harness-fme@latestTo enable the get_flag_url deep-link tool, also set two optional keys — add them to the env block above (or as extra --env flags for the CLI). See Configuration for where to find their values.
"env": {
"MCP_HARNESS_FME_API_KEY": "your_api_key",
"MCP_HARNESS_FME_ACCOUNT_ID": "your_account_id",
"MCP_HARNESS_FME_ORG_GUID": "your_org_guid"
}Leave them out and every other tool still works — get_flag_url just reports what's missing.
Available tools
Tool | Description |
| List all FME workspaces in the account |
| List all environments in a workspace |
| List all traffic types in a workspace |
| List rollout status definitions for a workspace |
| List feature flags in a workspace (filter by tag, status, name) |
| Get metadata for a specific feature flag |
| Create a new feature flag for a given traffic type |
| Update a flag's description, tags, owners, or rollout status |
| Permanently delete a feature flag ( |
| Archive a flag, removing it from active use ( |
| Restore a previously archived feature flag |
| Kill a flag in an environment — forces default treatment ( |
| Restore a killed feature flag in an environment |
| List flag targeting rules in an environment |
| Get treatments and targeting rules for a flag in an environment |
| Activate a flag in an environment with treatments and targeting rules — pass |
| Fully replace a flag's targeting rules in an environment — pass |
| Remove a flag's targeting rules from an environment ( |
| Add a segment to a flag treatment via safe read-modify-write (idempotent; avoids full-replace) — pass |
| Build a Harness FME web-UI deep-link for a flag — pass workspace/flag/environment by name or id (needs two |
| List all segments in a workspace (API caps page size at 20) |
| List all rule-based segments in a workspace |
| Get a rule-based segment's workspace-level metadata |
| Create a new rule-based segment in a workspace |
| Permanently delete a rule-based segment ( |
| List rule-based segment definitions in an environment |
| Update a rule-based segment's rules in an environment |
| Activate a rule-based segment in an environment |
| Remove a rule-based segment from an environment ( |
| Submit a change request for a segment definition with optional approval flow |
Configuration
The server reads these environment variables:
Variable | Required? | Used by |
| Required | Every tool — server exits at startup if absent |
| Optional |
|
| Optional |
|
The account ID and org GUID are Harness platform identifiers that the API does not expose, so get_flag_url reads them from env. Grab them once from any flag's URL in the Harness FME web UI:
https://app.harness.io/ng/account/<ACCOUNT_ID>/all/fme/orgs/<ORG_SLUG>/projects/<PROJECT>/org/<ORG_GUID>/ws/<WORKSPACE_ID>/splits/<FLAG_ID>/env/<ENV_ID>/definitionURL segment | Where it goes |
| → |
| → |
| Resolved by |
| Resolved by |
⚠ The URL has two org-ish segments:
/orgs/(plural) is the human slug;/org/(singular) is the GUID you want forMCP_HARNESS_FME_ORG_GUID. Grab the singular one.
With those two set, get_flag_url needs only a workspace, flag, and environment (name or id) — it resolves everything else. Without them, it returns a message telling you what to set, and every other tool works normally.
Development
git clone https://github.com/kud/mcp-harness-fme.git
cd mcp-harness-fme
npm install
npm run dev # run from source with tsx
npm run inspect:dev # MCP Inspector at http://localhost:5173
npm test # vitest
npm run build # compile to dist/Environment variables are documented in Configuration above. All tools are defined in src/index.ts.
📚 Full documentation → mcp-harness-fme/docs
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/kud/mcp-harness-fme'
If you have feedback or need assistance with the MCP directory API, please join our Discord server