create-config
This endpoint creates a new Config in a specified Product
identified by the productId parameter, which can be obtained from the List Products endpoint.
Read and set ConfigCat feature flag values one Environment at a time, with a reason travelling alongside every write.
LABSCO SUMMARY
The value tools split by scope — one flag in one Environment, or every flag in a Config in a single call — and each of those writes takes a reason alongside the new value. Both the original and the v2 setting-value tools ship, and the v2 pair is the one that replaces Targeting Rules, so a client written against the older shape keeps working. One tool does no flag work at all: update-sdk-documentation downloads ConfigCat SDK documentation from a URL you pass it, for the point where the next step is code rather than configuration.
A cover over the ConfigCat management endpoints — 79 tools spanning Organizations, Products, Configs, Environments, feature flags, Segments, Tags, Webhooks, Permission Groups and audit logs.
A ConfigCat account with API credentials in CONFIGCAT_API_USER and CONFIGCAT_API_PASS. Nothing has to be looked up first: list-organizations and list-products return what the account can see, and the rest of the catalogue works from the ids those two hand back.
One command plus credentials — npx -y @configcat/mcp-server, then supply credentials
USE CASES
Walk from the Product down to the flag, read its current value in the environment you care about, and patch that one value with a reason attached.
Ask for the flags that have gone stale, check where each one is still referenced in code, and delete the ones that come back clean.
Pull the audit log for the Product, and widen to the Organization when the change came from somewhere else. Without a date range the Product log covers the last 7 days.
Create the Environment, take the SDK Key the branch build will need, then copy the flag values across in one batched write instead of flag by flag.
Look at the Permission Groups a Product already has, add one scoped the way you want, invite the person into it, and move them later without re-inviting.
Register a webhook against the Config and Environment, take its signing keys so the receiving end can check the requests are genuine, and patch the target later without recreating it.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
create-configThis endpoint creates a new Config in a specified Product
identified by the productId parameter, which can be obtained from the List Products endpoint.
create-environmentThis endpoint creates a new Environment in a specified Product
identified by the productId parameter, which can be obtained from the List Products endpoint.
create-integrationThis endpoint creates a new Integration in a specified Product identified by the productId parameter, which can be obtained from the List Products endpoint.
The Parameters dictionary differs for each IntegrationType:
apikey: Required. Datadog API key.site: Datadog site. Available values: Us, Eu, Us1Fed, Us3, Us5. Default: Us.incoming_webhook.url: Required. The incoming webhook URL where the integration should post messages.includeSensitiveData: Set to "true" to include sensitive (hashed) comparison values. By default, the integration will mask these values in the posted messages. We recommend hiding sensitive comparison values for shared or public Slack channels.apiKey: Required. Amplitude API Key.secretKey: Required. Amplitude Secret Key.serviceAccountUserName: Required. Mixpanel Service Account Username.serviceAccountSecret: Required. Mixpanel Service Account Secret.projectId: Required. Mixpanel Project ID.server: Mixpanel Server. Available values: StandardServer, EUResidencyServer. Default: StandardServer.writeKey: Required. Twilio Segment Write Key.server: Twilio Segment Server. Available values: Us, Eu. Default: Us.create-permission-groupThis endpoint creates a new Permission Group in a specified Product
identified by the productId parameter, which can be obtained from the List Products endpoint.
create-productThis endpoint creates a new Product in a specified Organization
identified by the organizationId parameter, which can be obtained from the List Organizations endpoint.
create-segmentThis endpoint creates a new Segment in a specified Product
identified by the productId parameter, which can be obtained from the List Products endpoint.
create-settingThis endpoint creates a new Feature Flag or Setting in a specified Config identified by the configId parameter.
Important: The key attribute must be unique within the given Config.
create-tagThis endpoint creates a new Tag in a specified Product
identified by the productId parameter, which can be obtained from the List Products endpoint.
create-webhookThis endpoint creates a new Webhook in a specified Product
identified by the productId parameter, which can be obtained from the List Products endpoint.
delete-configThis endpoint removes a Config identified by the configId parameter.
delete-environmentThis endpoint removes an Environment identified by the environmentId parameter.
If the cleanupAuditLogs flag is set to true, it also deletes the audit log records related to the environment
(except for the Created a new environment and Deleted an environment records).
delete-integrationThis endpoint removes a Integration identified by the integrationId parameter.
delete-invitationThis endpoint removes an Invitation identified by the invitationId parameter.
delete-organization-memberThis endpoint removes a Member identified by the userId from the
given Organization identified by the organizationId parameter.
delete-permission-groupThis endpoint removes a Permission Group identified by the permissionGroupId parameter.
delete-productThis endpoint removes a Product identified by the productId parameter.
delete-product-memberThis endpoint removes a Member identified by the userId from the
given Product identified by the productId parameter.
delete-segmentThis endpoint removes a Segment identified by the segmentId parameter.
delete-settingThis endpoint removes a Feature Flag or Setting from a specified Config,
identified by the configId parameter.
delete-tagThis endpoint deletes a Tag identified by the tagId parameter. To remove a Tag from a Feature Flag or Setting use the Update Flag endpoint.
delete-webhookThis endpoint removes a Webhook identified by the webhookId parameter.
get-code-referencesGet References for Feature Flag or Setting
get-configThis endpoint returns the metadata of a Config
identified by the configId.
get-environmentThis endpoint returns the metadata of an Environment
identified by the environmentId.
get-integrationThis endpoint returns the metadata of an Integration
identified by the integrationId.
get-permission-groupThis endpoint returns the metadata of a Permission Group
identified by the permissionGroupId.
get-productThis endpoint returns the metadata of a Product
identified by the productId.
get-product-preferencesThis endpoint returns the preferences of a Product
identified by the productId.
get-sdk-keysThis endpoint returns the SDK Key for your Config in a specified Environment.
get-segmentThis endpoint returns the metadata of a Segment
identified by the segmentId.
get-settingThis endpoint returns the metadata attributes of a Feature Flag or Setting
identified by the settingId parameter.
get-setting-valueThis endpoint returns the value of a Feature Flag or Setting in a specified Environment identified by the environmentId parameter.
The most important attributes in the response are the value, rolloutRules and percentageRules. The value represents what the clients will get when the evaluation requests of our SDKs are not matching to any of the defined Targeting or Percentage Rules, or when there are no additional rules to evaluate.
The rolloutRules and percentageRules attributes are representing the current Targeting and Percentage Rules configuration of the actual Feature Flag or Setting in an ordered collection, which means the order of the returned rules is matching to the evaluation order. You can read more about these rules here.
get-setting-value-v2This endpoint returns the value of a Feature Flag or Setting in a specified Environment identified by the environmentId parameter.
The most important fields in the response are the defaultValue, targetingRules, and percentageEvaluationAttribute. The defaultValue represents what the clients will get when the evaluation requests of our SDKs are not matching to any of the defined Targeting Rules, or when there are no additional rules to evaluate.
The targetingRules represents the current Targeting Rule configuration of the actual Feature Flag or Setting in an ordered collection, which means the order of the returned rules is matching to the evaluation order. You can read more about these rules here.
The percentageEvaluationAttribute represents the custom User Object attribute that must be used for percentage evaluation of the Feature Flag or Setting.
get-setting-valuesThis endpoint returns the value of a specified Config's Feature Flags or Settings identified by the configId parameter in a specified Environment identified by the environmentId parameter.
The most important attributes in the response are the value, rolloutRules and percentageRules. The value represents what the clients will get when the evaluation requests of our SDKs are not matching to any of the defined Targeting or Percentage Rules, or when there are no additional rules to evaluate.
The rolloutRules and percentageRules attributes are representing the current Targeting and Percentage Rules configuration of the actual Feature Flag or Setting in an ordered collection, which means the order of the returned rules is matching to the evaluation order. You can read more about these rules here.
get-setting-values-v2This endpoint returns all Feature Flag and Setting values of a Config identified by the configId parameter in a specified Environment identified by the environmentId parameter.
The most important fields in the response are the defaultValue, targetingRules. The defaultValue represents what the clients will get when the evaluation requests of our SDKs are not matching to any of the defined Targeting Rules, or when there are no additional rules to evaluate.
The targetingRules represents the current Targeting Rule configuration of the actual Feature Flag or Setting in an ordered collection, which means the order of the returned rules is matching to the evaluation order. You can read more about these rules here.
The percentageEvaluationAttribute represents the custom User Object attribute that must be used for percentage evaluation of the Feature Flag or Setting.
get-tagThis endpoint returns the metadata of a Tag
identified by the tagId.
get-webhookThis endpoint returns the metadata of a Webhook
identified by the webhookId.
get-webhook-signing-keysThis endpoint returns the signing keys of a Webhook identified by the webhookId.
Signing keys are used for ensuring the Webhook requests you receive are actually sent by ConfigCat.
<a href="https://configcat.com/docs/advanced/notifications-webhooks/#verifying-webhook-requests" target="_blank" rel="noopener noreferrer">Here</a> you can read more about Webhook request verification.
invite-memberThis endpoint invites a Member into the given Product identified by the productId parameter.
list-auditlogsThis endpoint returns the list of Audit log items for a given Product and the result can be optionally filtered by Config and/or Environment.
If neither fromUtcDateTime nor toUtcDateTime is set, the audit logs for the last 7 days will be returned.
The distance between fromUtcDateTime and toUtcDateTime cannot exceed 30 days.
list-configsThis endpoint returns the list of the Configs that belongs to the given Product identified by the
productId parameter, which can be obtained from the List Products endpoint.
list-environmentsThis endpoint returns the list of the Environments that belongs to the given Product identified by the
productId parameter, which can be obtained from the List Products endpoint.
list-integrationsThis endpoint returns the list of the Integrations that belongs to the given Product identified by the
productId parameter, which can be obtained from the List Products endpoint.
list-organization-auditlogsThis endpoint returns the list of Audit log items for a given Organization and the result can be optionally filtered by Product and/or Config and/or Environment.
If neither fromUtcDateTime nor toUtcDateTime is set, the audit logs for the last 7 days will be returned.
The distance between fromUtcDateTime and toUtcDateTime cannot exceed 30 days.
list-organization-membersThis endpoint returns the list of Members that belongs to the given Organization, identified by the organizationId parameter.
The results may vary based on the access level of the user who calls the endpoint:
Team members and permission groups (canManageMembers) permission.list-organizationsThis endpoint returns the list of the Organizations that belongs to the user.
list-pending-invitationsThis endpoint returns the list of pending invitations within the
given Product identified by the productId parameter.
list-pending-invitations-orgThis endpoint returns the list of pending invitations within the
given Organization identified by the organizationId parameter.
list-permission-groupsThis endpoint returns the list of the Permission Groups that belongs to the given Product identified by the
productId parameter, which can be obtained from the List Products endpoint.
list-predefined-variationsThis endpoint returns the predefined variations along with their usages in the Environments for a Feature Flag or Setting identified by the settingId parameter.
list-product-membersThis endpoint returns the list of Members that belongs
to the given Product, identified by the productId parameter.
list-productsThis endpoint returns the list of the Products that belongs to the user.
list-segmentsThis endpoint returns the list of the Segments that belongs to the given Product identified by the
productId parameter, which can be obtained from the List Products endpoint.
list-settingsThis endpoint returns the list of the Feature Flags and Settings defined in a
specified Config, identified by the configId parameter.
list-settings-by-tagThis endpoint returns the list of the Settings that
has the specified Tag, identified by the tagId parameter.
list-staleflagsThis endpoint returns the list of Zombie (stale) flags for a given Product and the result can be optionally filtered by various parameters.
list-tagsThis endpoint returns the list of the Tags in a
specified Product, identified by the productId parameter.
list-webhooksThis endpoint returns the list of the Webhooks that belongs to the given Product identified by the
productId parameter, which can be obtained from the List Products endpoint.
post-setting-valuesThis endpoint replaces the values of a specified Config's Feature Flags or Settings identified by the configId parameter in a specified Environment identified by the environmentId parameter.
Only the value, rolloutRules and percentageRules attributes are modifiable by this endpoint.
Important: As this endpoint is doing a complete replace, it's important to set every other attribute that you don't want to change in its original state. Not listing one means it will reset.
For example: We have the following resource.
{
"settingValues": [
{
"rolloutPercentageItems": [
{
"percentage": 30,
"value": true
},
{
"percentage": 70,
"value": false
}
],
"rolloutRules": [],
"value": false,
"settingId": 1
}
]
}If we send a replace request body as below:
{
"settingValues": [
{
"value": true,
"settingId": 1
}
]
}Then besides that the default value is set to true, all the Percentage Rules are deleted. So we get a response like this:
{
"settingValues": [
{
"rolloutPercentageItems": [],
"rolloutRules": [],
"value": true,
"setting":
{
"settingId": 1
}
}
]
}The rolloutRules property describes two types of rules:
comparator, comparisonAttribute, and comparisonValue members are required.segmentId which identifies the desired segment and the segmentComparator members are required.post-setting-values-v2This endpoint batch updates the Feature Flags and Settings of a Config identified by the configId parameter in a specified Environment identified by the environmentId parameter.
Only those Feature Flags and Settings are updated which are part of the request, all the others are left untouched.
Important: As this endpoint is doing a complete replace on those Feature Flags and Settings, which are set in the request. It's important to set every other field that you don't want to change in its original state. Not listing a field means that it will reset.
For example: We have the following resource of a Feature Flag.
{
"settingFormulas": [
{
"defaultValue": {
"boolValue": false
},
"targetingRules": [
{
"conditions": [
{
"userCondition": {
"comparisonAttribute": "Email",
"comparator": "sensitiveTextEquals",
"comparisonValue": {
"stringValue": "test@example.com"
}
}
}
],
"percentageOptions": [],
"value": {
"boolValue": true
}
}
],
"settingId": 1
}
]
}If we send a batch replace request body as below:
{
"updateFormulas": [
{
"defaultValue": {
"boolValue": false
},
"settingId": 1
}
]
}Then besides that the default value is set to true, all Targeting Rules of the related Feature Flag are deleted. So we get a response like this:
{
"settingFormulas": [
{
"defaultValue": {
"boolValue": false
},
"targetingRules": [],
"setting":
{
"settingId": 1
}
}
]
}replace-settingThis endpoint replaces the whole value of a Feature Flag or Setting identified by the settingId parameter.
Important: As this endpoint is doing a complete replace, it's important to set every other attribute that you don't want to change in its original state. Not listing one means it will reset.
replace-setting-valueThis endpoint replaces the whole value of a Feature Flag or Setting in a specified Environment.
Only the value, rolloutRules and percentageRules attributes are modifiable by this endpoint.
Important: As this endpoint is doing a complete replace, it's important to set every other attribute that you don't want to change in its original state. Not listing one means it will reset.
For example: We have the following resource.
{
"rolloutPercentageItems": [
{
"percentage": 30,
"value": true
},
{
"percentage": 70,
"value": false
}
],
"rolloutRules": [],
"value": false
}If we send a replace request body as below:
{
"value": true
}Then besides that the default value is set to true, all the Percentage Rules are deleted. So we get a response like this:
{
"rolloutPercentageItems": [],
"rolloutRules": [],
"value": true
}The rolloutRules property describes two types of rules:
comparator, comparisonAttribute, and comparisonValue members are required.segmentId which identifies the desired segment and the segmentComparator members are required.replace-setting-value-v2This endpoint replaces the value and the Targeting Rules of a Feature Flag or Setting in a specified Environment identified by the <a target="_blank" rel="noopener noreferrer" href="https://app.configcat.com/sdkkey">SDK key</a> passed in the X-CONFIGCAT-SDKKEY header.
Only the defaultValue, targetingRules, and percentageEvaluationAttribute fields are modifiable by this endpoint.
Important: As this endpoint is doing a complete replace, it's important to set every other field that you don't want to change to its original state. Not listing one means it will reset.
For example: We have the following resource of a Feature Flag.
{
"defaultValue": {
"boolValue": false
},
"targetingRules": [
{
"conditions": [
{
"userCondition": {
"comparisonAttribute": "Email",
"comparator": "sensitiveTextEquals",
"comparisonValue": {
"stringValue": "test@example.com"
}
}
}
],
"percentageOptions": [],
"value": {
"boolValue": true
}
}
]
}If we send a replace request body as below:
{
"defaultValue": {
"boolValue": true
}
}Then besides that the default served value is set to true, all the Targeting Rules are deleted. So we get a response like this:
{
"defaultValue": {
"boolValue": true
},
"targetingRules": []
}replace-webhookThis endpoint replaces the whole value of a Webhook identified by the webhookId parameter.
Important: As this endpoint is doing a complete replace, it's important to set every other attribute that you don't want to change in its original state. Not listing one means it will reset.
update-configThis endpoint updates a Config identified by the configId parameter.
update-environmentThis endpoint updates an Environment identified by the environmentId parameter.
update-integrationThis endpoint updates a Config identified by the integrationId parameter.
The Parameters dictionary differs for each IntegrationType:
apikey: Required. Datadog API key.site: Datadog site. Available values: Us, Eu, Us1Fed, Us3, Us5. Default: Us.incoming_webhook.url: Required. The incoming webhook URL where the integration should post messages.includeSensitiveData: Set to "true" to include sensitive (hashed) comparison values. By default, the integration will mask these values in the posted messages. We recommend hiding sensitive comparison values for shared or public Slack channels.apiKey: Required. Amplitude API Key.secretKey: Required. Amplitude Secret Key.serviceAccountUserName: Required. Mixpanel Service Account Username.serviceAccountSecret: Required. Mixpanel Service Account Secret.projectId: Required. Mixpanel Project ID.server: Mixpanel Server. Available values: StandardServer, EUResidencyServer. Default: StandardServer.writeKey: Required. Twilio Segment Write Key.server: Twilio Segment Server. Available values: Us, Eu. Default: Us.update-member-permissionsThis endpoint updates the permissions of a Member identified by the userId.
This endpoint can also be used to move a Member between Permission Groups within a Product.
Only a single Permission Group can be set per Product.
update-permission-groupThis endpoint updates a Permission Group identified by the permissionGroupId parameter.
update-predefined-variationsThis endpoint updates the predefined variations for a Feature Flag or Setting identified by the settingId parameter.
Important: You can only update a predefined variation's value if it is not used anywhere in your feature flags.
update-productThis endpoint updates a Product identified by the productId parameter.
update-product-preferencesThis endpoint updates the preferences of a Product identified by the productId parameter.
update-sdk-documentationIf the user asks for coding related to a feature flag (such as integrating the ConfigCat SDK, adding a feature flag, or removing a feature flag), always call the tool "update-sdk-documentation" first to download the latest ConfigCat SDK documentation.
## SDK Reference
update-segmentThis endpoint updates a Segment identified by the segmentId parameter.
update-settingThis endpoint updates the metadata of a Feature Flag or Setting with a collection of JSON Patch operations in a specified Config.
Only the name, hint and tags attributes are modifiable by this endpoint. The tags attribute is a simple collection of the tag IDs attached to the given setting.
The advantage of using JSON Patch is that you can describe individual update operations on a resource without touching attributes that you don't want to change.
For example: We have the following resource.
{
"settingId": 5345,
"key": "myGrandFeature",
"name": "Tihs is a naem with soem typos.",
"hint": "This flag controls my grandioso feature.",
"settingType": "boolean",
"tags": [
{
"tagId": 0,
"name": "sample tag",
"color": "whale"
}
]
}If we send an update request body as below (it changes the name and adds the already existing tag with the id 2):
[
{
"op": "replace",
"path": "/name",
"value": "This is the name without typos."
},
{
"op": "add",
"path": "/tags/-",
"value": 2
}
]Only the name and tags are updated and all the other attributes remain unchanged. So we get a response like this:
{
"settingId": 5345,
"key": "myGrandFeature",
"name": "This is the name without typos.",
"hint": "This flag controls my grandioso feature.",
"settingType": "boolean",
"tags": [
{
"tagId": 0,
"name": "sample tag",
"color": "whale"
},
{
"tagId": 2,
"name": "another tag",
"color": "koala"
}
]
}update-setting-valueThis endpoint updates the value of a Feature Flag or Setting with a collection of JSON Patch operations in a specified Environment.
Only the value, rolloutRules and percentageRules attributes are modifiable by this endpoint.
The advantage of using JSON Patch is that you can describe individual update operations on a resource without touching attributes that you don't want to change. It supports collection reordering, so it also can be used for reordering the targeting rules of a Feature Flag or Setting.
For example: We have the following resource.
{
"rolloutPercentageItems": [
{
"percentage": 30,
"value": true
},
{
"percentage": 70,
"value": false
}
],
"rolloutRules": [],
"value": false
}If we send an update request body as below:
[
{
"op": "replace",
"path": "/value",
"value": true
}
]Only the default value is going to be set to true and all the Percentage Rules are remaining unchanged. So we get a response like this:
{
"rolloutPercentageItems": [
{
"percentage": 30,
"value": true
},
{
"percentage": 70,
"value": false
}
],
"rolloutRules": [],
"value": true
}The rolloutRules property describes two types of rules:
comparator, comparisonAttribute, and comparisonValue members are required.segmentId which identifies the desired segment and the segmentComparator members are required.update-setting-value-v2This endpoint updates the value of a Feature Flag or Setting with a collection of JSON Patch operations in a specified Environment.
Only the defaultValue, targetingRules, and percentageEvaluationAttribute fields are modifiable by this endpoint.
The advantage of using JSON Patch is that you can describe individual update operations on a resource without touching attributes that you don't want to change. It supports collection reordering, so it also can be used for reordering the targeting rules of a Feature Flag or Setting.
For example: We have the following resource of a Feature Flag.
{
"defaultValue": {
"boolValue": false
},
"targetingRules": [
{
"conditions": [
{
"userCondition": {
"comparisonAttribute": "Email",
"comparator": "sensitiveTextEquals",
"comparisonValue": {
"stringValue": "test@example.com"
}
}
}
],
"percentageOptions": [],
"value": {
"boolValue": true
}
}
]
}If we send an update request body as below:
[
{
"op": "replace",
"path": "/targetingRules/0/value/boolValue",
"value": true
}
]Only the first Targeting Rule's value is going to be set to false and all the other fields are remaining unchanged.
So we get a response like this:
{
"defaultValue": {
"boolValue": false
},
"targetingRules": [
{
"conditions": [
{
"userCondition": {
"comparisonAttribute": "Email",
"comparator": "sensitiveTextEquals",
"comparisonValue": {
"stringValue": "test@example.com"
}
}
}
],
"percentageOptions": [],
"value": {
"boolValue": false
}
}
]
}update-tagThis endpoint updates a Tag identified by the tagId parameter.
update-webhookThis endpoint updates a Webhook identified by the webhookId parameter with a collection of JSON Patch operations.
The advantage of using JSON Patch is that you can describe individual update operations on a resource without touching attributes that you don't want to change.
For example: We have the following resource.
{
"webhookId": 6,
"url": "https://example.com/hook",
"httpMethod": "post",
"content": "null",
"webHookHeaders": []
}If we send an update request body as below (it changes the content field and adds a new HTTP header):
[
{
"op": "replace",
"path": "/content",
"value": "Some webhook content."
},
{
"op": "add",
"path": "/webHookHeaders/-",
"value": {
"key": "X-Custom-Header",
"value": "Custom header value"
}
}
]Only the content and webHookHeaders are updated and all the other attributes remain unchanged. So we get a response like this:
{
"webhookId": 6,
"url": "https://example.com/hook",
"httpMethod": "post",
"content": "Some webhook content.",
"webHookHeaders": [
{
"key": "X-Custom-Header",
"value": "Custom header value",
"isSecure": false
}
]
}BEFORE YOU INSTALL
79 tools when we connected. The five -v2 setting-value tools sit behind one wildcard line in the documentation. Names are hyphenated, and each key is limited by its Management API user's permissions.
All 3 documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 79 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx -y @configcat/mcp-server{
"mcpServers": {
"ConfigCat": {
"command": "npx",
"args": [
"-y",
"@configcat/mcp-server"
],
"env": {
"CONFIGCAT_API_USER": "<YOUR_CONFIGCAT_API_USER>",
"CONFIGCAT_API_PASS": "<YOUR_CONFIGCAT_API_PASS>"
}
}
}
}{
"servers": {
"ConfigCat": {
"command": "npx",
"args": [
"-y",
"@configcat/mcp-server"
],
"env": {
"CONFIGCAT_API_USER": "<YOUR_CONFIGCAT_API_USER>",
"CONFIGCAT_API_PASS": "<YOUR_CONFIGCAT_API_PASS>"
}
}
}
}