Remote MCP server for the Hackle Admin API: experiments, feature flags, remote config, messaging.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
[!WARNING]
β οΈ This local npm package is deprecated β use the remote MCP server
The Hackle MCP server is now available as a remote server, and this local npm package is deprecated. The remote server requires no npm or Node.js setup, updates automatically, works in the browser, and is where all new tools (such as messaging statistics and Kakao/Text message queries) ship.
This package will no longer receive updates or new tools. Existing installations keep working for now, but please migrate to the remote server.
π Migration guide: https://docs.hackle.io/external-link/model-context-protocol/migration
How to connect to the remote server
Add a custom connector in claude.ai (web) or Claude Desktop via Customization β Connectors β + Add Custom Connector, using the remote MCP server URL:
Enter your existing Hackle API key in the authentication screen β your API key remains unchanged.
Once connected, you can optionally remove the local server entry from your
claude_desktop_config.json.
A Model Context Protocol server for Hackle API providing tools and resources for querying A/B Test data.
experiment-listpageNumber: Page number (default: 1)pageSize: Number of items per page (default: 100)searchKeyword: Search keyword (optional)experiment-detailexperimentId: Experiment IDin-app-message-listpageNumber: Page number (default: 1)pageSize: Number of items per page (default: 100)searchKeyword: Search keyword (optional)in-app-message-detailinAppMessageId: In-app message IDpush-message-listpageNumber: Page number (default: 1)pageSize: Number of items per page (default: 100)searchKeyword: Search keyword (optional)push-message-detailpushMessageId: Push message IDactive-user-seriesunit: Time unit (DAY, WEEK, MONTH) (default: DAY)date: Date (optional)retention-seriesunit: Time unit (DAY, WEEK, MONTH) (default: DAY)date: Date (optional)stickiness-seriesunit: Time unit (WEEK, MONTH) (default: WEEK)date: Date (optional)data-report-listdata-report-detaildataReportId: Data report's id. This can be found in response of Data Report List Tool.analytics-chart-listpageNumber: Page number (default: 1) (optional)pageSize: Number of items per page (default: 100) (optional)searchKeyword: Search keyword (optional) (optional)chartType: Chart types that Hackle provides: FUNNEL, DATA_INSIGHT, RETENTION, and USER_PATH. (optional)analytics-chart-detailchartId: Analytics chart's id. It can be found in the response of Data Report Detail Tool or Analytics Chart List Tool.chartType: Analytics chart's type(FUNNEL, DATA_INSIGHT, RETENTION, USER_PATH). It can be found in the response of Data Report Detail Tool or Analytics Chart List Tool.remote-config-listpageNumber: Page number (default: 1)pageSize: Number of items per page (default: 100)searchKeyword: Search keyword (optional)status: Status of remote config: ACTIVE, ARCHIVED (default: 'ACTIVE')remote-config-detailremoteConfigId: Remote config's id. You can get this information by using Remote Config List Tool.remote-config-createbody: Request body.
key: Remote config's name.description: Remote config's description.dataType: Type of remote config's value: STRING, JSON, NUMBER, BOOLEAN.userIdentifierCriteria: User identifier criteria for targeting. You can use criteria provided by Hackle($deviceId, $userId) or your own criteria created at Hackle dashboard website. (default: '$deviceId')remote-config-updateremoteConfigId: Remote config's id.body: Request body.
dataType: Type of remote config's value: STRING, JSON, NUMBER, BOOLEAN. The request will not be accepted if dataType and remote config values does not match.remoteConfigDefaultValue: Default value of remote config. This value's type should match with dataType field.conditionalValues: Array of conditional remote config's value with user group targeting.
ruleName: Name of targeting condition rule.remoteConfigValue: Remote config's value. This value's type should match with dataType field.target
conditions: Targeting rules. Users who The user he satisfies all conditions in this array will see this rule's remote config value.
key
type: Condition's type: HACKLE_PROPERTY, USER_PROPERTY, AB_TEST, FEATURE_FLAG, COHORT, SEGMENT.name: Property's name if type is HACKLE_PROPERTY or USER_PROPERTY. Experiment key if type is AB_TEST. Feature flag key if type is FEATURE_FLAG. You can put any non-empty string if type is COHORT or SEGMENT.match
operator: Operators that will be used to match key and values of the condition.valueType: Type of targeting condition's value: NUMBER, STRING, BOOLEAN, VERSION.values: Values of targeting condition's key. Followings are some special cases: The values will be treated as names if you are using SEGMENT. Only strings 'A' and 'B' are allowed if type is AB_TEST. Only boolean values are accepted if type is FEATURE_FLAG. You should put cohort's id if type is COHORT.remote-config-update-user-identifier-criteriaremoteConfigId: Remote config's id.body: Request body.
userIdentifierCriteria: User identifier criteria for targeting. You can use criteria provided by Hackle($deviceId, $userId) or your own criteria created at Hackle dashboard website. (default: '$deviceId')remote-config-update-descriptionremoteConfigId: Remote config's id.body: Request body.
description: Remote config's description.Add this entry to your claude_desktop_config.json:
Restart Claude if running
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/hackle)<a href="https://allmcps.com/mcp/hackle"><img src="https://allmcps.com/api/badge/hackle?style=directory" alt="Hackle on AllMCPs" /></a>