
Get the ConfigCat user the Public API credential belongs to, with their email and name. Use this to confirm which account the connector is acting as before making changes.
List the ConfigCat organizations this credential can see. Start here: an organization ID is required to create a product and to read organization audit logs, usage and limits.
Get an organization's feature flag limits: how many targeting rules, percentage options and predefined variations a flag may have, and how long a value may be. Check these before building large targeting rules. Use list_organizations to find organization IDs.
Get an organization's plan usage and quota counters, such as config JSON downloads against the plan allowance. Use list_organizations to find organization IDs.
List an organization's members, grouped into admins, billing managers and plain members. Use this to find the user ID behind an email before changing product access. Use list_organizations to find organization IDs.
List everyone with access to a product, with the permission group that grants it. Use list_products to find product IDs.
List a product's audit log entries, newest first, filtered by config, environment, change type or time window. Use it to answer who changed a flag and when. Use listproducts to find product IDs; page with pagenumber.
List an organization's audit log entries across every product, newest first, filtered by product, config, environment, change type or time window. Use listorganizations to find organization IDs; page with pagenumber.
Get the primary and secondary SDK keys that serve one config in one environment. These are the keys an application passes to a ConfigCat SDK. Use listconfigs and listenvironments to find the IDs.
List the configs in a product. A config is the folder that holds feature flags, so its ID is what listflags and createflag need. Each entry reports evaluationVersion, which decides the shape of its flags' values. Use list_products to find product IDs.
Get one config by ID, including its evaluationVersion and owning product. Use list_configs to find config IDs.
Create a config in a product. Defaults to the v2 targeting engine; ConfigCat's own API default is the legacy v1, which cannot be changed afterwards, so this tool always sends the value. Use list_products to find product IDs. Returns the new configId.
Update a config's name, description or display order. Fields you leave null keep their current values. A config's evaluationVersion cannot be changed. Use list_configs to find config IDs.
Permanently delete a config and every feature flag inside it, in every environment. This cannot be undone. Use list_configs to find config IDs.
List the environments in a product. A flag holds one value per environment, so an environment ID is what the flag value tools need. Use list_products to find product IDs.
Get one environment by ID, including whether changes there need a reason or an approval. Use list_environments to find environment IDs.
Create an environment in a product, adding one more value slot to every flag in it. Use list_products to find product IDs. Smaller ConfigCat plans cap the number of environments and refuse this with a plan-limit error. Returns the new environmentId.
Update an environment's name, description, colour or display order. Fields you leave null keep their current values. Use list_environments to find environment IDs.
Permanently delete an environment and every flag value held in it. This cannot be undone. Use list_environments to find environment IDs.
List the feature flags in a config, with each flag's numeric settingId, key, value type and tags. Use this to find the settingId that getflag, updateflag and the flag value tools take. Use list_configs to find config IDs.
Get one feature flag's definition by its numeric ID: key, name, hint, value type and tags. This returns the flag itself, not its value in an environment, which getflagvalue returns. Use list_flags to find flag IDs.
Create a feature flag in a config. The key and the value type are fixed at creation. Use listconfigs for config IDs and listtags for tag IDs. Returns the new settingId; set the flag's value per environment with updateflagvalue.
Update a feature flag's name, hint or display order. Fields you leave null are not touched. The key and value type cannot be changed; use updateflagvalue to change what the flag returns. Use list_flags to find flag IDs.
Permanently delete a feature flag and its values in every environment. SDKs asking for the key afterwards fall back to their default value. This cannot be undone. Use list_flags to find flag IDs.
List every feature flag carrying one tag, across all of the product's configs. Use list_tags to find tag IDs.
Report a product's stale (zombie) flags: the ones whose value has not changed for long enough to look abandoned. Use it to find flags worth removing. Use list_products to find product IDs.
Get one feature flag's value and targeting rules in one environment. Use listflags for the flag ID and listenvironments for the environment ID. The result reports evaluation_version: read defaultValue on 'v2' and value on 'v1'.
Get every feature flag's value in one config and environment, in a single call. Use this instead of calling getflagvalue per flag. Use listconfigs and listenvironments to find the IDs.
Set a feature flag's default value in one environment. Supply exactly one of boolvalue, stringvalue, intvalue or doublevalue, matching the flag's settingType from getflag. Existing targeting rules are left in place. Pass a reason when the product requires one; getproduct_preferences says whether it does.
Get one flag's value using the connected SDK key, which already identifies a config and environment, so no IDs are needed. Accepts the flag key or its numeric ID. Requires the optional SDK key secret to be set.
Set a flag's default value using the connected SDK key, which already identifies the config and environment. Supply exactly one of boolvalue, stringvalue, intvalue or doublevalue, matching the flag's settingType. Requires the optional SDK key secret.
Download the published config JSON that ConfigCat's SDKs evaluate, for the config and environment the connected SDK key points at. Use it to confirm a change has reached the delivery network. Requires the optional SDK key secret to be set.
List every ConfigCat product this credential can see, across all organizations. Start here to get the product ID that config, environment, tag, segment and webhook tools need. ConfigCat returns the full list in one response.
Get one product by ID, with its organization and change-approval flags. Use list_products to find product IDs.
Create a product inside an organization. Use list_organizations to find the organization ID first. Returns the new productId. Creating a product may be refused with a plan-limit error on smaller plans.
Update a product's name, description or display order. Fields you leave null keep their current values. Use list_products to find product IDs.
Permanently delete a product and everything in it: its configs, feature flags, environments, segments and webhooks. This cannot be undone. Use list_products to find product IDs.
Get a product's change-management preferences: whether a reason or an approval is required for flag value changes, globally and per environment. Check this before calling updateflagvalue, which needs a reason when it is required. Use list_products to find product IDs.
List the segments defined in a product. A segment is a reusable user group that targeting rules reference by ID. Use list_products to find product IDs.
Get one segment by ID, with the attribute, comparator and value that define it. Use list_segments to find segment IDs.
Create a segment in a product from one condition: an attribute, a comparator and a value. Use list_products to find product IDs. Returns the new segmentId, which targeting rules reference.
Update a segment's name, description or condition. Fields you leave null keep their current values, and flags targeting the segment pick the change up immediately. Use list_segments to find segment IDs.
Permanently delete a segment. Targeting rules that reference it stop applying. This cannot be undone. Use list_segments to find segment IDs.
List the tags defined in a product. Tags group feature flags across configs; their IDs are what createflag and listflagsbytag take. Use list_products to find product IDs.
Get one tag by ID, with its name, colour and owning product. Use list_tags to find tag IDs.
Create a tag in a product so feature flags can be grouped by it. Use listproducts to find product IDs. Returns the new tagId, which createflag accepts.
Update a tag's name or colour. Fields you leave null keep their current values. Use list_tags to find tag IDs.
Delete a tag and remove it from every feature flag carrying it. The flags themselves are not deleted. Use list_tags to find tag IDs.
Validate the ConfigCat Public API user name and password, and the SDK key when one is set. Every secret is exercised: the pair against the account lookup, the SDK key against the config delivery network, so a half-configured credential fails here rather than in every later tool.
List a product's webhooks, with the config and environment each one watches. Use list_products to find product IDs.
Get one webhook by ID, with its URL, method, body template and headers. Use list_webhooks to find webhook IDs.
Create a webhook that fires when a flag value changes in one config and environment. Use listconfigs and listenvironments to find the IDs. Returns the new webhookId; delete_webhook removes it.
Permanently delete a webhook, so flag value changes stop being posted to its URL. Use list_webhooks to find webhook IDs.

In an mcp.json file, add the configuration below, and restart Cursor.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5 "headers": {
6 "Authorization": "Bearer yMt*****"
7 }
8 }
9 }
10}
11Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.
Make sure Claude is using the Node v20+.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "yMt*****"
14 }
15 }
16 }
17}Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.
Learn more in the official documentation ↗
1{
2 "mcpServers": {
3 "agent-handler": {
4 "command": "npx",
5 "args": [
6 "-y",
7 "mcp-remote@latest",
8 "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9 "--header",
10 "Authorization: Bearer ${AUTH_TOKEN}"
11 ],
12 "env": {
13 "AUTH_TOKEN": "<ah-production-access-key>"
14 }
15 }
16 }
17 }In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".
You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.
Learn more in the official documentation ↗
1{
2 "inputs": [
3 {
4 "type": "promptString",
5 "id": "agent-handler-auth",
6 "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7 "password": true
8 }
9 ],
10 "servers": {
11 "agent-handler": {
12 "type": "stdio",
13 "command": "npx",
14 "args": [
15 "-y",
16 "mcp-remote@latest",
17 "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18 "--header",
19 "Authorization: Bearer ${input:agent-handler-auth}"
20 ]
21 }
22 }
23}Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now