hackle-mcp
OfficialThe Hackle MCP Server provides tools to interact with the Hackle platform for managing A/B tests, messaging campaigns, user analytics, and remote configurations.
A/B Test Experiments
List experiments with pagination and search, and retrieve detailed information by experiment ID.
Messaging
List and retrieve in-app messages and push messages with pagination and search functionality.
User Analytics
Active users: Query time-series data (daily, weekly, or monthly)
Retention: Query time-series retention data (daily, weekly, or monthly)
Stickiness: Query return visit frequency data (weekly or monthly)
Data Reports & Analytics Charts
List and retrieve data reports and their associated analytics chart IDs
List and retrieve analytics charts filtered by type (FUNNEL, DATA_INSIGHT, RETENTION, USER_PATH)
Remote Configuration
List remote configs filtered by status (ACTIVE or ARCHIVED)
Get remote config details by ID
Create new remote configs with configurable data types (STRING, JSON, NUMBER, BOOLEAN)
Update remote config content including default values and conditional targeting rules based on user properties, segments, cohorts, A/B tests, and feature flags
Update user identifier criteria and descriptions
Provides access to Hackle's A/B testing data through the Hackle Slack Community, where users can request API keys for the MCP Server
Click on "Deploy 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., "@hackle-mcp show me details for experiment ID 12345"
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.
Hackle MCP Server
⚠️ 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:
https://mcp.hackle.io/mcpEnter 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.
Related MCP server: MCP Boilerplate
Features
Tools
Experiment List Tool
Name:
experiment-listDescription: Fetches a paginated list of A/B test experiments with search functionality.
Parameters:
pageNumber: Page number (default: 1)pageSize: Number of items per page (default: 100)searchKeyword: Search keyword (optional)
Experiment Detail Tool
Name:
experiment-detailDescription: Retrieves detailed information for a specific A/B test experiment.
Parameters:
experimentId: Experiment ID
In-App Message List Tool
Name:
in-app-message-listDescription: Fetches a paginated list of in-app messages with search functionality.
Parameters:
pageNumber: Page number (default: 1)pageSize: Number of items per page (default: 100)searchKeyword: Search keyword (optional)
In-App Message Detail Tool
Name:
in-app-message-detailDescription: Retrieves detailed information for a specific in-app message.
Parameters:
inAppMessageId: In-app message ID
Push Message List Tool
Name:
push-message-listDescription: Fetches a paginated list of push messages with search functionality.
Parameters:
pageNumber: Page number (default: 1)pageSize: Number of items per page (default: 100)searchKeyword: Search keyword (optional)
Push Message Detail Tool
Name:
push-message-detailDescription: Retrieves detailed information for a specific push message.
Parameters:
pushMessageId: Push message ID
Active User Series Tool
Name:
active-user-seriesDescription: Retrieves time-series data of active users. Available in daily, weekly, and monthly units.
Parameters:
unit: Time unit (DAY, WEEK, MONTH) (default: DAY)date: Date (optional)
Retention Series Tool
Name:
retention-seriesDescription: Retrieves time-series data of user retention. Available in daily, weekly, and monthly units.
Parameters:
unit: Time unit (DAY, WEEK, MONTH) (default: DAY)date: Date (optional)
Stickiness Series Tool
Name:
stickiness-seriesDescription: Retrieves time-series data of user stickiness (return visit frequency). Available in weekly and monthly units.
Parameters:
unit: Time unit (WEEK, MONTH) (default: WEEK)date: Date (optional)
Data Report List Tool
Name:
data-report-listDescription: Retrieves all data report metadata.
Data Report Detail Tool
Name:
data-report-detailDescription: Retrieves single data report's detail. It will provide analytics chart id and type inside data report. It is recommended to use Analytics Chart Detail Tool to get further information of each chart.
Parameters:
dataReportId: Data report's id. This can be found in response of Data Report List Tool.
Analytics Chart List Tool
Name:
analytics-chart-listDescription: Retrieves data analytics chart's metadata list.
Parameters:
pageNumber: 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 Detail Tool
Name:
analytics-chart-detailDescription: Retrieves data analytics chart's detail. You can visualize the chart using this tool's result.
Parameters:
chartId: 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 List Tool
Name:
remote-config-listDescription: Retrieves remote config list.
Parameters:
pageNumber: 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 Detail Tool
Name:
remote-config-detailDescription: Retrieves remote config's detail.
Parameters:
remoteConfigId: Remote config's id. You can get this information by using Remote Config List Tool.
Remote Config Creation Tool
Name:
remote-config-createDescription: Creates an empty remote config. It is recommended to update an existing RC first if there is an associated RC with the one you want to create since the total number of RC is limited.
Parameters:
body: 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 Content Update Tool
Name:
remote-config-updateDescription: Updates remote config's content.
Parameters:
remoteConfigId: 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.targetconditions: Targeting rules. Users who The user he satisfies all conditions in this array will see this rule's remote config value.keytype: 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.
matchoperator: 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 User Identifier Criteria Update Tool
Name:
remote-config-update-user-identifier-criteriaDescription: Updates remote config's user identifier criteria. The change will be applied to both production and development environment.
Parameters:
remoteConfigId: 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 Description Update Tool
Name:
remote-config-update-descriptionDescription: Updates remote config's description. The change will be applied to both production and development environment.
Parameters:
remoteConfigId: Remote config's id.body: Request body.description: Remote config's description.
Installation
Add this entry to your claude_desktop_config.json:
On Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json
On Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"hackle-mcp": {
"command": "npx",
"args": ["-y", "@hackle-io/hackle-mcp@latest"],
"env": {
"API_KEY": "YOUR_API_KEY"
}
}
}
}Restart Claude if running
Getting Your API Key
To use the Hackle MCP Server, you will need an API key. To obtain your API key:
Contact the Hackle team directly through Hackle Slack Community
Request an API key for MCP Server access
The Hackle team will provide you with a unique API key
Important: Never share your API key or commit it to public repositories. Treat your API key as a sensitive credential.
License
MIT
Available Tools
19 toolsactive-user-seriesBInspect
Retrieves time-series data of active users. Available in daily, weekly, and monthly units.
Inputs: unit (required), date.
analytics-chart-detailCInspect
fetch analytics chart detail. You can visualize the chart using this tool's result.
Inputs: chartId (required), chartType (required).
analytics-chart-listCInspect
fetch data analytics chart list.
Inputs: chartType, pageNumber, pageSize, searchKeyword.
data-report-detailCInspect
fetch data report detail.
Inputs: dataReportId (required).
data-report-listCInspect
fetch data report list.
Inputs: no named parameters.
experiment-detailCInspect
Retrieves detailed information for a specific A/B test experiment.
Inputs: experimentId (required).
experiment-listCInspect
Fetches a paginated list of A/B test experiments with search functionality.
Inputs: pageNumber, pageSize, searchKeyword.
in-app-message-detailCInspect
Retrieves detailed information for a specific in-app message.
Inputs: inAppMessageId (required).
in-app-message-listCInspect
Fetches a paginated list of in-app messages with search functionality.
Inputs: pageNumber, pageSize, searchKeyword.
push-message-detailCInspect
Retrieves detailed information for a specific push message.
Inputs: pushMessageId (required).
push-message-listCInspect
Fetches a paginated list of push messages with search functionality.
Inputs: pageNumber, pageSize, searchKeyword.
remote-config-createCInspect
Creates an empty remote config. It is recommended to update an existing RC first if there is an associated RC with the one you want to create since the total number of RC is limited.
Inputs: body (required).
remote-config-detailCInspect
Fetch remote config detail.
Inputs: remoteConfigId (required).
remote-config-listCInspect
Fetch Remote Config list.
Inputs: pageNumber, pageSize, searchKeyword, status.
remote-config-updateCInspect
Updates remote config's content.
Inputs: body (required), remoteConfigId (required).
remote-config-update-descriptionCInspect
Updates remote config's description. The change will be applied to both production and development environment.
Inputs: body (required), remoteConfigId (required).
remote-config-update-user-identifier-criteriaCInspect
Updates remote config's user identifier criteria. The change will be applied to both production and development environment.
Inputs: body (required), remoteConfigId (required).
retention-seriesCInspect
Retrieves time-series data of user retention. Available in daily, weekly, and monthly units.
Inputs: unit (required), date.
stickiness-seriesCInspect
Retrieves time-series data of user stickiness (return visit frequency). Available in weekly and monthly units.
Inputs: unit (required), date.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 19 tools
Most tools have clear distinct purposes targeting specific resources like experiments, messages, remote configs, and analytics. However, there is some overlap between 'analytics-chart-detail' and 'data-report-detail' which could cause confusion as both fetch detail data for visualizations or reports, though they target different underlying data types.
Tool names follow a highly consistent pattern of 'resource-action' format using kebab-case throughout, such as 'experiment-list', 'remote-config-update', and 'active-user-series'. This predictability makes it easy for agents to understand and navigate the toolset.
With 19 tools, the count is slightly high but reasonable for an analytics and A/B testing platform covering multiple domains like experiments, messages, remote configs, and data reports. It might feel a bit heavy, but each tool appears to serve a specific function without obvious redundancy.
The toolset provides comprehensive CRUD and lifecycle coverage for its domains, including list and detail operations for experiments, messages, remote configs, and data reports, plus create and update tools for remote configs. The inclusion of time-series tools like 'active-user-series' and 'retention-series' adds analytical depth, leaving no obvious gaps for the server's purpose.
Maintenance
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Model Context Protocol server for Studex tools, notifications, and profile integrations
MCP server for Statsig API - interact with Statsig's feature flags, experiments, and analytics
Related MCP Servers
- AlicenseBqualityCmaintenanceA Model Context Protocol server that provides a scalable backend solution for efficient interaction with Medusa's data models through the JavaScript SDK.4870MIT
- AlicenseNot gradedqualityDmaintenanceA server that implements the Model Context Protocol, providing a standardized way to connect AI models to different data sources and tools.10 npm12MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides unified access to Google Analytics 4 and Google Search Console data through real-time analytics queries.2MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server for managing Bucketeer feature flags, providing tools for listing, creating, retrieving, updating, and archiving feature flags.51MIT