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 "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., "@hackle-mcpshow 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.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | End date in YYYY-MM-DD format. | |
| unit | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the tool retrieves data (read operation) but doesn't mention permissions, rate limits, pagination, or response format. For a data retrieval tool with no annotation coverage, this leaves significant behavioral gaps. The description adds minimal value beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that directly state the tool's purpose and available units. Every word earns its place with zero waste. It's front-loaded with the core functionality. This is an excellent example of efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 2-parameter tool with no annotations and no output schema, the description provides basic purpose and parameter context but lacks details about response format, data structure, error conditions, or behavioral constraints. For a data retrieval tool, this leaves the agent with incomplete information about what to expect from the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'date' parameter has description). The description mentions 'daily, weekly, and monthly units' which maps to the 'unit' parameter's enum values, adding some semantic context beyond the schema. However, it doesn't explain the 'date' parameter's purpose or format beyond what's in the schema. With partial schema coverage, the description provides moderate compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieves time-series data of active users' with specific resource (active users data) and verb (retrieves). It distinguishes from some siblings like 'retention-series' and 'stickiness-series' by specifying the metric type, but doesn't explicitly differentiate from all analytics tools. The purpose is clear but sibling differentiation could be more explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by mentioning 'Available in daily, weekly, and monthly units,' which implies when to use different parameter values. However, it doesn't explicitly state when to choose this tool versus alternatives like 'retention-series' or 'stickiness-series,' nor does it mention prerequisites or exclusions. Usage is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics-chart-detailCInspect
fetch analytics chart detail. You can visualize the chart using this tool's result.
| Name | Required | Description | Default |
|---|---|---|---|
| chartId | Yes | Chart id | |
| chartType | Yes | Type of the chart. Will throw an error if given chartId's chart type is different from chartType. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions fetching details and visualization, but doesn't disclose critical behaviors: whether this is a read-only operation, potential errors (e.g., from mismatched chartType), rate limits, authentication needs, or what the result format looks like. The visualization hint is useful but insufficient for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that are front-loaded: the first states the core action, and the second adds a usage hint. There's no unnecessary repetition or fluff, though it could be more informative. It earns its place but leaves gaps in completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a tool that fetches details (likely involving data retrieval), the description is incomplete. It doesn't explain the return value format, error conditions, or how the visualization hint translates to practical use. For a 2-parameter tool with siblings, more context is needed to guide the agent effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (chartId and chartType) with descriptions and enum values. The description adds no additional meaning beyond what's in the schema, such as explaining how chartId is obtained or the implications of chartType matching. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'fetch analytics chart detail' which provides a basic verb+resource combination, but it's vague about what 'detail' includes (e.g., configuration, data, metadata). It doesn't clearly distinguish from siblings like 'analytics-chart-list' (which presumably lists charts) or 'data-report-detail' (which might have overlapping functionality). The second sentence about visualization adds some context but doesn't clarify the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. The description mentions visualization, which might imply use for rendering charts, but it doesn't specify prerequisites (e.g., needing a valid chartId) or exclusions (e.g., not for creating charts). Without comparison to siblings like 'analytics-chart-list' or 'data-report-detail', the agent lacks clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics-chart-listCInspect
fetch data analytics chart list.
| Name | Required | Description | Default |
|---|---|---|---|
| chartType | No | ||
| pageNumber | No | ||
| pageSize | No | ||
| searchKeyword | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'fetch' implies a read operation, but the description doesn't mention authentication needs, rate limits, pagination behavior (despite pageNumber/pageSize parameters), or what the return format looks like. For a list tool with pagination parameters, this lack of behavioral context is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and resource. However, its brevity contributes to underspecification rather than optimal clarity, as it omits necessary details for a tool with multiple parameters and sibling tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters with 0% schema coverage, no output schema, and no annotations), the description is incomplete. It doesn't address parameter meanings, return values, behavioral constraints, or differentiation from siblings. For a list tool with filtering and pagination capabilities, this minimal description leaves too many gaps for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'chartType' enums represent, how 'searchKeyword' filters results, or the purpose of pagination parameters. With 4 parameters entirely undocumented in both schema and description, the agent lacks essential semantic context for effective tool invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fetch data analytics chart list' states the verb ('fetch') and resource ('data analytics chart list'), making the purpose clear at a basic level. However, it doesn't distinguish this tool from similar siblings like 'analytics-chart-detail' or 'data-report-list', leaving ambiguity about scope. The description is functional but lacks specificity about what kind of chart list this retrieves.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'analytics-chart-detail' (likely for single charts) and 'data-report-list' (potentially overlapping functionality), there's no indication of context, prerequisites, or exclusions. The agent must infer usage from the name alone, which is insufficient for reliable selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data-report-detailCInspect
fetch data report detail.
| Name | Required | Description | Default |
|---|---|---|---|
| dataReportId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden but offers minimal behavioral insight. It doesn't disclose if this is a read-only operation, requires authentication, has rate limits, or what the output format might be (e.g., JSON structure, error handling). The description is too sparse to inform agent behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence, but this brevity borders on under-specification rather than efficiency. It's front-loaded with the core action, yet lacks necessary details, making it somewhat ineffective despite its compact form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a fetch operation with one parameter), no annotations, no output schema, and 0% schema coverage, the description is incomplete. It doesn't cover what 'detail' includes, error cases, or usage context, leaving significant gaps for an AI agent to operate effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema, which has 0% description coverage. With one required parameter ('dataReportId'), the description doesn't explain what this ID is, how to obtain it (e.g., from 'data-report-list'), or its format (e.g., numeric ID as indicated by schema). This fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fetch data report detail' states a verb ('fetch') and resource ('data report detail'), but is vague about what 'detail' entails compared to siblings like 'data-report-list'. It doesn't specify if this returns metadata, content, or analytics, leaving the purpose ambiguous despite naming the target resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'data-report-list' and various analytics tools, the description lacks context on prerequisites (e.g., needing a report ID from 'data-report-list') or distinctions (e.g., this fetches a single report vs. listing multiple).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data-report-listCInspect
fetch data report list.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states 'fetch data report list,' which implies a read-only operation but does not specify any behavioral traits such as authentication requirements, rate limits, pagination, error handling, or what the list contains. This leaves critical operational details undefined, making it inadequate for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence 'fetch data report list.' It is front-loaded and wastes no words, making it efficient in terms of length. However, this conciseness comes at the cost of clarity and completeness, but as per the scoring criteria, it earns full points for being appropriately sized and structured without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns a list of data reports. It does not explain the return format, scope, or any behavioral aspects, leaving significant gaps in understanding. While the zero-parameter schema reduces complexity, the description fails to provide sufficient context for effective use, especially compared to more detailed sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description does not add parameter details, which is appropriate since there are no parameters to describe. This aligns with the baseline expectation for zero-parameter tools, where the description need not compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'fetch data report list' is a tautology that essentially restates the tool name 'data-report-list' with minimal additional meaning. It uses a generic verb 'fetch' without specifying what constitutes a 'data report' or the scope of the list. While it indicates a retrieval action, it lacks the specificity needed to distinguish this tool from sibling list tools like 'analytics-chart-list' or 'experiment-list'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, context for usage, or comparisons to sibling tools such as 'data-report-detail' for individual reports or other list tools. Without such information, an AI agent must infer usage from the name alone, which is insufficient for effective tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
experiment-detailCInspect
Retrieves detailed information for a specific A/B test experiment.
| Name | Required | Description | Default |
|---|---|---|---|
| experimentId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves information (implying a read-only operation) but doesn't cover critical aspects like authentication requirements, rate limits, error handling, or response format. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste. It's front-loaded with the core purpose and efficiently conveys the essential information without unnecessary elaboration, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't address behavioral traits, response details, or usage context, leaving the agent with insufficient information to invoke the tool effectively beyond its basic purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds minimal semantic context by implying the parameter is an 'experimentId' for a 'specific A/B test experiment'. However, it doesn't explain the parameter's format (e.g., numeric ID), constraints, or examples. With one parameter and low schema coverage, the description provides some value but doesn't fully compensate for the lack of schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('retrieves') and resource ('detailed information for a specific A/B test experiment'), making the purpose unambiguous. It distinguishes from sibling tools like 'experiment-list' by specifying retrieval of details for a single experiment rather than listing multiple. However, it doesn't explicitly contrast with other detail tools (e.g., 'analytics-chart-detail'), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an experiment ID), exclusions, or comparisons to sibling tools like 'experiment-list' for listing experiments or other detail tools. Usage is implied by the name and purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
experiment-listCInspect
Fetches a paginated list of A/B test experiments with search functionality.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNumber | No | ||
| pageSize | No | ||
| searchKeyword | No | name, description, or experimentKey of an experiment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions pagination and search functionality, which is helpful, but fails to address critical aspects like authentication needs, rate limits, error handling, or the format of returned data. This leaves significant gaps for an agent to understand how to interact with the tool effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads key information (fetches, paginated list, search) without any wasted words. It's appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema, no annotations), the description is incomplete. It lacks details on return values, error cases, and full parameter documentation, making it insufficient for an agent to use the tool confidently without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low at 33%, with only 'searchKeyword' documented. The description adds value by implying pagination and search, but it doesn't detail parameter semantics beyond what's in the schema, such as default behaviors or constraints. This meets the baseline for partial coverage but doesn't fully compensate for the gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('fetches'), resource ('paginated list of A/B test experiments'), and functionality ('with search functionality'), making the purpose evident. However, it doesn't explicitly distinguish this tool from sibling tools like 'experiment-detail' or other list tools, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as 'experiment-detail' for single experiments or other list tools for different resources. It lacks context on prerequisites or exclusions, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
in-app-message-detailCInspect
Retrieves detailed information for a specific in-app message.
| Name | Required | Description | Default |
|---|---|---|---|
| inAppMessageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states this is a retrieval operation, implying it's read-only and non-destructive, but doesn't cover aspects like authentication requirements, rate limits, error conditions, or the format/scope of the returned details. This leaves significant gaps for a tool that presumably fetches sensitive message data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core action ('retrieves detailed information'), making it easy to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of retrieving message details (likely involving permissions or data structures), no annotations, and no output schema, the description is insufficient. It doesn't explain what 'detailed information' includes, potential side effects, or error handling, leaving the agent under-informed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description implies the tool requires an 'inAppMessageId' to identify a specific message, which aligns with the single required parameter in the schema. However, with 0% schema description coverage, the description doesn't add meaningful details beyond this basic inference—it doesn't explain what an inAppMessageId is, its format, or where to obtain it. The baseline is 3 due to the single parameter being straightforward.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('retrieves') and resource ('detailed information for a specific in-app message'), making the purpose unambiguous. However, it doesn't explicitly differentiate from its sibling 'in-app-message-list', which likely lists multiple messages rather than retrieving details for a specific one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an inAppMessageId), exclusions, or comparisons to siblings like 'in-app-message-list' for listing messages or other *-detail tools for different resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
in-app-message-listCInspect
Fetches a paginated list of in-app messages with search functionality.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNumber | No | ||
| pageSize | No | ||
| searchKeyword | No | name, description, or campaignKey of an in-app message. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions pagination and search, which are helpful behavioral traits, but lacks critical details like authentication requirements, rate limits, error handling, or what the response format looks like. For a list tool with no annotations, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads key information ('fetches a paginated list of in-app messages with search functionality'). Every word earns its place, with no redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low schema description coverage (33%), the description is incomplete. It covers basic purpose but lacks details on behavior, response format, error cases, or usage context, which are essential for a tool with 3 parameters and search functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33% (only 'searchKeyword' has a description). The description adds value by implying pagination ('paginated list') and search functionality, which aligns with the parameters, but doesn't explain semantics beyond what's minimally inferred. With low schema coverage, it partially compensates but not fully, warranting a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('fetches') and resource ('paginated list of in-app messages'), and specifies 'with search functionality' which adds useful detail. However, it doesn't explicitly differentiate from sibling tools like 'in-app-message-detail' or 'push-message-list', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling list tools (e.g., 'analytics-chart-list', 'data-report-list', 'push-message-list') and detail tools, but no indication of context, prerequisites, or exclusions for this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push-message-detailCInspect
Retrieves detailed information for a specific push message.
| Name | Required | Description | Default |
|---|---|---|---|
| pushMessageId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states this is a retrieval operation, implying read-only behavior, but does not disclose other traits like error handling, authentication needs, rate limits, or response format. This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It does not cover behavioral aspects, parameter details, or return values, leaving the agent with insufficient information to use the tool effectively beyond its basic purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'specific push message' but does not explain the 'pushMessageId' parameter's meaning, format, or how to obtain it. This adds minimal value beyond the schema's structural definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Retrieves') and resource ('detailed information for a specific push message'), making the purpose unambiguous. However, it does not explicitly differentiate from sibling tools like 'push-message-list', which likely lists multiple messages rather than retrieving details for one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing a specific pushMessageId, or compare it to siblings like 'push-message-list' for broader queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push-message-listCInspect
Fetches a paginated list of push messages with search functionality.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNumber | No | ||
| pageSize | No | ||
| searchKeyword | No | name, description, or campaignKey of a push message. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions pagination and search, but lacks details on permissions, rate limits, error handling, or response format. For a read operation with no annotation coverage, this is insufficient to inform safe and effective use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place, with no redundancy or unnecessary elaboration, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema, no annotations), the description is incomplete. It doesn't cover behavioral aspects like pagination mechanics, search limitations, or return values, leaving gaps that could hinder correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), with only 'searchKeyword' documented. The description adds value by clarifying that search applies to 'name, description, or campaignKey', but doesn't explain 'pageNumber' or 'pageSize' beyond defaults. It partially compensates for the coverage gap but leaves key parameters under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('fetches') and resource ('paginated list of push messages'), and specifies the functionality ('with search functionality'). It distinguishes from siblings like 'push-message-detail' by indicating it's a list operation, though it doesn't explicitly contrast with other list tools (e.g., 'in-app-message-list').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose it over 'push-message-detail' for individual messages or other list tools, nor does it specify prerequisites or exclusions. Usage is implied only by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions that 'the total number of RC is limited,' which is useful context about resource constraints, but doesn't describe what 'creates' entails (e.g., permissions needed, whether it's idempotent, response format, or error conditions). This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and reasonably concise, but the second sentence about updating existing RCs feels somewhat tangential to the core purpose. It could be more front-loaded with essential information, though it avoids excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations, no output schema, and poor parameter documentation (0% schema coverage with no description compensation), the description is incomplete. It mentions a limitation but lacks details on behavior, parameters, or expected outcomes, making it inadequate for informed tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about parameters, while the input schema has 0% description coverage (only enum values for dataType are described). With 1 required parameter (body) containing nested properties, the description fails to add any meaning beyond what the bare schema provides, resulting in poor parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('creates an empty remote config') and identifies the resource ('remote config'), which provides a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'remote-config-update' beyond mentioning an alternative action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance by recommending to 'update an existing RC first if there is an associated RC' due to total number limitations, which implies context for when to consider alternatives. However, it doesn't explicitly state when to use this tool versus other remote-config tools or provide clear exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remote-config-detailCInspect
Fetch remote config detail.
| Name | Required | Description | Default |
|---|---|---|---|
| remoteConfigId | Yes | Remote config's id. You can get this information by using Remote Config List Tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Fetch' which implies a read-only operation, but doesn't clarify permissions, rate limits, error handling, or what 'detail' includes (e.g., full configuration, metadata). This leaves significant gaps for a tool that likely returns structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three words, front-loaded with the core action ('Fetch'), and wastes no space. Every word earns its place, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (a detail-fetching tool with no output schema and no annotations), the description is incomplete. It doesn't explain what 'detail' entails, potential response formats, or error cases, which are crucial for an agent to use the tool effectively in context with siblings like list and update tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'remoteConfigId' well-documented in the schema (including type, constraints, and a note to get it from 'remote-config-list'). The description adds no additional parameter information beyond the schema, so it meets the baseline for high coverage without compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch remote config detail' clearly states the action (fetch) and resource (remote config detail), but it's vague about what 'detail' encompasses compared to siblings like 'remote-config-list' or 'remote-config-update'. It distinguishes the basic operation but lacks specificity about the scope of information returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., needing a remoteConfigId from 'remote-config-list'), exclusions, or contextual cues, leaving the agent to infer usage from the parameter description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remote-config-listCInspect
Fetch Remote Config list.
| Name | Required | Description | Default |
|---|---|---|---|
| pageNumber | No | ||
| pageSize | No | ||
| searchKeyword | No | ||
| status | No | ACTIVE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like whether this is a read-only operation, pagination behavior (implied by parameters but not explained), rate limits, authentication needs, or what happens on errors. 'Fetch' implies reading, but no safety or performance context is given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single sentence 'Fetch Remote Config list.', which is front-loaded and wastes no words. Every part earns its place by stating the core action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters with 0% schema coverage, no annotations, no output schema, and sibling tools like 'remote-config-detail', the description is incomplete. It doesn't explain the tool's behavior, parameter usage, or output, leaving significant gaps for an AI agent to understand how to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate but adds no parameter information. It doesn't explain what 'pageNumber', 'pageSize', 'searchKeyword', or 'status' do, their formats, or how they affect the fetch. The description fails to provide meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fetch Remote Config list' clearly states the action (fetch) and resource (Remote Config list), but it's vague about scope and doesn't distinguish from siblings like 'remote-config-detail' or 'remote-config-create'. It lacks specificity about what kind of list this returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'remote-config-detail' for specific configs or 'remote-config-create' for creation. The description doesn't mention prerequisites, context, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remote-config-updateCInspect
Updates remote config's content.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| remoteConfigId | Yes | Remote config's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states 'Updates', implying a mutation, but doesn't disclose behavioral traits such as permissions required, whether changes are reversible, rate limits, or what the response looks like. This is inadequate for a mutation tool with complex parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with zero waste, making it appropriately sized and front-loaded. However, it's overly concise to the point of under-specification, slightly reducing effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (2 parameters with nested objects), no annotations, and no output schema, the description is incomplete. It fails to provide necessary context for safe and effective use, such as error handling or return values, making it insufficient for this tool's requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with detailed descriptions for nested parameters but not for top-level ones. The description adds no meaning beyond the schema, as it doesn't explain parameters like 'remoteConfigId' or 'body'. However, the schema provides some context, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Updates remote config's content' states the action (updates) and resource (remote config's content), but it's vague about what 'content' specifically means. It doesn't distinguish this tool from sibling tools like 'remote-config-update-description' or 'remote-config-update-user-identifier-criteria', leaving ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With siblings like 'remote-config-create' and 'remote-config-update-description', the description lacks any indication of prerequisites, context, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remote-config-update-descriptionCInspect
Updates remote config's description. The change will be applied to both production and development environment.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| remoteConfigId | Yes | Remote config's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the change applies to 'both production and development environment', which adds some context about scope, but lacks details on permissions, side effects, error handling, or response format. For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and concise with two sentences that directly state the action and scope. There's no wasted text, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 2 parameters, no output schema, and no annotations), the description is incomplete. It lacks details on behavioral traits, parameter usage, and output expectations, making it inadequate for safe and effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'remoteConfigId' has a description), and the description doesn't add meaning beyond the schema. It implies parameters for updating a description but doesn't explain 'body' or 'description' fields. With low coverage, the description fails to compensate, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Updates') and resource ('remote config's description'), making the purpose evident. However, it doesn't differentiate from sibling tools like 'remote-config-update' or 'remote-config-update-user-identifier-criteria', which would require more specificity about what exactly this tool updates versus those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, compare with siblings like 'remote-config-update' or 'remote-config-create', or specify scenarios where this tool is appropriate, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remote-config-update-user-identifier-criteriaCInspect
Updates remote config's user identifier criteria. The change will be applied to both production and development environment.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| remoteConfigId | Yes | Remote config's id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the update applies to both production and development environments, which is useful behavioral context. However, it lacks critical details like permission requirements, whether the change is reversible, rate limits, or error handling for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the action and scope. It's appropriately sized without unnecessary elaboration, though it could be slightly more structured by separating purpose from behavioral details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations, no output schema, and incomplete parameter documentation (50% coverage), the description is insufficient. It lacks details on return values, error conditions, side effects, and doesn't fully compensate for the missing structured information, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (one of two parameters has a description). The description adds no additional parameter semantics beyond what's in the schema. It doesn't explain the structure of 'body' or provide examples for 'userIdentifierCriteria', leaving gaps in understanding the two required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Updates') and resource ('remote config's user identifier criteria'), making the purpose understandable. It distinguishes from siblings like 'remote-config-update' by specifying the exact aspect being updated, though it doesn't explicitly contrast with all alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'remote-config-update' or 'remote-config-update-description'. The description mentions the change applies to both environments but doesn't specify prerequisites, constraints, or appropriate contexts for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retention-seriesCInspect
Retrieves time-series data of user retention. Available in daily, weekly, and monthly units.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | End date in YYYY-MM-DD format. | |
| unit | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'retrieves' data, implying a read-only operation, but doesn't address critical aspects like authentication requirements, rate limits, data freshness, or response format. For a data retrieval tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences that directly state the tool's purpose and parameter options. It's front-loaded with the core functionality. There's no wasted language, though it could be slightly more structured by explicitly listing parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (retrieving analytics data), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral traits, response format, error handling, or usage context relative to siblings. For a tool with two parameters and significant operational implications, this minimal description fails to provide adequate context for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (one of two parameters has a description). The description adds value by explaining the 'unit' parameter options ('daily, weekly, and monthly units'), which aligns with the enum in the schema. However, it doesn't clarify the 'date' parameter beyond what the schema provides ('End date in YYYY-MM-DD format'), nor does it explain the interaction between parameters (e.g., if 'date' is optional, what default is used). The baseline is 3 due to moderate schema coverage and some added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Retrieves time-series data of user retention.' It specifies the verb ('retrieves'), resource ('time-series data of user retention'), and available granularities ('daily, weekly, and monthly units'). However, it doesn't explicitly differentiate from sibling tools like 'active-user-series' or 'stickiness-series' that might also retrieve time-series data, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions available units but doesn't specify use cases, prerequisites, or exclusions. With sibling tools like 'analytics-chart-list' and 'data-report-list' that might offer similar data, the lack of comparative context leaves the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stickiness-seriesCInspect
Retrieves time-series data of user stickiness (return visit frequency). Available in weekly and monthly units.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | End date in YYYY-MM-DD format. | |
| unit | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool retrieves data, implying a read-only operation, but doesn't disclose behavioral traits such as authentication requirements, rate limits, data format, pagination, or error handling. For a data retrieval tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded and concise with two sentences that efficiently convey the tool's purpose and key parameter information. Every sentence earns its place by stating what the tool does and the available units, with no redundant or unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a time-series data tool with no annotations, no output schema, and incomplete parameter documentation (50% coverage), the description is insufficient. It lacks details on return values, data structure, error conditions, and usage context, making it incomplete for effective agent operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (one parameter described, one not). The description adds value by explaining that the data is available in weekly and monthly units, which clarifies the 'unit' parameter's enum values. However, it doesn't address the 'date' parameter's semantics or provide additional context beyond what the schema partially covers, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves time-series data of user stickiness (return visit frequency) with available weekly and monthly units. It specifies the verb 'retrieves' and resource 'time-series data of user stickiness', distinguishing it from siblings like active-user-series or retention-series by focusing on return visit frequency rather than active users or retention metrics. However, it doesn't explicitly contrast with all siblings, keeping it at 4 instead of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It mentions available units but doesn't specify use cases, prerequisites, or comparisons with sibling tools like retention-series or analytics-chart-detail. This leaves the agent without contextual direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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
A Model Context Protocol (MCP) server for Selise Blocks Cloud integration
Related MCP Servers
- AlicenseBqualityFmaintenanceA Model Context Protocol server that provides a scalable backend solution for efficient interaction with Medusa's data models through the JavaScript SDK.4868MIT
- AlicenseNot gradedqualityDmaintenanceA server that implements the Model Context Protocol, providing a standardized way to connect AI models to different data sources and tools.1511MIT
- AlicenseNot gradedqualityCmaintenanceA 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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/hackle-io/hackle-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server