@datafast/mcp-server
Allows Codeium's Windsurf IDE to query DataFast analytics through MCP tools.
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., "@@datafast/mcp-serverhow many visitors did I get this month?"
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.
@datafast/mcp-server
An MCP (Model Context Protocol) server that exposes DataFast analytics as tools for AI assistants like Claude, Cursor, and others.
Ask your AI assistant questions like:
"How many visitors did I get this week?"
"What are my top referrers this month?"
"Show me revenue by country for Q4"
"Which pages have the highest conversion rate?"
"What's my real-time visitor count?"
Requirements
Node.js 18.0.0 or later
A DataFast account with an API key
Related MCP server: Google Analytics MCP Server
Setup
1. Get your API key
Go to your DataFast dashboard → Settings → API Keys and create a new key.
2. Install
npm install @datafast/mcp-server3. Configure your AI client
Cursor
Add this to your .cursor/mcp.json:
{
"mcpServers": {
"datafast": {
"command": "npx",
"args": ["-y", "@datafast/mcp-server"],
"env": {
"DATAFAST_API_KEY": "df_your_api_key_here"
}
}
}
}Claude Desktop
Add this to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"datafast": {
"command": "npx",
"args": ["-y", "@datafast/mcp-server"],
"env": {
"DATAFAST_API_KEY": "df_your_api_key_here"
}
}
}
}Windsurf
Add this to your ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"datafast": {
"command": "npx",
"args": ["-y", "@datafast/mcp-server"],
"env": {
"DATAFAST_API_KEY": "df_your_api_key_here"
}
}
}
}Available Tools
Analytics
Tool | Description |
| High-level metrics: visitors, sessions, bounce rate, revenue, conversion rate |
| Time series data (hourly/daily/weekly/monthly) for trend analysis |
| Top pages by visitor count with revenue attribution |
| Top traffic referrers with revenue attribution |
| Visitors and revenue by country |
| Visitors and revenue by city |
| Visitors and revenue by region/state |
| Visitors and revenue by browser |
| Visitors and revenue by device type |
| Visitors and revenue by OS |
| UTM campaign performance data |
| Goal completion data |
| Visitors and revenue by hostname |
| Current real-time visitor count |
| Real-time visitor locations with recent events |
| Website metadata (domain, timezone, currency) |
Visitor Details
Tool | Description |
| Detailed visitor profile with identity, activity, and conversion predictions |
Tracking
Tool | Description |
| Track a custom goal completion |
| Track a payment event for revenue attribution |
| Link a visitor to a user in your system |
Data Management
Tool | Description |
| Delete goal events by date range, visitor, or goal name |
| Delete payment events by transaction ID, visitor, or date range |
Filtering
All analytics tools support powerful filtering:
UTM parameters:
utm_source,utm_medium,utm_campaign,utm_term,utm_contentTraffic sources:
ref,source,via,referrerContent:
page,entry_page,hostnameGeography:
country,region,cityTechnology:
browser,os,deviceDate range:
startAt,endAt(ISO 8601)Pagination:
limit,offsetTimezone:
timezone(IANA format)
Environment Variables
Variable | Required | Description |
| Yes | Your DataFast API key (starts with |
| No | API base URL (defaults to |
Development
# Install dependencies
npm install
# Build
npm run build
# Type check
npm run typecheck
# Run locally
DATAFAST_API_KEY=df_your_key node dist/index.jsTroubleshooting
"DATAFAST_API_KEY environment variable is required"
Ensure your AI client (Cursor, Claude Desktop, etc.) is configured to pass the DATAFAST_API_KEY in the env object. The key must start with df_.
"Invalid API key format"
DataFast API keys start with df_. Verify you copied the full key from the DataFast dashboard → Settings → API Keys.
MCP server not appearing in Cursor
Restart Cursor after adding the MCP config
Ensure the config file is at
.cursor/mcp.json(or the path your Cursor version expects)Check that
npxcan resolve@datafast/mcp-server(try runningnpx -y @datafast/mcp-serverin a terminal withDATAFAST_API_KEYset)
API errors
If you see DataFast API error (401), your API key may be invalid or expired. Generate a new key from the dashboard. For DataFast API error (403), check that your API key has the required permissions.
License
MIT
Available Tools
22 toolsdelete_goalsDelete Goal EventsA
Delete goal events. Filter by date range, visitor ID, or goal name. At least one filter must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter by goal name | |
| endAt | No | End date in ISO 8601 format | |
| startAt | No | Start date in ISO 8601 format | |
| datafast_visitor_id | No | Filter by visitor ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It mentions the filter constraint but fails to state that deletion is permanent, whether it can be undone, or any side effects. For a destructive tool, this 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?
Two concise sentences front-load the action and immediately provide the critical usage constraint. No wasted words.
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?
The description covers the basic operation and filter requirement, but with no output schema and no annotations, it omits consequences (permanence) and return value expectations, leaving the tool only minimally complete.
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 coverage is 100%, and the description adds meaningful constraint semantics by summarizing the filter dimensions and explicitly requiring at least one filter—information not present in the schema's optional field definitions.
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 ('Delete') and the resource ('goal events'), distinguishing it from sibling tools like track_goal (creation) and get_goals (retrieval).
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?
It provides clear usage context by listing acceptable filters and the requirement that at least one filter must be provided. However, it does not explicitly mention when not to use this tool or contrast it with delete_payments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_paymentsDelete Payment EventsA
Delete payment events. Filter by transaction ID, visitor ID, or date range. At least one filter must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| endAt | No | End date in ISO 8601 format | |
| startAt | No | Start date in ISO 8601 format | |
| transaction_id | No | Delete by specific transaction ID | |
| datafast_visitor_id | No | Delete by visitor ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavioral traits. It only states 'Delete payment events' and the filter requirement, but does not mention consequences such as irreversibility, scope of deletion, or any side effects. The lack of warning about permanent deletion or impact leaves a significant transparency gap for a destructive 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 concise, consisting of two sentences that immediately front-load the core action ('Delete payment events') followed by essential filtering details. Every sentence contributes necessary information without fluff or repetition, making it highly efficient.
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?
The description provides enough information for basic invocation: what to delete and how to filter. However, given the lack of annotations and absence of an output schema, it leaves out important context such as whether deletion is permanent, what response to expect, or any error conditions. It is a minimally complete description but lacks depth for a destructive tool.
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 descriptions for each parameter, so the baseline is 3. The description adds value by grouping parameters into logical filters (transaction ID, visitor ID, date range) and explicitly stating that at least one must be provided, which is not encoded in the schema's required field. This extra constraint enhances understanding beyond the structured 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 clearly states 'Delete payment events', specifying the exact verb and resource. It distinguishes this tool from siblings by mentioning filtering options for transaction ID, visitor ID, and date range, which directly map to the schema. This clarity enables an agent to immediately understand what the tool does and how it differs from getter or tracking tools.
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 explicit usage context by stating the required filters and the rule 'At least one filter must be provided.' This gives clear direction on when to use the tool and what inputs are necessary, though it does not mention alternatives or exclusions. The guidance is sufficient for an agent to select this tool for deleting specific payment events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_browsersGet Visitors by BrowserB
Get visitor counts and revenue broken down by web browser (Chrome, Safari, Firefox, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
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 the core function but does not mention authentication, pagination, output format, aggregation behavior, or any limitations. The 'Get' verb implies read-only, but no safety or operational details are disclosed.
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, front-loaded sentence with no filler. It efficiently states the tool's purpose and examples, earning its place without 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?
Given the tool has 23 optional parameters, no annotations, and no output schema, this one-sentence description is inadequate. It does not describe the return value structure, how filters interact, or any default behavior, leaving the agent to rely heavily on the schema and make assumptions about the response.
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 baseline is 3. The description does not add any parameter-specific semantics beyond the schema; it only mentions the browser breakdown. The 'browser' filter is already documented in the schema, and the description does not clarify any additional parameter usage.
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 uses the specific verb 'Get' and clearly identifies the resource as 'visitor counts and revenue' broken down by 'web browser', with concrete examples (Chrome, Safari, Firefox). This distinguishes it from sibling tools like get_pages or get_referrers, which focus on different dimensions.
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 implies the tool is for browser-specific analysis, but it does not explicitly state when to prefer this tool over siblings, nor does it mention exclusions or alternatives. The context is clear but lacks direct guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_campaignsGet Campaign/UTM DataA
Get visitor counts and revenue broken down by UTM campaign parameters (source, medium, campaign, term, content). Great for measuring marketing campaign performance.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It correctly implies a read-only operation and states that it returns aggregated visitor counts and revenue. However, it does not clarify key behaviors such as whether non-UTM traffic is included, how aggregation is structured, or how pagination and date ranges are handled. The description adds context beyond the name but lacks depth.
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 with no fluff. The first sentence precisely states the tool's function, and the second sentence gives a practical use case. Both sentences earn their place, making it compact and informative.
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?
The tool has 23 parameters and no output schema or annotations, but the schema fully documents parameter usage. The description lacks information about response structure, default time range behavior, or aggregation specifics. It adequately explains the tool's purpose but is insufficiently complete for an agent to understand all runtime behaviors without further assumptions.
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%, and each parameter is documented with meaningful descriptions like 'Filter by UTM source' and pagination details. The tool description adds no extra meaning beyond the schema—it merely repeats the UTM parameter names. Given the high schema coverage, the baseline of 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 clearly states the tool's purpose: getting visitor counts and revenue broken down by UTM campaign parameters (source, medium, campaign, term, content). It specifically identifies the resource (UTM campaign data) and the action (get), and distinguishes it from sibling tools like get_referrers or get_pages, which focus on other dimensions.
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 clear usage context with 'Great for measuring marketing campaign performance,' which tells an agent when this tool is appropriate. It does not explicitly state when not to use it or name alternative tools, but because it is the only UTM-focused analytics tool among siblings, the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_citiesGet Visitors by CityA
Get visitor counts and revenue broken down by city.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It implies a read-only operation via the verb 'get' and clarifies output metrics ('visitor counts and revenue'), but it does not disclose pagination behavior, result grouping beyond 'by city,' or any rate/limit caveats. The description adds value by specifying the output, but gaps remain.
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, front-loaded sentence that conveys the core purpose without superfluous words. It efficiently communicates the resource and breakdown, 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?
For a tool with 23 parameters, no output schema, and no annotations, the description provides minimal context. It states the metrics returned but does not explain the response structure, that results are likely aggregated per city with count/revenue, or whether any filters are required. It is adequate for a simple read tool but leaves gaps for complex 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 input schema documents all 23 parameters with descriptions (100% coverage), so the baseline is 3. The description adds no parameter-level details, but it doesn't need to since the schema covers the filters, pagination, and date range fields adequately.
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 returns 'visitor counts and revenue broken down by city,' providing a specific verb, resource, and breakdown dimension. This distinguishes it from sibling tools like get_countries and get_region, which focus on different geographical breakdowns.
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 offers no guidance on when to use this tool versus alternatives. It does not mention that it complements or differs from similar get_* breakdown tools, nor does it provide any context about prerequisites or use cases beyond the definition itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_countriesGet Visitors by CountryA
Get visitor counts and revenue broken down by country. Returns country name, flag image URL, visitor count, and revenue.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses return fields (country name, flag URL, visitor count, revenue) but does not mention limitations, default behavior, or any caveats. For a simple read-only analytics tool, this is acceptable but not rich.
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, front-loaded sentence that efficiently conveys the action, resource, and return fields. No wasted words; every part adds value.
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?
The description is minimally viable for a 23-parameter analytics tool without an output schema. It explains the purpose and return fields, and the schema covers all parameters. However, it lacks usage guidance, default behaviors (e.g., limit, date range), and any caveats about data granularity or time period, making it incomplete for fully autonomous agent decisions.
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 all 23 parameters are already documented in the input schema. The description adds no additional parameter semantics beyond what the schema provides, such as default limit or special filter behavior.
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: 'Get visitor counts and revenue broken down by country.' It uses a specific verb (get) and resource (visitor counts/revenue by country), and the country focus distinguishes it from sibling analytics tools like get_cities and get_regions.
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 implicitly conveys when to use this tool: when country-level visitor and revenue data is needed. While it doesn't explicitly mention alternatives, the country-specific wording provides clear context for selection among similar analytics getters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_devicesGet Visitors by DeviceB
Get visitor counts and revenue broken down by device type (desktop, mobile, tablet).
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
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 only states that it retrieves counts and revenue by device, but it does not disclose behavior such as aggregation scope, pagination, authentication requirements, or the structure of the returned data. The tool has 23 filter parameters, yet the description gives no insight into how they affect the request or response, leaving 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 the key information: what is returned (visitor counts and revenue) and the grouping dimension (device type). There is zero redundancy or irrelevant detail, 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 (23 parameters, no output schema, no annotations), the description is far too minimal. It fails to explain the return structure, pagination behavior, available filters, or any usage nuances. A more complete description would mention at least that it returns grouped analytics and can be filtered by date and other dimensions, but it does not.
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 100% coverage, so all 23 parameters are individually described. The description adds no extra meaning beyond the schema—it merely restates the purpose of the 'device' parameter. Since the schema already handles parameter details, the baseline of 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 uses a specific verb 'Get' and clearly states the resource: 'visitor counts and revenue' broken down by device type. This explicitly distinguishes it from sibling analytics tools like get_browsers and get_operating_systems, making its purpose unambiguous.
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 implies usage through the phrase 'by device type', but it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or provide context on when this breakdown is appropriate. Since the title and description imply device-specific analytics, it earns a 3 for implied usage rather than a 2 for no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_goalsGet Goal CompletionsA
Get custom goal completion data including goal name, number of completions, and unique visitors who completed each goal.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states that the tool 'gets' data, without explaining request behavior, pagination, defaults, or response details. It does not mention how filters interact or any caveats, leaving significant ambiguity for a 23-parameter 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 one concise sentence, front-loaded with the primary action ('Get custom goal completion data'). Every word adds value, with no filler or redundancy.
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?
Although the description names the output fields, it does not provide broader context such as required filters, timezone defaults, or pagination behavior. Given the tool's 23 parameters and no output schema, a bit more detail about the response shape or usage notes would increase completeness, but the core purpose is clear.
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 schema covers 100% of the parameters with descriptions, so the baseline is 3. The tool description adds no additional meaning about the parameters themselves, merely naming the output fields. It does not need to compensate since the schema is thorough.
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 'custom goal completion data' with specific output fields (goal name, completions, unique visitors). This distinguishes it from sibling analytics tools like get_pages or get_browsers, which focus on other metrics.
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 implies this tool is for goal completion metrics, but it does not explicitly state when to use it over alternatives or mention any exclusions. No sibling tools or alternative contexts are referenced, so the guidance is mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hostnamesGet Visitors by HostnameA
Get visitor counts and revenue broken down by hostname (useful for multi-domain tracking).
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses that results are grouped by hostname and include counts and revenue, but it does not describe aggregation defaults, pagination, or read-only guarantees beyond the 'get' verb.
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?
A single sentence that is front-loaded with the action and resource, and the parenthetical adds practical value without waste.
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?
The description is adequate for basic invocation but not comprehensive. With 23 parameters, no annotations, and no output schema, it leaves out response shape, date-range behavior, and how filters affect the hostname-grouped results.
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 baseline is 3. The description adds that 'hostname' is the breakdown dimension, but does not clarify how the optional `hostname` filter parameter interacts with that breakdown or other defaults.
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 returns 'visitor counts and revenue broken down by hostname,' which names both the resource and the grouping dimension. This differentiates it from sibling analytics tools like get_pages or get_countries.
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 parenthetical 'useful for multi-domain tracking' gives clear context for when this hostname breakdown is appropriate. It does not explicitly name alternatives or exclusions, but alongside sibling tools the use case is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metadataGet Website MetadataA
Get metadata about the tracked website including domain, timezone, name, KPI settings, and currency configuration.
| 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. The term 'Get' implies a read-only operation, and the specific list of metadata fields gives some transparency about what is returned. However, it does not disclose potential caveats like data freshness, authentication requirements, or response structure beyond the listed fields.
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, concise sentence that front-loads the action ('Get metadata') and lists key fields. Every word earns its place, with no superfluous information.
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 simplicity (no parameters, no output schema), the description is largely complete. It identifies the resource and the type of information returned. It could be slightly more explicit about the return format (e.g., a single object), but the listed fields sufficiently convey the expected output.
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 zero parameters, and the baseline for 0 params is 4. The description adds value by listing the specific metadata categories that will be retrieved, which gives the agent a sense of the output shape without needing 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 tool's function: 'Get metadata about the tracked website' and enumerates specific metadata fields (domain, timezone, name, KPI settings, currency configuration). This distinguishes it from sibling analytics tools like get_realtime or get_overview, which focus on time-series or aggregated data.
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 implies usage context by naming the resource (website metadata) and fields, but it does not explicitly state when to use this tool over alternatives or provide exclusions. An agent could infer it from the distinct metadata focus, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operating_systemsGet Visitors by Operating SystemB
Get visitor counts and revenue broken down by operating system (Windows, macOS, iOS, Android, Linux, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the basic output (visitor counts and revenue) but omits important behaviors such as how filters interact, date range handling, pagination, or whether revenue is aggregated. This is a read operation, but minimal behavioral context is provided beyond the one-line summary.
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, compact sentence that is front-loaded with the action ('Get') and the resource ('visitor counts and revenue'). It is concise, readable, and contains no superfluous information.
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?
Despite the tool having 23 optional filter parameters and no output schema, the description provides only a minimal statement of purpose. It does not explain the available filtering dimensions, default time range, response structure, or any caveats. The description is too sparse to fully guide correct invocation in a complex 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 100%, so all 23 parameters have individual descriptions. The tool description adds no additional parameter semantics beyond the schema, but it does clarify the primary grouping dimension (OS). This matches the baseline of 3 for high schema coverage.
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 function: getting visitor counts and revenue grouped by operating system. It names specific OS examples, which removes ambiguity. This differentiates it from siblings that focus on other dimensions like browsers or devices.
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 the many sibling analytics tools (e.g., get_browsers, get_devices). The description implies it's for OS-level breakdowns but doesn't state exclusions or alternatives, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_overviewGet Analytics OverviewB
Get high-level analytics metrics including visitors, sessions, bounce rate, average session duration, revenue, revenue per visitor, and conversion rate. Returns aggregate data for the specified time period.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It discloses that the return is aggregate data for a time period, which is useful, but it does not mention filtering behavior, whether defaults apply, or limitations. For a read-only aggregate tool, this is adequate but not rich.
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 only two sentences and every word earns its place. It front-loads the key purpose, lists concrete metrics, and adds one clarifying sentence about aggregate data. No fluff or redundancy.
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?
The tool has 21 parameters, no output schema, and no annotations, so the description must compensate. It only states that it returns aggregate data, but does not explain how filters interact with the aggregate result, whether the response is a single object or rows, or what happens if no time period is given. This is insufficient for an agent to confidently invoke the tool.
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 each of the 21 parameters already has a descriptive label and format. The description adds minimal parameter-related value, only mentioning the time period generically, which is already covered by startAt/endAt in the schema. Baseline 3 applies since the 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 clearly states the tool's function: it gets high-level analytics metrics and lists them explicitly (visitors, sessions, bounce rate, etc.). It distinguishes itself from sibling tools like get_timeseries or get_pages by emphasizing 'high-level' and 'aggregate', though it does not explicitly name 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?
The description implies when to use it (for aggregate overview metrics), but it does not explicitly contrast it with more granular sibling tools or provide 'when not to use' guidance. The phrase 'specified time period' hints at a common use case, but there is no mention of alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pagesGet Top PagesA
Get the most visited pages on the website, ranked by visitor count. Includes hostname, path, visitor count, and revenue attribution per page.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
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 discloses the sorting behavior ('ranked by visitor count') and return fields, but does not mention default limit, pagination, filter interaction, or read-only nature. Some context is provided, but not comprehensive.
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 concise sentences, front-loaded with the primary action and key output fields. Every sentence contributes value with no redundancy.
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?
The description covers the core purpose and return structure, but given the tool's 23 optional parameters and lack of output schema, it would benefit from mentioning pagination defaults or how filters apply. The schema covers parameter details, so the gap is modest.
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 baseline is 3. The description does not add parameter-specific meaning beyond what the schema already provides; it only mentions result fields, not filter semantics.
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 function: 'Get the most visited pages on the website, ranked by visitor count.' It also lists the specific data returned (hostname, path, visitor count, revenue attribution), which distinguishes it from sibling tools like get_timeseries or get_overview.
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 implies the usage context (when you need top pages by traffic) but does not explicitly mention alternatives or when not to use this tool. It provides clear context but lacks formal exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_realtimeGet Real-time VisitorsA
Get the number of visitors currently active on the website in real time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only mentions 'real time' but does not clarify whether the count is unique visitors, sessions, or approximate, nor does it mention authentication or potential latency. The read-only nature is implied by 'Get' but not explicit.
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, front-loaded sentence that directly states what the tool returns. Every word earns its place, with no unnecessary detail or repetition, making it optimally concise.
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 simplicity (no parameters, no annotations, no output schema), the description sufficiently explains the return value ('number of visitors currently active'). It lacks explicit caveats like data freshness or aggregation, but for a straightforward count query, it is reasonably complete. A slight gap is the absence of any note on whether the count is global or page-specific, but the phrase 'on the website' implies site-wide.
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 tool has zero parameters, and the input schema is empty. According to the rubric, 0 params yields a baseline of 4, and there is no parameter meaning to explain. The description appropriately focuses on the output rather than inputs.
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 a specific verb ('Get') and a precise resource ('the number of visitors currently active on the website in real time'), which clearly defines the tool's purpose. It also distinguishes itself from the sibling tool 'get_realtime_map' by focusing on the count rather than a map visualization.
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 implies the tool is for retrieving current active visitor counts but gives no explicit guidance on when to use it versus alternatives like 'get_realtime_map' or 'get_overview'. There are no stated exclusions or preferred contexts, so the usage guidance remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_realtime_mapGet Real-time Visitor MapA
Get real-time visitor data with geographic coordinates for map visualization. Includes recent events, recent payments, and conversion predictions.
| 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 must disclose behavior. It does mention included data types (events, payments, conversion predictions) but omits important behavioral details such as the time window for 'recent', whether coordinates are precise or anonymized, and if any rate limits or permissions apply. The read-only nature is implied by 'get' but not stated.
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 with no filler. The first sentence clearly identifies the tool's purpose, and the second adds useful context about included data. It is appropriately sized.
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?
With no output schema and no parameters, the description is the sole guide to expected data. It gives a high-level overview of return contents but lacks structural details (e.g., coordinate format, field names, response envelope). Given the simple no-parameter nature, it is adequate but could be more informative.
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 tool has zero parameters, and the schema covers 100% of the (empty) parameter set. Consequently, the description doesn't need to add parameter details, and the baseline of 4 applies.
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?
Clearly states the tool retrieves real-time visitor data with geographic coordinates specifically for map visualization, listing additional context (recent events, payments, predictions). This distinguishes it from sibling tools like get_realtime (which lacks geographic focus) and get_countries/get_cities (which are likely aggregated rather than real-time).
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?
Description implies usage for real-time location-based map views but doesn't explicitly mention when not to use it or alternatives. It doesn't say 'for non-geographic real-time data use get_realtime' or similar, so guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_referrersGet Top ReferrersA
Get the top traffic referrers (sources linking to the website). Includes referrer URL, visitor count, and revenue attributed to each referrer.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It explains that the tool returns top referrers with visitor count and revenue, which gives some insight into the output. However, it does not mention sorting behavior, pagination, or any read-only guarantees, though the verb 'get' implies a safe 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 compact and front-loaded with the main action ('Get the top traffic referrers') in the first few words. The second sentence elaborates on the output fields, adding value without unnecessary verbosity. Two sentences are sufficient for this tool.
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?
There is no output schema, so the description partially compensates by listing the expected fields (referrer URL, visitor count, revenue). However, it does not clarify how filters interact, what 'top' means (e.g., sorting default), or whether a date range is required. For a tool with 23 optional parameters, this leaves some gaps.
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?
All 23 parameters have descriptions in the schema (100% coverage), so the schema already documents each filter. The tool description adds context by clarifying that the result includes metrics like visitor count and revenue, but it does not explain any parameter-specific behavior beyond what is in the 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 clearly states the tool's function: 'Get the top traffic referrers (sources linking to the website).' It also specifies the key output fields (referrer URL, visitor count, revenue), which distinguishes it from related analytics tools like get_pages or get_browsers.
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 does not provide any explicit guidance on when to use this tool versus alternatives. It only describes what it does, leaving the agent to infer that it is appropriate for referrer traffic analysis based on the name and title. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_regionsGet Visitors by RegionC
Get visitor counts and revenue broken down by region/state.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It only mentions returned metrics (visitor counts/revenue) but fails to disclose ordering, pagination, default time range, revenue assumptions, or whether the operation is read-only (though 'get' implies).
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 front-loaded sentence with no filler. While concise, it omits practical context that could be included without bloat (e.g., default time frame), so it's efficient but not especially rich.
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?
With 23 optional parameters, no output schema, and no annotations, the one-line description is insufficient. It doesn't describe the response format, default behavior, or how filters interplay, making it hard to use correctly without external knowledge.
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 covers 100% of 23 parameters with individual descriptions. The description adds no extra parameter meaning except the general 'region/state' context, which loosely aligns with the 'region' parameter; it does not clarify how 'state' maps to schema fields.
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 'Get visitor counts and revenue broken down by region/state' with a specific verb and resource. It differentiates from sibling tools like get_countries/get_cities through the 'region/state' dimension, though it does not explicitly name 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 usage guidance is provided. There is no mention of when to choose get_regions over related geo-tools such as get_countries or get_cities, nor any exclusion criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_timeseriesGet Timeseries DataB
Get time series analytics data with configurable intervals (hour, day, week, month). Returns visitors, sessions, revenue, and conversion rate over time. Great for trend analysis and charts.
| Name | Required | Description | Default |
|---|---|---|---|
| os | No | Filter by operating system | |
| ref | No | Filter by ref parameter | |
| via | No | Filter by via parameter | |
| city | No | Filter by city | |
| page | No | Filter by page path | |
| endAt | No | End date in ISO 8601 format (e.g. 2025-01-31T23:59:59Z) | |
| limit | No | Number of results to return (1-1000, default: 100) | |
| device | No | Filter by device type (desktop, mobile, tablet) | |
| fields | Yes | Comma-separated fields to include: visitors, sessions, revenue, conversion_rate | |
| offset | No | Number of results to skip (default: 0) | |
| region | No | Filter by region | |
| source | No | Filter by source parameter | |
| browser | No | Filter by browser (e.g. Chrome, Safari) | |
| country | No | Filter by country code (e.g. US, GB) | |
| startAt | No | Start date in ISO 8601 format (e.g. 2025-01-01T00:00:00Z) | |
| hostname | No | Filter by hostname | |
| interval | Yes | Time interval for data points | |
| referrer | No | Filter by referrer URL | |
| timezone | No | IANA timezone (e.g. America/New_York). Defaults to website timezone | |
| utm_term | No | Filter by UTM term | |
| entry_page | No | Filter by entry page path | |
| utm_medium | No | Filter by UTM medium | |
| utm_source | No | Filter by UTM source | |
| utm_content | No | Filter by UTM content | |
| utm_campaign | No | Filter by UTM campaign |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure. It does state the returned metrics and that data is over time with configurable intervals, which is helpful. However, it omits important behaviors such as default intervals, pagination, filtering behavior, and how time periods are aggregated. This leaves significant gaps for a complex tool, so a score of 3.
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 three sentences long, front-loaded with the action and outcome, and includes a brief use-case. Every sentence provides useful information; no unnecessary repetition. Score 5.
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 has 25 parameters and no output schema, the description is too brief to fully contextualize the tool's behavior. It doesn't explain the response format, grouping, pagination limits, or default timezone. While the schema covers parameters, the description doesn't guide an agent on how to construct a valid call or interpret results, so it is incomplete for this complexity. Score 2.
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 provides descriptions for all 25 parameters (100% coverage), so the baseline is 3. The description adds minimal extra meaning—it lists the possible fields and intervals, which already appear in the schema. It does not clarify the impact of filters or parameter combinations, so no bonus beyond baseline.
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 fetches time series analytics data with configurable intervals and lists the returned metrics (visitors, sessions, revenue, conversion rate). It uses a specific verb and resource, though it does not explicitly differentiate from sibling analytics tools, earning a 4 rather than 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 implies usage for trend analysis and charts ('Great for trend analysis and charts'), but does not provide explicit guidance on when to use this tool versus alternatives like get_overview or get_realtime. No exclusions or alternatives are mentioned, so a score of 3.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_visitorGet Visitor DetailsA
Get detailed information about a specific visitor including their identity (country, browser, device), activity (visit count, page views, goals completed), and conversion predictions.
| Name | Required | Description | Default |
|---|---|---|---|
| visitorId | Yes | The DataFast visitor ID |
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 discloses what information the tool returns (identity, activity, conversion predictions), which is useful, but it does not mention side effects (though 'Get' implies read-only), authentication needs, error behavior for missing visitor, or rate limits. Partial 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 a single, well-structured sentence that packs all relevant information without superfluous words. It is front-loaded with the core purpose and lists the key data categories efficiently.
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 simple tool with one parameter and no output schema, the description adequately covers the purpose and the return content categories. It lacks edge-case details like error handling or data freshness, but these are less critical given the low complexity, making it nearly complete.
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 visitorId parameter described as 'The DataFast visitor ID'. The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate; it does not clarify format, constraints, or usage nuances.
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 'Get' and the resource 'specific visitor', and enumerates the exact categories of information returned (identity, activity, conversion predictions). This distinguishes it from sibling tools like get_overview or get_pages which operate on aggregate or different resources.
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 implies usage when you need details on a specific visitor by mentioning 'specific visitor' and requiring a visitorId parameter. However, it gives no explicit when-to-use vs alternatives, no exclusions, and no guidance on when not to use this tool, leaving usage context mostly inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
identify_visitorIdentify VisitorB
Link a DataFast visitor to a user in your system. Associates the visitor ID with a user ID and optional metadata for enriched analytics.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Your system's user ID (max 255 chars) | |
| datafast_visitor_id | Yes | The DataFast visitor ID to identify |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only mentions the action 'Link/Associates' without addressing idempotency, overwrite behavior, permissions, or response. The phrase 'optional metadata' contradicts the schema (which has no such parameter), adding confusion rather than 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 concise at two sentences and front-loaded with the core purpose. However, the reference to 'optional metadata' is redundant or inaccurate relative to the schema, slightly reducing efficiency.
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 simplicity (2 params, full schema coverage, no output schema), the description provides adequate purpose and parameter info. However, it lacks behavioral details such as response format or side effects, and the metadata discrepancy undermines completeness for an agent needing 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 coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema; it mentions 'optional metadata' not present in the schema, which could mislead. However, it does reinforce the association intent for 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 tool's function with a specific verb 'Link' and resource 'DataFast visitor to a user'. It distinguishes itself from siblings like get_visitor and track_goal by indicating an association operation rather than retrieval or event tracking.
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 implies usage by explaining the action, but it does not explicitly state when to use this tool vs alternatives, nor does it mention exclusions or prerequisites. For a linking operation, context is reasonably clear but guidance on alternative tools (e.g., get_visitor) is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_goalTrack Goal CompletionB
Track a custom goal completion for a specific visitor. Goal names must be lowercase, alphanumeric with underscores/hyphens, max 64 characters.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Goal name (lowercase, alphanumeric, underscores, hyphens, max 64 chars) | |
| metadata | No | Optional metadata object with custom properties | |
| visitorId | Yes | The DataFast visitor ID | |
| description | No | Optional goal description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral disclosure burden. It only repeats the goal name validation rule already in the schema, but does not disclose side effects, idempotency, persistence, response format, or any prerequisites. This is a write operation with no behavioral context beyond the obvious 'track' 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?
Two sentences with no extraneous content. The first sentence front-loads the purpose, and the second adds a critical validation constraint. Each sentence earns its place, and the description is appropriately sized for the tool's simplicity.
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?
With no output schema, no annotations, and a nested object parameter, the description is incomplete. It does not explain return values, success/failure behavior, or how metadata is used. The tool has 4 parameters but the description only covers the goal name constraint, leaving the agent without enough context for reliable 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 100%, so the baseline is 3. The description does not add meaning beyond the schema; it merely restates the name constraint already present in the parameter description. No additional semantics for metadata or visitorId are provided.
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 specific action: 'Track a custom goal completion for a specific visitor.' This distinguishes it from siblings like get_goals or delete_goals, and includes the target resource (custom goal) and scope (specific visitor).
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 implies usage for recording goal completions but does not explicitly say when to use this tool versus track_payment or other event-tracking siblings. No alternatives or exclusions are mentioned, leaving the agent to infer from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_paymentTrack PaymentA
Track a payment event for revenue attribution. Links payments to visitors for conversion tracking.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Customer name | |
| No | Customer email | ||
| amount | Yes | Payment amount (>= 0) | |
| renewal | No | Whether this is a subscription renewal (default: false) | |
| currency | Yes | Currency code in uppercase (e.g. USD, EUR) | |
| refunded | No | Whether this payment was refunded (default: false) | |
| timestamp | No | Payment timestamp in ISO 8601 format (defaults to now) | |
| customer_id | No | Customer ID in your system | |
| is_free_trial | No | Whether this is a free trial (default: false, auto-set if amount is 0) | |
| transaction_id | Yes | Unique transaction identifier | |
| datafast_visitor_id | No | DataFast visitor ID for attribution |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It mentions linking payments to visitors, a key side effect, but does not explain persistence, idempotency, error handling, or whether it is a write operation with no return value.
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 with zero wasted words. It front-loads the purpose and adds a key behavioral link, making it appropriately concise.
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?
The purpose is clear and the schema documents all parameters, but with no output schema and sparse behavioral detail, the description is not fully complete for a tracking tool with 11 parameters. It covers the high-level purpose but lacks operational 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 100%, so the baseline is 3. The description does not add parameter-specific guidance beyond what the schema already provides.
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 tracks a payment event for revenue attribution and links payments to visitors for conversion tracking. This specific verb+resource combination distinguishes it from sibling tools like track_goal and identify_visitor.
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 gives clear context for use (payment events, revenue attribution, conversion tracking) but does not explicitly state when not to use it or mention alternatives. It lacks exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
22 tool updates
v1.0.0- First observed
delete_goals - First observed
delete_payments - First observed
get_browsers - First observed
get_campaigns - First observed
get_cities - First observed
get_countries - First observed
get_devices - First observed
get_goals - First observed
get_hostnames - First observed
get_metadata - First observed
get_operating_systems - First observed
get_overview - First observed
get_pages - First observed
get_realtime - First observed
get_realtime_map - First observed
get_referrers - First observed
get_regions - First observed
get_timeseries - First observed
get_visitor - First observed
identify_visitor - First observed
track_goal - First observed
track_payment
TDQS
Most tools are clearly distinct, especially the get_* breakdowns which explicitly name their dimension (country, city, browser, etc.). Minor confusion could arise between get_realtime and get_realtime_map, but their outputs differ enough. The large family of similar analytics tools requires careful reading, but names and descriptions mitigate ambiguity.
All tool names follow a consistent lowercase_with_underscores pattern using verb_noun: get_* for retrievals, track_* for event creation, delete_* for deletions, and identify_visitor for association. This is highly predictable and consistent across the entire set.
At 22 tools, the server is on the heavier side but the count is justified by the wide range of analytics dimensions (countries, cities, browsers, devices, etc.) plus tracking and deletion operations. It exceeds the ideal 15-tool range but does not feel bloated for an analytics platform.
The analytics surface is broad, covering many breakdowns and real-time data. However, there are notable gaps: no get_payments to read payment events despite having delete_payments, and no list/search for visitors beyond fetching a single visitor by ID. These missing read operations create dead ends in the tracking lifecycle.
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
Query your Betterlytics web analytics from AI agents: traffic, funnels, journeys, errors, uptime.
AI access to Hitsteps analytics, live visitors, uptime, goals, alerts, and chats.
Real-time web analytics for AI agents: query traffic, funnels, revenue, and manage your sites.
Connect Google Analytics to ChatGPT. Query GA4 data in plain English and get instant insights.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables AI assistants to interact with Umami Analytics for both Cloud and self-hosted instances. It provides tools to retrieve website statistics, visitor metrics, pageview trends, and real-time active user counts.51MIT
- AlicenseAqualityCmaintenanceEnables LLMs to interact with Google Analytics Admin and Data APIs to retrieve account summaries, property details, and custom metrics. It allows users to run core and real-time reports to analyze website performance and configuration via natural language.71Apache 2.0
- AlicenseAqualityAmaintenanceProvides AI assistants with read access to Clamp analytics data including pageviews, visitors, referrers, and custom events. Enables traffic analysis, conversion funnel evaluation, and metric alerts through natural language queries.33322MIT
- AlicenseAqualityCmaintenanceExposes Rybbit Analytics as MCP tools for querying site traffic, page views, visitor sessions, and live visitor counts through natural language.9MIT
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/Marc-Lou-Org/datafast-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server