umami-mcp
Provides full-coverage integration for the Umami Analytics API v2, allowing users to manage websites, query analytics statistics and metrics, send custom tracking events, generate reports, and perform administrative tasks for users and teams.
English | 한국어
umami-mcp
Model Context Protocol server for the current Umami Analytics v3.3 API. It supports self-hosted username/password authentication and Umami Cloud API keys, and exposes analytics, collection, administration, and newer v3 feature families such as boards, links, pixels, segments, session replay, shares, exports, performance, and revenue.
This version intentionally does not claim every private Umami route. Its tools track the documented API and the public v3.3.1 server contracts.
Requirements
Node.js 18 or newer
Umami v3.3-compatible self-hosted instance, or an Umami Cloud API key
Related MCP server: Umami MCP Server
Installation
npm install -g @mikusnuz/umami-mcpOr run it directly:
npx -y @mikusnuz/umami-mcpConfiguration
Self-hosted
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "@mikusnuz/umami-mcp"],
"env": {
"UMAMI_URL": "https://analytics.example.com",
"UMAMI_USERNAME": "admin",
"UMAMI_PASSWORD": "your-password"
}
}
}
}UMAMI_URL is the instance origin. A trailing /api is accepted, but is not
required.
Umami Cloud
{
"mcpServers": {
"umami": {
"command": "npx",
"args": ["-y", "@mikusnuz/umami-mcp"],
"env": {
"UMAMI_API_KEY": "your-cloud-api-key"
}
}
}
}Cloud management calls default to https://api.umami.is/v1; tool paths are
translated from self-hosted /api/... paths to Cloud /v1/... paths. Set
UMAMI_URL to https://api.umami.is/v1/us or
https://api.umami.is/v1/eu when an explicit Cloud region is required.
Environment variables
Variable | When required | Description |
| Self-hosted | Instance origin; optional for Cloud |
| Self-hosted | Login username |
| Self-hosted | Login password |
| Cloud | Bearer API key |
| Optional | Separate host for public collection/share/heartbeat/recorder routes |
For Cloud, the collector defaults to https://cloud.umami.is. For self-hosted
Umami it defaults to UMAMI_URL.
Authentication and public routes
Management and analytics tools send a bearer token. The client logs in to a self-hosted instance lazily and caches the returned JWT; Cloud uses the API key as the bearer credential.
The public collection routes do not require credentials:
send_event,send_identify,send_performancebatch_events(raw JSON array, up to 500 items)heartbeat,get_share,get_recorder_config
If self-hosted login reports that two-factor authentication is required, call
complete_two_factor_login with a current TOTP or backup code, then retry the
original tool. Setup and policy tools are also exposed for self-hosted Umami.
Umami Cloud does not expose /me/password, /users, or /users/* through an
API key. Those tools are for self-hosted instances.
Tool groups
Area | Representative tools |
Websites |
|
Analytics |
|
Event/session data | event values, fields, properties, values, session activity |
Collection | event/pageview, identify, performance, raw batch, link/pixel events |
Reports | saved-report CRUD and |
Boards | list, CRUD, clone, and team boards |
Links and pixels | list, CRUD, charts, and collection events |
Segments | segment/cohort list and CRUD |
Replay | recorder config, replay list/detail, saved replays, session replays |
Shares and export | public share resolution, managed website shares, update/delete, CSV ZIP export |
Revenue | stats, chart, metrics, and revenue sessions |
Users and teams | current admin-user and team membership/transfer routes |
2FA | login completion, enrollment, disable, and admin enforcement policies |
Realtime |
|
Use MCP tools/list for the complete, machine-readable list and schemas.
Important v3 contract details
A pageview is sent as
{ "type": "event" }with no eventname; the oldpageviewtype is no longer valid./api/batchreceives the event objects as a raw array, not{ "events": [...] }. The tool returns Umami'sprocessed,errors, and per-itemdetailsfields and marks partial failures as an MCP error result.Collector calls set a stable non-bot
User-Agentheader as required by Umami;send_eventand batch items may also supply the visitor'suserAgentand trusted server-sideipin the payload.Analytics URL filters and page metrics use
path; the oldurlmetric was removed. Host aggregation useshostname.Supported time units are
minute,hour,day,month, andyear.get_event_seriesandget_sessions_weeklyrequire an IANA timezone.list_reportsrequireswebsiteId; report execution sends{ websiteId, type, filters, parameters }.Team website membership is changed through
transfer_website; the removed team-website POST/DELETE routes are not exposed.
Development
npm install
npm testnpm test builds the TypeScript server, checks Cloud/self-hosted URL and auth
behavior, verifies raw public batch requests and the 2FA login flow, and
validates key MCP schemas.
Official references
License
MIT
Available Tools
66 toolsadd_team_userB
Add a user to a team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID | |
| userId | Yes | User UUID to add | |
| role | Yes | Role in the team: 'team-owner' or 'team-member' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden for behavioral traits, but it only states the basic action. It does not disclose effects on existing membership, authorization needs, or other behavioral implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, a single sentence that conveys the essential purpose without extraneous words, achieving maximum conciseness.
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 existence of sibling tools like update_team_user and remove_team_user, and no output schema, the description lacks details on defaults, idempotency, or what happens if the user is already a member, making it incomplete for an agent to fully understand the tool's behavior.
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?
Input schema has 100% description coverage for all three parameters. The description adds no additional meaning beyond what the schema already provides, so baseline score 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 'Add a user to a team' clearly states the action (add) and the entities involved (user and team), distinguishing it from sibling tools like add_team_website and remove_team_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as update_team_user or remove_team_user, nor any prerequisites or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_team_websiteC
Add a website to a team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID | |
| websiteId | Yes | Website UUID to add to the team |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as idempotency, error handling, or permission requirements. The description adds no value beyond the name.
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 (one sentence) but overly minimal. It lacks structure or additional context that could improve readability without adding significant length.
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 two parameters and no output schema, the description is incomplete. It omits prerequisites, side effects, and return behavior, leaving the agent without sufficient 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% with clear parameter descriptions. The description adds no extra information, but the schema already documents the parameters 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 action ('Add a website to a team') and distinguishes it from siblings like add_team_user and remove_team_website. However, it could be more precise by specifying that the website must already exist.
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 on when to use this tool, prerequisites (e.g., team and website must exist), or alternatives. The description does not help the agent choose between this and other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_eventsA
Send multiple events or pageviews in a single batch request
| Name | Required | Description | Default |
|---|---|---|---|
| events | Yes | Array of events to send |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only states the basic function without disclosing behavior such as batch size limits, error handling, or idempotency. For a batch operation, more detail is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise, front-loaded, and contains no unnecessary words. Every part is 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?
Given the tool's simplicity, the description is adequate but lacks details on batch limits, response format, and error conditions. It does not fully cover what the agent might need 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?
The input schema has 100% coverage with descriptions for the 'events' parameter and its nested fields. The description adds minimal extra meaning beyond 'multiple' and 'batch request', so it meets the baseline but does not enhance understanding.
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 'send', the resource 'multiple events or pageviews', and the method 'single batch request'. It effectively distinguishes this tool from the sibling 'send_event' tool by emphasizing batching.
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 use for sending multiple events at once, contrasting with 'send_event' for single events, but does not explicitly state when to use or avoid this tool, nor mention alternatives or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_reportC
Create and save a new report
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| name | Yes | Report name | |
| type | Yes | Report type | |
| description | No | Report description | |
| parameters | No | Report-specific parameters (JSON object) |
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 creation and saving, omitting information about side effects (e.g., overwriting existing reports), required authentication, or whether the operation is destructive. This is insufficient for an untrusted AI agent.
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, short sentence with no wasted words, but it is too terse for a tool with 5 parameters and no other documentation. It lacks any structural elements like examples or bullet points that would improve readability.
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 (5 parameters, no output schema, no annotations), the description is incomplete. It fails to explain the return value, error states, or how the 'parameters' nested object should be structured, leaving the agent underinformed.
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% description coverage, so the parameters are already documented. The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate as 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 'Create and save a new report' with a specific verb and resource, distinguishing it from siblings like update_report or run_report. However, it lacks specificity about what 'saving' entails and does not differentiate from similar operations like adding a report draft.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as update_report, run_report, or list_reports. No context is given about prerequisites, required permissions, or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_teamC
Create a new team
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Team name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It merely states 'Create a new team' with no details on side effects, required permissions, error conditions (e.g., duplicate name), or response format. This is insufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (5 words), but it lacks any additional context that could aid the agent. It is efficient but overly minimal; a slightly expanded description would improve clarity without losing conciseness.
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 simplicity (1 param, no output schema), the description is incomplete. It does not explain what happens after creation (e.g., returns team object or success status), nor does it address potential errors. An agent cannot fully understand the tool's behavior from this description alone.
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% (one parameter 'name' described as 'Team name'). The description adds no additional meaning beyond the schema. Baseline score is 3.
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 'Create a new team' clearly states the action (create) and resource (team), distinguishing it from sibling tools like delete_team, get_team, and update_team. It avoids tautology by adding 'a new'.
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 guidelines provided. The description does not specify when to use this tool vs alternatives, nor any prerequisites or conditions. For example, it doesn't indicate whether a team name must be unique or if the user needs specific permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_userB
Create a new user (admin only)
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Username for the new user | |
| password | Yes | Password for the new user | |
| role | No | User role: 'admin' or 'user' (default: 'user') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions admin authorization. It does not disclose other behavioral traits such as idempotency, side effects (e.g., whether it overwrites existing users), or error conditions (e.g., duplicate usernames).
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 very short (7 words) and front-loaded with the action and constraint. While concise, it could benefit from slightly more structure or detail on context, but it remains 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?
Given the tool's simplicity (3 parameters, no output schema), the description is minimally complete. It conveys the core purpose and authorization requirement but lacks information about return values, error handling, or uniqueness constraints.
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 all three parameters with descriptions (100% coverage). The description adds no extra meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and the resource (user), with an authorization hint (admin only). It distinguishes from sibling tools like update_user, delete_user, and list_users.
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 a usage constraint ('admin only') but does not explicitly guide when to use this tool vs alternatives (e.g., add_team_user, join_team). Usage context is implied but not fully articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_websiteC
Create a new website to track in Umami
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Website domain (e.g. 'example.com') | |
| name | Yes | Display name for the website | |
| shareId | No | Unique share ID for public access |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states 'create' without disclosing potential errors (e.g., duplicate domain), permission requirements, or idempotency. This is minimal 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?
One concise sentence contains the essential purpose. No unnecessary 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?
Given no output schema and three parameters, the description lacks details about return values, error handling, or relationship to siblings. It is incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all parameters have descriptions). The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Create) and resource (a new website) with context (to track in Umami). It distinguishes itself from sibling tools like create_report or create_team, though it could be more specific about what 'website' means in Umami.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like update_website or delete_website. Without context, an AI agent may misuse it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_reportB
Delete a saved report
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | Report UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the action without disclosing whether deletion is permanent, if there are cascading effects, or auth requirements. For a destructive operation, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. However, it is overly brief and could benefit from more detail while remaining 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?
For a simple delete tool with one required parameter and no output schema, the description should mention idempotency, error states, or post-deletion behavior. It lacks these details, leaving gaps in understanding.
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% description coverage (reportId with 'Report UUID to delete'). The description adds no extra meaning beyond the schema, so baseline 3 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?
The description 'Delete a saved report' clearly states the action (delete) and the resource (saved report), distinguishing it from sibling tools like create_report, update_report, and run_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., update_report) or any prerequisites (e.g., ownership of the report). The agent has no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_teamB
Delete a team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states the action without indicating irreversibility, required permissions, or cascading effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no wasted words. However, it is perhaps too brief and could include more context without harming conciseness.
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 delete operation, the description lacks essential context such as irreversibility, required permissions, side effects, or return value. It is insufficient for an agent to use confidently.
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 single parameter 'teamId' is fully described in the schema as 'Team UUID to delete'. The description adds no extra meaning beyond the schema, so it meets the baseline expectation.
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 'Delete a team' uses a specific verb and resource, clearly distinguishing it from siblings like create_team, update_team, and list_teams.
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, prerequisites, or potential consequences of deletion. The description does not mention alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_userB
Delete a user (admin only)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should disclose behavioral traits. It only states 'admin only' but does not mention if deletion is permanent, if there are cascading effects, or if confirmation is required. For a destructive action, more transparency is needed.
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 conveys the action and a key constraint. It is well-structured and front-loaded, but could benefit from additional details without becoming verbose.
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 (one parameter, no output schema), the description provides basic context. However, it lacks information about return values, error conditions, or behavior when the user does not exist or is already deleted. This may leave an agent uncertain about the tool's full behavior.
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 already provides 100% coverage with a description for the userId parameter. The tool description adds no additional semantic information beyond what's in the schema, so it meets the baseline for parameter 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 action 'Delete' and the resource 'user', and includes an important constraint 'admin only'. This distinguishes it from sibling tools like 'remove_team_user' or 'update_user'.
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 guidance on when to use this tool versus alternatives like 'remove_team_user' or 'deactivate'. It only mentions the admin requirement, but no context about prerequisites or when to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_websiteB
Delete a website from Umami
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks disclosure of important behavior such as irreversibility, permission requirements, or cascading effects on associated data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence but under-specified for a deletion tool; could include more context without being verbose.
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 delete tool, the description is too brief. It omits crucial context like post-deletion effects or how it differs from reset_website, given no output schema or annotations.
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?
Input schema covers 100% of parameters with a clear description. The tool description adds no new meaning beyond the schema, resulting in baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Delete) and the resource (website from Umami), distinguishing it from siblings like create_website or update_website.
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 on when to use this tool versus alternatives like reset_website or when not to use it (e.g., irreversible deletion).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_visitorsB
Get the number of currently active visitors on a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description should disclose behavioral traits. It fails to define 'active visitors' (e.g., time window, uniqueness), does not mention whether it is read-only, and omits any rate limits or authorization requirements.
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?
Single sentence, 10 words, no redundancy. Every word serves a purpose.
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 metric tool with one parameter and no output schema, the description is minimally adequate but lacks definition of 'active' and any context on real-time behavior.
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?
With 100% schema coverage, the baseline is 3. The description adds no further meaning beyond the schema's description of websiteId as 'Website UUID'.
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?
Description clearly states the tool retrieves the number of currently active visitors for a website, using a specific verb 'Get' and resource 'active visitors'. It distinguishes itself from sibling tools like get_pageviews or get_stats by focusing on active visitor count.
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 on when to use this tool over alternatives. Sibling tools such as get_realtime or get_stats could overlap, but description provides no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daterangeB
Get the date range of available data for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID |
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 does not disclose any behavioral traits beyond the basic purpose (e.g., read-only, auth requirements, rate limits), leaving ambiguities about side effects.
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, focused sentence that immediately conveys the core functionality. It contains no extraneous information and is efficiently front-loaded.
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 is adequate but could be more informative about the return value (e.g., whether it returns a range object or just min/max dates).
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 for the single parameter 'websiteId' with a description 'Website UUID'. The tool description adds no additional meaning beyond what the schema already provides, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('date range of available data for a website'). It is specific enough to distinguish from most sibling tools, though it does not explicitly contrast with similar get_* operations.
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 needing the time span of available data, but provides no guidance on when not to use this tool or specific alternatives among many similar get_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_data_eventsB
Get event data events (custom event names and counts) for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| eventName | No | Filter by event name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the burden. It only states the tool retrieves names and counts but does not disclose whether it is read-only, any rate limits, or how counts are defined. Minimal behavioral disclosure.
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?
Description is a single concise sentence that front-loads the verb and resource. Every word is informative, no fluff.
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?
No output schema is given, and the description does not explain the return format (e.g., array of objects). It also omits mention of required parameters (websiteId, startAt, endAt) and context like date range necessity. Lacks completeness for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add any meaning beyond what the schema already provides for parameters (e.g., interaction, format). No additional value.
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 resource 'event data events' with parenthetical clarification '(custom event names and counts)'. It distinguishes from siblings like 'get_event_data_fields' and 'get_event_data_values', making the tool's purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'get_events', 'get_event_data_stats', or 'get_event_data_values'. An agent lacks context to choose among similar event-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_data_fieldsA
Get event data fields (property keys and their data types) for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| eventName | No | Filter by event name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only states what the tool returns but does not disclose behavioral traits like idempotency, performance, or access requirements.
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?
Single, clear sentence with no extraneous words. Front-loads the core purpose.
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?
Lacks details on output format or differentiation from similar sibling tools, but the basic purpose is adequately conveyed for a simple retrieval operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning for the parameters beyond 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 gets event data fields (property keys and data types) for a website. It specifies the action and resource uniquely among sibling 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?
No explicit guidance on when to use this tool versus alternatives like get_event_data_events or get_event_data_values, which are similar in scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_data_statsB
Get event data statistics (summary counts) for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| eventName | No | Filter by event name |
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 only states the purpose and does not disclose behavioral traits like read-only nature, potential side effects, or any required permissions. The agent lacks safety context beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the key purpose. However, it is minimal, lacking any structural elements like bullet points or additional context, which prevents a perfect score.
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 4 parameters, no output schema, and numerous sibling tools with overlapping purposes, the description is too sparse. It does not explain return format, the role of required timestamps, or how this tool fits relative to others like get_event_data_events or get_stats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents parameters. The description adds no additional meaning or context about the parameters beyond the high-level purpose, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get event data statistics (summary counts) for a website', using a specific verb and resource. Among siblings like get_event_data_events, get_event_data_fields, and get_event_data_values, this distinguishes itself by specifying 'statistics' and clarifying it provides summary counts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools such as get_stats, get_event_series, and get_session_stats, the agent has no criteria to differentiate usage contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_data_valuesA
Get event data values (aggregated counts for a specific property) for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| eventName | No | Filter by event name | |
| propertyName | No | Filter by property name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It states the operation is a read ('Get') and returns aggregated counts, but does not disclose any specific behavioral traits such as data freshness, pagination, or required permissions. It is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence that conveys the core functionality. It is front-loaded with the key information and contains no extraneous text, earning a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description leaves many aspects unclear: what the response format looks like, how aggregation works, and any edge cases. More detail would improve completeness.
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% with parameter descriptions in the schema. The description does not add any additional meaning beyond what is already in the schema, so it meets the baseline but does not enhance understanding.
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 specifies the verb 'Get', the resource 'event data values', and clarifies it provides 'aggregated counts for a specific property'. This clearly distinguishes it from sibling tools like get_event_data_events (which lists events) and get_event_data_stats (general stats).
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 retrieving aggregated counts of a property, but does not explicitly state when to use this tool over alternatives like get_event_data_fields or get_event_data_stats. No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_eventsC
Get event data for a website over time
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| unit | Yes | Time grouping unit | |
| timezone | No | Timezone (e.g. 'Asia/Seoul') | |
| url | No | Filter by URL path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden for behavioral disclosure. It fails to mention that the tool is read-only, what output format exists, or any limitations such as rate limits or authentication requirements.
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 short sentence, which is concise but lacks key information. It is not front-loaded with the most critical context, though it is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, 4 required) and no output schema, the description is insufficient. It does not explain the return value, pagination, or how parameters like timezone and unit interact, leaving the agent with incomplete 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%, with each parameter described in the schema. The description adds no additional meaning beyond the schema, so a baseline score 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 that the tool retrieves event data for a website over time, using the verb 'get' and specifying the resource. However, it does not differentiate from similar siblings like get_event_data_events or get_event_values, which may overlap in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no mention of prerequisites or exclusions. The agent lacks context to decide among the many similar 'get' tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_seriesC
Get event metrics over time (event series data) for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| unit | Yes | Time grouping unit | |
| timezone | No | Timezone (e.g. 'Asia/Seoul') | |
| url | No | Filter by URL path | |
| eventName | No | Filter by event name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the basic function without mentioning data range limits, permission requirements, or return format. This is insufficient for a time-series data 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?
Single sentence with no wasted words, but lacks necessary detail for completeness. Adequate conciseness but insufficient content.
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?
No output schema or return description provided. The minimal description does not inform the agent about what the tool returns (e.g., time-series data points, structure). Given 7 parameters and no annotations, this is severely incomplete.
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 7 parameters have descriptions in the schema (100% coverage). The description adds no extra meaning beyond what the schema provides, so baseline 3 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?
The description clearly states the verb 'Get' and the resource 'event metrics over time (event series data)' for a website. It distinguishes this tool from sibling tools like 'get_events', 'get_event_data_stats', etc., which focus on other event data aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., get_events, get_event_data_stats). The description lacks context for scenario selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_event_valuesC
Get event or session property values for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds |
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 only states 'Get', implying a read operation, but lacks details on side effects, pagination, limits, or authentication requirements. The description is insufficient for understanding behavioral traits.
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 verb and resource. It is appropriately sized, though it could benefit from slight expansion for clarity.
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 absence of an output schema and annotations, the description should provide more context on return values or limitations. It is too brief to fully prepare an agent for selecting and using this tool among many similar siblings.
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 clear parameter descriptions for websiteId, startAt, and endAt. The description adds no additional meaning beyond the schema, so baseline 3 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?
The description clearly states the verb 'Get' and the resource 'event or session property values for a website'. It distinguishes from siblings like get_event_data_values and get_session_data_values by specifying 'property values', but could be more specific about what these values represent.
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 on when to use this tool versus alternatives such as get_event_data_values or get_session_data_values. The description does not mention when to prefer this tool or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meA
Get the currently authenticated user's profile information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description accurately states it's a read operation without side effects. Adequate but adds no behavioral context beyond the obvious.
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?
Single sentence, front-loaded with purpose, no filler. Every word earns its place.
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?
Simple tool with no params or output schema; description covers the essential purpose. Could specify return fields, but not critical given 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?
No parameters in input schema; description correctly omits param details. Baseline 4 for zero-parameter tools.
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?
Description clearly states verb (Get) and resource (currently authenticated user's profile information), distinguishing it from sibling tools like get_user or get_my_teams.
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?
Implicitly clear when to use: when needing the current user's profile. No explicit alternatives or exclusions, but not needed for such a straightforward tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metricsC
Get aggregated metrics for a website (e.g. top pages, browsers, countries, devices, OS, events)
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| type | Yes | Metric type to aggregate | |
| url | No | Filter by URL path | |
| referrer | No | Filter by referrer | |
| limit | No | Max results to return (default 500) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only indicates a read operation (Get aggregated metrics) but does not mention data freshness, rate limits, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. However, the parenthetical examples could be integrated more smoothly.
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 7 parameters and no output schema, the description is too minimal. It does not explain the output format, how the type parameter affects results, or the effect of optional filters.
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 parameters are described in the input schema (100% coverage), so the description adds no additional meaning beyond what the schema already provides. The examples in parentheses relate to the 'type' enum but are not needed.
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 gets aggregated metrics and gives concrete examples (top pages, browsers, etc.), but does not explicitly differentiate it from sibling tools like get_stats or get_pageviews that may have overlapping functionality.
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 on when to use this tool versus alternatives (e.g., get_stats, get_realtime), no description of appropriate contexts or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_teamsB
Get the list of teams the current user belongs to
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based) | |
| pageSize | No | Results per page | |
| query | No | Search query to filter teams |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states 'get the list'. No disclosure of pagination behavior, authentication requirements, rate limits, or whether results are limited to the current user's view.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but too brief to fully explain the tool. It lacks structure and depth, especially given the presence of optional parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description should cover more than just the basic purpose. Missing details on return format, error handling, and pagination behavior make it incomplete for a tool with 3 parameters.
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 parameters are already documented. The description adds no additional meaning about how 'page', 'pageSize', or 'query' affect the results beyond 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 retrieves the list of teams for the current user. It distinguishes itself from sibling tools like 'list_teams' (which may list all teams) and 'get_team' (single team) by specifying 'the current user belongs to'.
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 on when to use this tool versus alternatives such as 'list_teams' or 'get_user_teams'. No mention of when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_websitesA
Get the list of websites belonging to the current user
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based) | |
| pageSize | No | Results per page | |
| query | No | Search query to filter websites |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description must fully disclose behavioral traits. It indicates a read operation ('Get') but fails to mention that results are paginated, that pagination parameters are optional, or any other behaviors such as default sorting or response format. This is adequate but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core purpose. Every word is necessary, and there is no redundant 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?
The tool is simple (list operation) with no output schema, but the description lacks details on pagination behavior (e.g., default page size, maximum), whether the query parameter filters by name, and how it differs from the sibling 'list_websites'. It is functional but not fully 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?
The input schema has 100% description coverage for all three parameters (page, pageSize, query). The description adds no additional meaning beyond the parameter descriptions, so it meets the baseline of 3.
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', the resource 'list of websites', and the scope 'belonging to the current user'. This effectively distinguishes it from siblings such as 'get_website' (single website) and 'get_user_websites' (websites for a specific user).
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 its siblings like 'get_user_websites' or 'list_websites'. The description does not specify any conditions or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pageviewsC
Get pageview and session counts over time for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| unit | Yes | Time grouping unit | |
| timezone | No | Timezone (e.g. 'Asia/Seoul') | |
| url | No | Filter by URL path | |
| referrer | No | Filter by referrer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behaviors. It only mentions fetching counts, but fails to clarify if the tool is read-only, whether it requires authentication, or how it handles empty results.
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 unnecessary words, making it highly concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no output schema, and no annotations, the description is too sparse. It omits crucial details like return format, error handling, and pagination, making it incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so parameters are already well-documented. The description adds no additional semantic value beyond what the schema 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 it retrieves pageview and session counts over time for a website, using a specific verb and resource. However, it does not differentiate from similar tools like get_stats or get_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?
No guidance is provided on when to use this tool versus alternatives. The description lacks context on prerequisites, such as needing a valid websiteId or time range.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_realtimeA
Get real-time data for a website (last 30 minutes). Returns current visitors, active URLs, referrers, countries, and events.
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states the operation is a 'get' (read-only) and specifies the time window and return fields, but does not discuss authentication, rate limits, or side effects. The information is adequate 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 a single, well-structured sentence that immediately communicates the tool's purpose and key details (real-time, last 30 minutes, what is returned). No redundant 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?
For a simple tool with one parameter and no output schema, the description sufficiently covers what the tool does and returns. However, given the large number of sibling tools, additional context on when to use this specific tool would improve completeness.
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 one parameter (websiteId) with a clear description ('Website UUID'). The description does not add extra meaning beyond the schema, and schema coverage is 100%, so baseline score 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?
The description clearly specifies that the tool retrieves real-time data for a website within the last 30 minutes, listing specific returned data (current visitors, active URLs, referrers, countries, events). This distinguishes it from siblings like get_stats (historical) or get_active_visitors (likely count only).
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 real-time monitoring but does not explicitly state when to use this vs. alternatives like get_active_visitors or get_stats. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_reportB
Get details of a specific saved report
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | Report UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose return format, side effects (read-only), or permissions required. For a read operation, this is minimal.
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?
One clear sentence, front-loaded and to the point. Could include a bit more detail without being verbose.
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?
Adequate for a simple one-parameter tool, but lacks output schema and any indication of return structure, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description 'Report UUID' for reportId. Description adds no extra meaning beyond schema, meeting 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 retrieves details of a specific saved report, distinguished from siblings like list_reports, create_report, delete_report, and run_report.
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 on when to use this tool versus alternatives like list_reports (for summary) or run_report (for executing). No context about prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sessionC
Get details of a specific session
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| sessionId | Yes | Session UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It does not mention that the tool is read-only, what happens on not found, authentication needs, or response structure. Only the verb 'Get' hints at read behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise and front-loaded. It conveys the core purpose without extra words, though it could be expanded to include more context without becoming verbose.
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 lacks output schema and does not specify what 'details' includes. Given the tool's simplicity and the presence of siblings with similar names, a more complete description of the response fields or scope would be helpful.
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 both parameters have clear descriptions. The tool description adds no additional meaning beyond what the schema provides, so a baseline score 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 'Get details of a specific session' clearly identifies the action and resource. It distinguishes from siblings like get_sessions (which lists multiple sessions) and get_session_activity (which focuses on activity), but could be more specific about what 'details' includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many sibling get_* tools, the description should indicate that this is for a single session's full details, not for activity or properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_activityB
Get activity log for a specific session (pages visited, events fired)
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| sessionId | Yes | Session UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It does not mention that the operation is read-only, whether any authentication is required, or if results are paginated. The description only hints at read behavior but lacks explicit safety or performance details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that front-loads the core purpose. It could be improved by adding structured sections or bullet points for clarity, but it is concise and free of unnecessary 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?
Given no output schema, the description provides example content (pages visited, events fired) which partly compensates. However, it lacks details on return format, pagination, or error handling, making it minimally adequate for a simple retrieval 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?
Input schema has 100% description coverage for both parameters (websiteId and sessionId as UUIDs). The description does not add any additional context beyond what is already in the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get activity log for a specific session' with examples ('pages visited, events fired'), making the verb and resource specific. It distinguishes from sibling tools like get_session (which likely returns session metadata) and get_events (which may be broader).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_session, get_events, or get_pageviews. The agent must infer from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_data_propertiesA
Get session data property names and their data types for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the output (property names and data types) without mentioning side effects, auth requirements, rate limits, or any behavioral traits such as whether it reads or mutates data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It efficiently conveys the tool's purpose 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 no output schema and no annotations, the description is somewhat incomplete. It does not specify the return format (e.g., list of objects) or provide examples. However, the input schema is fully described and the tool's goal is straightforward.
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% for all three parameters, so the baseline is 3. The description adds no additional meaning beyond the schema; it does not explain how the date range affects the returned properties or any format requirements.
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 'session data property names and their data types for a website'. It distinguishes from siblings like get_session_data_values (which returns values) and get_session_properties (likely returns properties with values).
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 retrieving the schema of session data properties but does not explicitly state when to use this tool over alternatives or provide exclusion criteria. No when-not or alternative tool naming is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_data_valuesB
Get session data values (aggregated counts for session properties) for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| propertyName | No | Filter by property name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It implies a read-only operation but does not mention side effects, rate limits, prerequisites, or whether data is aggregated over time. Minimal behavioral context beyond the purpose.
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 is concise but omits important details like return format. It is not verbose but could be more structured, e.g., stating 'returns a mapping from property values to counts'.
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 4 parameters (3 required) and no output schema. The description does not explain the return format (e.g., aggregated counts might be a JSON object). Considering complexity, the description is incomplete.
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?
Input schema coverage is 100%, with each parameter having a description. The description does not add new information about parameters (e.g., explaining the optional propertyName filter). Baseline 3 is appropriate as schema already provides meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'session data values (aggregated counts for session properties)', and the context 'for a website'. It distinguishes from siblings like get_event_data_values and get_session_data_properties by specifying aggregated counts for session properties.
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 on when to use this tool versus alternatives such as get_session_stats or get_session_data_properties. The description only states what it does without any contextual cues or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_propertiesC
Get custom properties attached to a specific session
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| sessionId | Yes | Session UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description is the sole source of behavioral information. It only states the basic read action without disclosing any side effects, auth requirements, rate limits, or error handling (e.g., what happens if session does not exist).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the purpose. It is concise and front-loaded with no unnecessary 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 is minimal and lacks information about the return value (no output schema). It does not clarify what custom properties are or how the result is structured, making it incomplete for an agent deciding to 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?
The input schema has 100% coverage, with descriptions for both parameters (Website UUID, Session UUID). The tool description adds no extra meaning beyond the schema, so a baseline score 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 action 'get' and the resource 'custom properties attached to a specific session', effectively distinguishing it from similar tools like get_session_activity. However, it does not elaborate on what constitutes 'custom properties' versus other properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_session_data_properties or get_session_activity. There are no explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sessionsC
Get session data for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| query | No | Search query | |
| page | No | Page number (1-based) | |
| pageSize | No | Results per page | |
| orderBy | No | Field to order by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Get session data'. It does not disclose read-only nature, response format, pagination, or any side effects. Minimal behavioral context.
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, but it is too short to convey necessary information. It could be improved without adding much length.
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 7 parameters, no output schema, and no annotations, the description is incomplete. It lacks details on response structure, pagination, or filtering behavior, which are critical for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions.
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 'Get session data for a website' is a clear verb+resource but is too generic. It does not distinguish from sibling tools like 'get_session' (singular) or 'get_session_activity', leaving ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description provides no context for usage or when to prefer it over 'get_session' or 'get_session_stats'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_statsB
Get summarized session statistics for a website (total sessions, unique visitors, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| url | No | Filter by URL path | |
| referrer | No | Filter by referrer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral transparency. While it indicates the tool returns 'summarized session statistics', it does not disclose whether the operation is read-only, destructive, or has other side effects. It also omits details like aggregation method, pagination, or data freshness. The parenthetical 'etc.' is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core purpose with examples. It is front-loaded and uses minimal words. However, it could include additional structure (e.g., a note about filters or output) without being overly verbose.
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 moderate complexity (5 params, no output schema, no annotations), the description is adequate but not fully complete. It explains the basic purpose but lacks details like whether it returns aggregated data over a period or per session, and what 'etc.' includes. The schema covers parameters well, but the description could better clarify the nature of the 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?
Input schema coverage is 100% with descriptions for all 5 parameters. Per rules, baseline is 3 when coverage >80%. The description adds no additional parameter semantics beyond the schema; it only restates the general resource type ('for a website'). No parameter details are provided in the description.
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 summarized session statistics for a website (total sessions, unique visitors, etc.)' It specifies the action (Get), resource (summarized session statistics), and gives examples. This distinguishes it from siblings like get_sessions (which lists sessions) or get_stats (more general stats).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are many sibling tools (e.g., get_sessions, get_stats, get_event_data_stats) with no explanation of when this tool is appropriate. The description lacks any 'when to use' or 'when not to use' context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sessions_weeklyC
Get weekly session data for a website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It only states 'get weekly session data' without explaining aggregation details, data format, or limitations. The agent cannot infer key behaviors like whether it returns raw events or aggregated stats.
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 short sentence with no wasted words. It is front-loaded with the key verb and resource. However, it could include more useful information while remaining 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 absence of an output schema and the presence of multiple sibling tools for session data, the description is insufficient. It fails to explain what the weekly aggregation entails or what the response structure looks like, leaving a gap for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains websiteId, startAt, and endAt. The description adds no additional meaning beyond repeating the function's purpose, providing no new value for parameter 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 verb 'Get' and resource 'weekly session data', and specifies the scope 'for a website'. However, it does not differentiate from sibling tools like get_sessions or get_session_stats, which may also return session 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?
No guidance is provided on when to use this tool versus alternatives such as get_sessions (possibly daily) or get_session_stats. The description does not mention prerequisites or exclusions, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_statsB
Get summary statistics for a website (pageviews, visitors, visits, bounces, totaltime)
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| startAt | Yes | Start timestamp in milliseconds | |
| endAt | Yes | End timestamp in milliseconds | |
| url | No | Filter by URL path | |
| referrer | No | Filter by referrer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as data freshness, rate limits, or the safety of repeated calls. For a read operation, it is implied but not stated, leaving agents uncertain about side effects.
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?
Single sentence is concise and front-loaded with key information. While efficient, it could benefit from brief structuring to separate purpose from output details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite high schema coverage and no output schema, the description does not explain the response format or how filters interact. It is adequate for a simple stat tool but lacks contextual details like default date ranges or null handling.
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 parameters are already documented. The description adds no additional meaning beyond listing the output fields, which does not enhance understanding of how parameters affect results.
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?
Description clearly states the tool gets summary statistics for a website and lists specific metrics (pageviews, visitors, visits, bounces, totaltime). It distinguishes from siblings like get_pageviews and get_metrics by specifying the exact aggregate 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?
No guidance on when to use this tool versus alternative tools like get_pageviews, get_metrics, or get_session_stats. Given many sibling tools, explicit use cases or comparisons would help agents select correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_teamA
Get details of a specific team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral details beyond being a read operation. It omits potential side effects, authentication requirements, error handling, or what constitutes 'details'.
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, focused sentence with no redundant information. It is front-loaded and efficiently communicates the tool's purpose.
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 (one required parameter, no output schema), the description is minimally adequate. However, it does not elaborate on the returned data or error conditions, which could be helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with a description for 'teamId' as 'Team UUID'. The description adds no additional meaning beyond what the schema provides, which is adequate.
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 resource 'team', clearly indicating a read operation for a single team. It distinguishes from sibling tools like 'list_teams' (which lists all teams) and mutation 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?
No explicit guidance on when to use this tool versus alternatives such as 'list_teams' or 'create_team'. The context implies selection based on needing details of a specific team, but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_team_userA
Get details of a specific team member
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID | |
| userId | Yes | User UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation without side effects, which is accurate. However, it does not disclose authentication requirements, error handling (e.g., missing user), or any behavioral constraints. Since no annotations exist, the description carries the burden but provides only basic 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, front-loaded sentence with no superfluous words. Every word contributes to the purpose.
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 simplicity of the tool (no output schema, no nested objects), the description is minimally complete but lacks details on what 'details' are returned. The agent might need to infer from sibling tools or documentation.
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% with both parameters described (teamId: 'Team UUID', userId: 'User UUID'). The description adds no additional meaning beyond the schema, so baseline score 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 'Get details of a specific team member' clearly states the action (get) and resource (team member), distinguishing it from sibling tools like list_team_users (which returns multiple) and add/remove/update operations.
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 retrieving a single team member's details but does not explicitly state when to use this over list_team_users or other alternatives. No exclusion criteria or prerequisites are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_userA
Get details of a specific user (admin only)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full burden. It discloses the admin privilege requirement and implies read-only behavior, which is sufficient for a simple retrieval tool, though no further traits like rate limits are mentioned.
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, efficient sentence that conveys the purpose and constraint without any unnecessary words 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?
For a simple get-by-ID operation with one required parameter and no output schema, the description is mostly adequate. It could benefit from enumerating typical returned fields, but the current level is sufficient for an agent to understand the tool's function.
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 already describes the 'userId' parameter as 'User UUID' (100% coverage). The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Get details') and the resource ('a specific user'), with the admin-only distinction that sets it apart from sibling tools like list_users.
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 '(admin only)' provides clear context for when the tool should be used, but does not explicitly mention when not to use it or suggest alternatives like list_users for non-admins.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_teamsB
Get the list of teams a user belongs to (admin only)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User UUID | |
| page | No | Page number (1-based) | |
| pageSize | No | Results per page | |
| query | No | Search query to filter teams |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose read-only nature, pagination behavior, response structure, or any side effects. Minimal behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 10 words, no redundancy. Immediately states the verb and resource. Very 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?
With 4 parameters, no output schema, and no annotations, the description is too sparse. It omits details on pagination, query filtering, and what the response contains, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptions in the input schema (100% coverage), so the description adds no additional meaning. Baseline of 3 is appropriate as the schema already documents each parameter 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 verb 'Get', the resource 'list of teams a user belongs to', and includes the constraint '(admin only)'. This distinguishes it from siblings like 'list_teams' (all teams) and 'get_my_teams' (current user's teams).
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?
Only specifies the prerequisite 'admin only' without explaining when to use this tool versus alternatives like 'get_my_teams' or 'list_teams'. No guidance on when not to use or preferred use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_usageC
Get usage statistics for a specific user (admin only)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User UUID | |
| startAt | No | Start timestamp in milliseconds | |
| endAt | No | End timestamp in milliseconds |
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 'admin only' (authorization) and 'Get' (read operation), but lacks details on what the statistics include, potential side effects, rate limits, or data freshness. This minimal transparency is insufficient for a tool without annotations.
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, focused sentence that immediately conveys the core purpose and key constraint (admin only). No extraneous text, front-loaded with essential 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 clear parameter schemas, the description fails to specify what usage statistics are returned (e.g., metrics like pageviews, sessions) or how date range parameters affect results. With no output schema, this gap is significant for an agent needing to interpret 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?
The input schema has 100% coverage with descriptions for all parameters, rendering the description redundant for parameter meaning. The description adds no extra context beyond the schema, earning a baseline score of 3 as per guidelines.
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 resource 'usage statistics for a specific user', with an admin restriction. It is specific enough to distinguish from sibling tools like get_user (which retrieves user profile) and get_stats (which might be general), but does not explicitly differentiate from potential other usage stats 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 only notes 'admin only', which is an authorization constraint but offers no guidance on when to use this tool versus alternatives. For example, there is no mention of alternatives for aggregated usage or non-admin scenarios, leaving the agent to infer context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_websitesB
Get the list of websites a user has access to (admin only)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User UUID | |
| page | No | Page number (1-based) | |
| pageSize | No | Results per page | |
| query | No | Search query to filter websites |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Only mentions admin-only access, but lacks details on side effects, rate limits, or return behavior. Minimal 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?
Single sentence, direct and efficient. Could slightly improve by separating conditions, but no 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?
No output schema, and description misses pagination behavior despite page/pageSize params. Lacks return value structure. Adequate but incomplete.
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?
Input schema has 100% coverage, so baseline 3 applies. Description does not add extra meaning beyond what schema already provides for userId, page, pageSize, query.
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?
Description clearly states 'Get the list of websites a user has access to' with a specific verb and resource, and adds 'admin only' scope. Distinguishes from siblings like get_website (single) and list_websites (all).
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 'admin only' hint provides a prerequisite but no explicit when-to-use or alternatives. With many list/get siblings, clearer guidance would help selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_websiteA
Get details of a specific website by ID
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only says 'Get details' without mentioning read-only nature, error handling, or any side effects.
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?
Single succinct sentence with no unnecessary words 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?
Sufficient for a simple retrieval tool, but lacks explanation of what 'details' includes; no output schema defined.
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?
100% schema coverage already describes parameter 'websiteId'; description adds no extra meaning beyond 'by ID'.
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?
Description clearly states verb 'Get' and resource 'details of a specific website', distinguishing it from 'list_websites' which returns all websites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like 'create_website' or 'list_websites'; usage is implied by name and parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_website_reportsB
Get all reports associated with a specific website
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description fails to disclose any behavioral traits (e.g., pagination, rate limits, or side effects). For a read operation, it should at least confirm no destructive impact, which is missing.
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?
Single sentence, no wasted words. However, could be slightly more structured to separate purpose from input details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter and no output schema; description is minimal but sufficient for a basic get-all-by-parent operation. However, lacks return format details, which may hinder agent understanding.
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% with websiteId described as 'Website UUID'. Description adds no extra meaning; 'associated with a specific website' is redundant. Baseline 3 for high coverage with no added value.
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?
Description clearly states the verb 'Get', resource 'reports', and scope 'all reports associated with a specific website', distinguishing it from siblings like get_report (singular) and list_reports (likely broader scope).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as list_reports or get_report. It assumes the agent knows to provide a websiteId but doesn't clarify context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
heartbeatA
Check if the Umami server is running and healthy
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 accurately indicates a read-only health check, but could mention that it does not modify any state. The behavior is transparent given the simple purpose.
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 essential purpose without any unnecessary words. Every word earns its place.
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 no parameters and no output schema, the description is sufficiently complete for a simple health-check tool. It could optionally mention the return format, but this is not essential.
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 with 100% coverage, so the description does not need to add parameter details. According to guidelines, 0 params warrants a baseline of 4.
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: checking if the Umami server is running and healthy. It uses a specific verb ('check') and resource ('server health'), distinguishing it from sibling tools that perform data manipulation or analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given. However, the tool's simplicity implies it is for verifying server status. No alternatives are mentioned, but the context is clear enough for minimal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_teamB
Join a team using an access code
| Name | Required | Description | Default |
|---|---|---|---|
| accessCode | Yes | Team access/invite code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose any behavioral traits such as authentication requirements, side effects, or error handling. For a mutation tool, more transparency is expected.
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?
Extremely concise: one sentence with no filler words. Earns a perfect score for conciseness.
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 1-parameter tool with no output schema, the description is adequate but lacks context on behavior (e.g., what happens if code is invalid) and usage scenarios.
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?
Single parameter 'accessCode' has a description in the schema (100% coverage). The tool description adds no additional meaning beyond the schema. Baseline score 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 action ('join'), the resource ('team'), and the method ('using an access code'). It distinguishes this tool from siblings like 'create_team' or 'delete_team'.
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 on when to use this tool versus alternatives such as 'add_team_user'. No context on prerequisites or special conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reportsC
List all saved reports
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based) | |
| pageSize | No | Results per page | |
| orderBy | No | Field to order by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden to disclose behavior. It does not mention pagination, authentication needs, or data scope beyond 'all saved reports'. The optional parameters imply pagination and sorting, but these are not described in the tool description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise and front-loaded. It wastes no words, though it could expand slightly on output or behavior without sacrificing conciseness.
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 omits output format, pagination behavior, and any constraints. Since no output schema exists, the description should clarify what the list contains (e.g., report metadata). It is incomplete for a tool with three optional parameters and no return details.
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% with descriptions for all 3 parameters (page, pageSize, orderBy). The tool description adds no extra parameter context, meeting the baseline of 3.
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 'List all saved reports', specifying the verb and resource. While it doesn't explicitly distinguish from siblings like get_website_reports, the name and verb imply a general listing of reports, which is distinct from single-report retrieval or other operations.
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 on when to use list_reports versus alternatives like get_website_reports or run_report. The description doesn't mention context, prerequisites, or exclusions, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_teamsC
List all teams
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based) | |
| pageSize | No | Results per page (default 10) | |
| query | No | Search query to filter teams | |
| orderBy | No | Field to order by (e.g. 'name', 'createdAt') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like pagination, read-only nature, or authentication requirements, but it only states 'List all teams' without any additional behavioral context.
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 short sentence, which is concise, but it is too minimal to provide sufficient guidance. It could be restructured to include more value without extra 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?
Given the tool has 4 parameters and no output schema or annotations, the description is severely inadequate. It does not explain what the output contains, pagination behavior, or any side effects, leaving the agent underinformed.
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?
Input schema descriptions cover all 4 parameters fully (100% coverage), so the description need not repeat them. However, it does not explain how parameters relate to the tool's behavior, but this is acceptable given 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?
Description clearly states the action (list) and resource (teams), making the tool's purpose understandable. However, it does not differentiate from sibling list tools like list_users or list_websites, missing a chance to provide more specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_my_teams or other list tools. The description provides no context about typical use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_team_usersC
List all members of a team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID | |
| page | No | Page number (1-based) | |
| pageSize | No | Results per page | |
| query | No | Search query to filter members |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It claims 'List all members', but the schema includes pagination params (page, pageSize), implying it may not return all at once. No mention of auth, rate limits, or return format.
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?
One sentence is concise but under-specified. It earns its place but could be more informative without being wordy.
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?
No output schema, no annotations, and a minimal description. The tool supports pagination and search (query param), yet this is not mentioned. Incomplete for a tool with 4 parameters.
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 baseline is 3. The description adds no extra meaning beyond the param descriptions 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 'List all members of a team' uses a specific verb and resource, clearly distinguishing it from sibling tools like list_teams (lists teams) and list_users (lists all users).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like add_team_user or get_team_user. The description lacks any context about appropriate usage or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_team_websitesB
List all websites that belong to a team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID | |
| page | No | Page number (1-based) | |
| pageSize | No | Results per page | |
| query | No | Search query to filter websites |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It does not disclose whether the tool is read-only, requires authentication, or returns paginated results. The schema suggests pagination but the description omits this behavior entirely.
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 redundancy. It is concise but could be slightly more informative without becoming verbose.
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 4 parameters and no output schema, the description is too sparse. It fails to mention pagination behavior, result format, or any limitations. For a list tool, more context is needed to ensure correct 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?
Schema description coverage is 100%, so parameters are already documented. The description adds no extra meaning beyond what the schema provides. For example, it does not clarify that query is optional or explain pagination dynamics.
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 (list) and resource (websites) with a specific scope (by team). It implicitly distinguishes from sibling tools like list_websites (which likely lists all websites) and get_website (single website).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., list_websites). It lacks any context about prerequisites, order of operations, or situations where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersC
List all users (admin only)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based) | |
| pageSize | No | Results per page (default 10) | |
| query | No | Search query to filter users | |
| orderBy | No | Field to order by (e.g. 'username', 'createdAt') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only mentions admin access but fails to specify pagination, default page size, search behavior, or ordering defaults. The input schema has 4 parameters, but the description does not explain their interaction or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (5 words) and front-loaded with purpose and constraint. No wasted words. However, it could be slightly expanded to include key usage hints without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too sparse for a tool with 4 parameters. It doesn't explain return format, pagination behavior, or how parameters interact. For a listing tool with many siblings, more context is needed to guide correct 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 coverage is 100% (all parameters described in schema). The baseline is 3. The description adds no additional meaning beyond the schema, but does not need to since the schema is complete. However, the description could have summarized parameter usage (e.g., 'supports pagination and search').
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 ('List') and resource ('users') and includes an access constraint ('admin only'). However, it does not differentiate from sibling tools like 'get_user' (single user) or 'list_team_users' (team-scoped users).
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 only usage guideline is 'admin only', which is a prerequisite. There is no guidance on when to use this tool versus alternatives (e.g., filter scenarios) or when not to use it. Sibling tools for listing/reporting suggest multiple options, but no differentiation is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_websitesB
List all websites tracked in Umami
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based) | |
| pageSize | No | Results per page (default 10) | |
| query | No | Search query to filter websites | |
| orderBy | No | Field to order by (e.g. 'name', 'domain') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose pagination behavior, default page size, rate limits, or read-only nature. Lacks information beyond input schema.
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?
Single sentence, no redundancy. However, it sacrifices necessary detail for brevity, resulting in incompleteness.
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?
No output schema and minimal description. Given 4 parameters (pagination, filtering, ordering), the description should explain default behavior and return value structure.
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% (all 4 parameters documented). Description adds no additional meaning beyond 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 action ('List') and resource ('all websites tracked in Umami'), distinguishing it from sibling list tools like list_reports or list_team_websites.
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 on when to use this tool versus alternatives (e.g., get_website for a single website). Does not mention prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_team_userB
Remove a user from a team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID | |
| userId | Yes | User UUID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and the description does not disclose any behavioral traits such as destructiveness, reversibility, error handling (e.g., user not found), or side effects. The agent has no insight beyond the name.
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?
Single sentence is concise and front-loaded with the action. While minimal, it does not contain unnecessary words. Could be slightly more informative without losing conciseness.
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?
Tool has simple parameters and no output schema. The description is adequate for a straightforward removal but lacks details like return value or confirmation, which would be helpful given no annotations.
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?
Input schema covers 100% of parameters with descriptions 'Team UUID' and 'User UUID to remove'. The description adds no extra meaning, so 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?
Description 'Remove a user from a team' clearly identifies the action (remove) and resource (user from team), distinguishing it from sibling tools like add_team_user or update_team_user.
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 on when to use this tool vs alternatives (e.g., update_team_user) or prerequisites (e.g., user must be on team). The description is too minimal to provide usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_team_websiteB
Remove a website from a team
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID | |
| websiteId | Yes | Website UUID to remove from the team |
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 does not disclose whether the website is deleted or just unlinked, nor does it mention any side effects, required permissions, or reversibility.
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 short sentence with no wasted words. It is appropriately sized and front-loaded.
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 required string parameters, no output schema), the description is minimally adequate. However, it lacks any note on the outcome of the removal, which would be helpful for a complete understanding.
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 each parameter described as UUIDs. The description adds no extra meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource structure: 'Remove a website from a team'. It clearly distinguishes from sibling tools like add_team_website (opposite) and list_team_websites (listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It is a mere statement of what the tool does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_websiteB
Reset a website by removing all its analytics data (irreversible)
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID to reset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes the operation is irreversible, which is key behavioral info. However, with no annotations, it fails to disclose auth needs, impact on other data, or confirmation steps.
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?
Single sentence with no fluff. Efficient, though could incorporate more detail without losing conciseness.
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?
Adequate for a destructive one-parameter tool, but could detail what happens to associated data or user permissions.
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?
Only one parameter (websiteId) with full schema coverage. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'reset' and the resource 'website by removing all its analytics data', and highlights irreversibility, distinguishing it from siblings like delete_website.
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 on when to use this tool versus alternatives such as delete_website or other update tools. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_reportB
Execute a report by type and get results (funnel, retention, utm, goals, insights, revenue, journey, attribution)
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Report type to run | |
| websiteId | Yes | Website UUID | |
| parameters | Yes | Report-specific parameters (varies by type) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only says 'execute' and 'get results', which implies a read/computation operation, but does not specify side effects, idempotency, rate limits, or whether it modifies data. This is insufficient for a tool that executes reports.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 18 words, which is efficient. It front-loads the action and resource. However, the long list of types could be structured better (e.g., bulletized) for readability, but overall it is 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 has 3 parameters, one nested object, and 8 enum values, with no output schema, the description is lacking. It does not explain the result format, error handling, or performance implications. The tool executes reports, so more detail on outputs and potential delays is needed.
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% for all three parameters. The description adds no significant meaning beyond the schema; it repeats the enum values for 'type' and notes that 'parameters' vary by type. Baseline 3 is appropriate as schema already provides clear parameter 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 (execute), the resource (report by type), and lists all supported types (funnel, retention, utm, goals, insights, revenue, journey, attribution). It distinguishes from sibling tools like create_report or get_report by specifying execution and retrieval of results.
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 explicit guidance on when to use this tool versus alternatives like get_report or list_reports. It implicitly suggests usage for executing reports by type but lacks context on prerequisites or scenarios where other tools are more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_eventB
Send a custom event or pageview to Umami (useful for server-side tracking)
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID (used as the 'website' field in payload) | |
| hostname | Yes | Hostname of the site (e.g. 'example.com') | |
| url | Yes | URL path (e.g. '/checkout') | |
| eventName | No | Custom event name (omit for pageview) | |
| eventData | No | Custom event data as key-value pairs | |
| referrer | No | Referrer URL | |
| language | No | Browser language (e.g. 'en-US') | |
| title | No | Page title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'Send', implying mutation, but it does not mention side effects (e.g., whether an event is recorded, idempotency, required permissions, rate limits, or error behavior). This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, making it highly concise. It is front-loaded with the primary action and resource. However, it could be slightly more structured by separating the usage context (e.g., a brief note about alternatives), but it remains 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?
Given the lack of an output schema and the presence of 8 parameters (with nested objects), the description is incomplete. It does not explain what the tool returns (e.g., success message, event ID) or address error handling. For a data-sending tool, this is a significant gap.
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% description coverage, so the baseline is 3. The description adds little beyond stating 'custom event or pageview'; it does not clarify that 'eventName' is optional for pageviews (though the schema does). It adds no syntax or format details 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 uses the specific verb 'Send' and clearly identifies the resource as 'a custom event or pageview to Umami', explicitly stating its utility for server-side tracking. It distinguishes this tool from sibling tools like 'batch_events' (for batching) and 'get_events' (for retrieval) by focusing on a single submission action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a contextual hint ('useful for server-side tracking') suggesting when to use it (i.e., when client-side tracking is not feasible), but it does not explicitly state when to use this tool versus alternatives like 'batch_events' or 'get_events'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_websiteB
Transfer website ownership to another user
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID to transfer | |
| userId | Yes | Target user UUID to transfer ownership to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It only states 'transfer', implying mutation, but omits details on permissions, reversibility, side effects (e.g., what happens to the current owner's access), or success/failure conditions.
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, direct sentence with no unnecessary words. It efficiently communicates the purpose.
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 simple mutation with two parameters and no output schema, the description is minimally adequate. However, it lacks behavioral context that would help an agent assess suitability, such as confirmation requirements or side effects.
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% with clear descriptions of both parameters (websiteId and userId). The description adds no additional meaning beyond what the schema already provides, so baseline score 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 verb 'transfer' and the resource 'website ownership', specifying the action is to another user. It effectively distinguishes from sibling tools like delete_website or update_website.
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 provided. The description does not specify when to use this tool versus alternatives, nor any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_my_passwordB
Update the current user's password
| Name | Required | Description | Default |
|---|---|---|---|
| currentPassword | Yes | Current password | |
| newPassword | Yes | New password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states 'Update' without detailing side effects like session invalidation, password strength requirements, or rate limiting, which is critical for a security-sensitive 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 a single, efficient sentence with no fluff. For a simple tool, it is appropriately sized and front-loaded with the verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should provide more context about security, behavior, and return values. It is too minimal to fully inform an agent about this sensitive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter names and descriptions ('Current password', 'New password'). The description adds no additional semantic value, meeting the baseline of 3.
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 'Update' and the specific resource 'the current user's password', making the purpose unambiguous. It distinguishes itself from sibling tools like 'update_user' by specifying it's for the current user's password only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as 'update_user' (which might also update passwords). No prerequisites or use cases are mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_reportC
Update an existing saved report
| Name | Required | Description | Default |
|---|---|---|---|
| reportId | Yes | Report UUID | |
| websiteId | No | Website UUID | |
| name | No | Report name | |
| type | No | Report type | |
| description | No | Report description | |
| parameters | No | Report-specific parameters (JSON object) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It only says 'update', but does not explain what happens if the report doesn't exist, whether partial updates are supported, what side effects occur, or if authentication is required. The description is insufficient for a mutation 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 a single concise sentence without fluff. However, it could be more structured with clear sections, but for such a simple tool it is acceptable.
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 6 parameters including a nested object, no output schema, and no annotations, the description is too brief. It lacks information about return values, error scenarios, or the effect of the parameters on the update. The description should provide more context for an agent to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all parameters. The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate 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 action (update) and the resource (existing saved report). It distinguishes from siblings like create_report or delete_report. However, it lacks detail on what aspects can be updated, which the schema covers partially.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create_report or run_report. The description does not mention prerequisites, when not to use it, or how to choose between update and other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_teamB
Update a team's name
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID | |
| name | Yes | New team name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
As no annotations are provided, the description carries the full burden. It only states 'Update' implying mutation, but lacks details on permissions, reversibility, or side effects.
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?
Single sentence with no extraneous information. Efficient and to the point.
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 update with two parameters, the description is adequate but could mention return value or confirmation.
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% with descriptions for both parameters. The description adds no extra meaning beyond what the schema 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 'Update a team's name' clearly states the action (update) and the specific resource (team's name). It distinguishes from sibling tools like create_team, delete_team, and list_teams.
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 on when to use this tool versus alternatives (e.g., when to use update_team vs. create_team or delete_team). No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_team_userB
Update a team member's role
| Name | Required | Description | Default |
|---|---|---|---|
| teamId | Yes | Team UUID | |
| userId | Yes | User UUID | |
| role | Yes | New role: 'team-owner' or 'team-member' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behaviors like permissions or side effects. It only states 'update', missing details on idempotency or what happens on role change to same 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?
A single, clear sentence with no redundant information. Efficient for a simple 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?
For a simple mutation with no output schema, the description is adequate but minimal. Missing behavioral context, making it slightly less 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?
Input schema has 100% description coverage, so baseline is 3. The description adds no extra meaning beyond schema, but schema fields are self-explanatory.
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 'Update a team member's role' uses a specific verb and resource, clearly distinguishing it from sibling tools like 'add_team_user' and 'remove_team_user'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., add_team_user, remove_team_user) or any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_userB
Update a user's username, password, or role (admin only)
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | User UUID | |
| username | No | New username | |
| password | No | New password | |
| role | No | New role: 'admin' or 'user' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose side effects. It fails to mention potential impacts (e.g., session invalidation on password change, immediate effect of role change, atomicity of updates). The 'admin only' note is helpful but incomplete.
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?
Single sentence with clear front-loaded verb and resource, followed by a concise list of fields and a critical constraint. No filler or redundant content.
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?
Tool has 4 parameters and no output schema, yet the description omits return value, error conditions, and partial update behavior. For a mutation tool with security implications, more completeness is expected to guide correct 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 descriptions cover 100% of parameters individually. The description adds value by summarizing the parameters and explicitly noting the admin restriction, which is not fully captured in the enum-less schema. This aids agent understanding beyond raw 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?
Description clearly states action (update) and resource (user), specifies modifiable fields (username, password, role), and includes a restriction (admin only). This distinguishes it from sibling tools like update_team_user or update_my_password.
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 on when to use vs alternatives, no conditions or prerequisites beyond 'admin only'. Does not explain when not to use or provide context for choosing this tool over similar ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_websiteC
Update an existing website's configuration
| Name | Required | Description | Default |
|---|---|---|---|
| websiteId | Yes | Website UUID | |
| domain | No | New domain | |
| name | No | New display name | |
| shareId | No | Share ID (set to null to remove) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully convey behavioral traits. It only says 'update configuration' without disclosing idempotency, partial update behavior, permissions required, or any side effects. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise, but lacks necessary detail. It is not overly verbose, but the brevity compromises informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and no output schema or annotations, the description should provide more context about the update operation, such as constraints or effects. It fails to sufficiently equip an agent to invoke the tool 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% with all parameters documented in the input schema. The description adds no additional meaning beyond what the schema already provides for 'websiteId', 'domain', 'name', and 'shareId'.
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 'Update an existing website's configuration', specifying the verb 'update' and the resource 'existing website's configuration'. This distinguishes it from siblings like 'create_website' or 'delete_website'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use it, or comparisons to sibling tools like 'reset_website' or 'create_website'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_authB
Verify the current authentication token is valid
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose what happens when the token is invalid (e.g., returns false vs. throws error) or any side effects. With no annotations, the description bears full responsibility for transparency, but it is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that wastes no words. It 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?
For a zero-parameter, no-output-schema tool, the description is minimal but covers the core purpose. However, it could mention the return type or that the tool is read-only to be fully 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?
There are zero parameters, so the baseline is 4. The description adds no additional semantics beyond the schema, but none are needed given the absence of 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 verifies the current authentication token, using a specific verb and resource. However, it does not distinguish how this differs from similar tools like get_me, which might also involve auth state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Given the many sibling tools that likely require authentication, explicit usage context would be helpful.
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.
66 tool updates
v1.2.1- First observed
add_team_user - First observed
add_team_website - First observed
batch_events - First observed
create_report - First observed
create_team - First observed
create_user - First observed
create_website - First observed
delete_report - First observed
delete_team - First observed
delete_user - First observed
delete_website - First observed
get_active_visitors - First observed
get_daterange - First observed
get_event_data_events - First observed
get_event_data_fields - First observed
get_event_data_stats - First observed
get_event_data_values - First observed
get_event_series - First observed
get_event_values - First observed
get_events - First observed
get_me - First observed
get_metrics - First observed
get_my_teams - First observed
get_my_websites - First observed
get_pageviews - First observed
get_realtime - First observed
get_report - First observed
get_session - First observed
get_session_activity - First observed
get_session_data_properties - First observed
get_session_data_values - First observed
get_session_properties - First observed
get_session_stats - First observed
get_sessions - First observed
get_sessions_weekly - First observed
get_share - First observed
get_stats - First observed
get_team - First observed
get_team_user - First observed
get_user - First observed
get_user_teams - First observed
get_user_usage - First observed
get_user_websites - First observed
get_website - First observed
get_website_reports - First observed
heartbeat - First observed
join_team - First observed
list_reports - First observed
list_team_users - First observed
list_team_websites - First observed
list_teams - First observed
list_users - First observed
list_websites - First observed
remove_team_user - First observed
remove_team_website - First observed
reset_website - First observed
run_report - First observed
send_event - First observed
transfer_website - First observed
update_my_password - First observed
update_report - First observed
update_team - First observed
update_team_user - First observed
update_user - First observed
update_website - First observed
verify_auth
TDQS
Scored across 66 tools
Each tool targets a specific resource or action (e.g., get_events vs get_event_data_events, add_team_user vs add_team_website). The descriptions further clarify the purpose, leaving no ambiguity between similar-looking tools.
All tools follow a consistent snake_case verb_noun pattern (e.g., create_website, get_stats, remove_team_user). The verbs are uniform and predictable, making it easy to infer tool purpose from the name.
With 66 tools, the server is comprehensive but bordering on heavy. However, each tool covers a distinct aspect of the Umami analytics platform (user/team/website management, various analytics queries, events, reports, etc.), so the count is justified.
The tool set covers the full lifecycle of Umami resources (CRUD for websites, users, teams, reports) and provides extensive analytics querying (pageviews, events, sessions, realtime, metrics). No obvious gaps exist for the domain.
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
Read and edit GA4, Search Console and Google Tag Manager from any MCP client. 29 tools.
MCP server for Statsig API - interact with Statsig's feature flags, experiments, and analytics
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Unified.to MCP server — one API for 500+ B2B SaaS integrations across 28+ categories
Related MCP Servers
- AlicenseCqualityBmaintenanceMCP server exposing Umami analytics (Cloud + self-hosted)5MIT
- AlicenseAqualityDmaintenanceRead-only MCP server for Umami analytics. It talks to the Umami REST API directly over HTTP, supporting self-hosted and cloud setups.817MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Umami Analytics that provides read-only tools to query website stats, events, sessions, reports, and more, enabling natural language analytics queries.303MIT
- AlicenseAqualityBmaintenanceA security-first MCP server for Umami analytics (Cloud and self-hosted v3) enabling analytics, reporting, and administration with least privilege and credential-safe design.3217MIT
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/mikusnuz/umami-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server