Vee3
Server Details
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- Vee3io/vee3
- GitHub Stars
- 1
- Server Listing
- Vee3
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 78 of 78 tools scored. Lowest: 3.2/5.
Each tool has a distinct purpose, further clarified by group prefixes and clear descriptions. Within each group, tools perform different operations (e.g., domains.lookup vs. domains.whois vs. domains.rdap) with no ambiguity.
All tools follow a consistent group.tool_name pattern using snake_case. The naming is predictable and uniformly applied across all groups.
78 tools is high, but the server aggregates multiple distinct API domains (11 groups). Each group has a reasonable number of tools, typically under 10, with TikTok having 17. The count reflects breadth, not bloat.
Each domain's tool set covers the primary expected operations (e.g., search, details, reviews, metrics, user info). There are no obvious gaps for read-only analytical use; features like posting are likely out of scope.
Available Tools
249 toolsclerk.add_domainAInspect
Add a custom domain to a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created domain with CNAME targets for DNS setup.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Domain hostname to add. | |
| proxy_url | No | Proxy URL when using a satellite domain behind a reverse proxy. | |
| is_satellite | Yes | Whether this is a satellite domain. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | No | Created Clerk domain from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the tool creates a domain, returns the created domain with CNAME targets, and notes a cost of 10 tokens. It does not discuss authentication requirements or failure modes, but it is transparent about the primary side effect and output.
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 four short sentences, each adding value: purpose, prerequisite/guidance, return info, and cost. No fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter creation tool with no annotations, the description covers the prerequisite (get_connected_accounts), key parameter behavior (clerk_instance_id), return value (CNAME targets), and cost. It doesn't explain is_satellite's full implications, but the schema covers the basics, and the output schema handles return format 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 descriptions cover all 4 parameters, so the baseline is 3. The description adds extra meaning for clerk_instance_id by clarifying the default-account behavior, which goes beyond the schema. It also clarifies proxy_url's role in satellite domain setups.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Add a custom domain to a connected Clerk instance' with a clear verb and resource. It also distinguishes itself by noting it returns CNAME targets for DNS setup, setting it apart from sibling tools like change_instance_domain or update_domain.
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?
Explicitly instructs to call clerk.get_connected_accounts first and explains how to use clerk_instance_id to target a specific connection or omit it for the default account. This provides clear context for when and how to use the tool, though it doesn't mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.ban_usersAInspect
Ban one or more Clerk users, preventing them from signing in.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated user summaries and total count.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | Yes | List of one or more Clerk user ids (user_...) to ban. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| users | No | Updated user summaries for all banned users. |
| total_count | No | Number of users that were banned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the effect (prevents sign-in), the return format (updated summaries and total count), a prerequisite (get_connected_accounts), and cost. It does not mention reversibility or auth requirements, but these are not critical for basic use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short, information-dense sentences covering the action, prerequisite, return value, and cost. Every sentence earns its place with no unnecessary filler.
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 an output schema exists and parameters are fully described, the description covers the essential behavioral aspects: effect, return, prerequisite, and cost. It could optionally mention that unban_users reverses the action, but it is complete enough for selecting and invoking 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%, and the description largely mirrors the schema's own parameter descriptions (e.g., clerk_instance_id). It adds minimal new meaning beyond what the schema already provides, so the baseline score of 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 tool bans one or more Clerk users and prevents them from signing in, which is a specific verb+resource combination. It distinguishes from sibling tools like clerk.unban_users and clerk.delete_user by focusing on the ban action and its immediate effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance to call clerk.get_connected_accounts first and explains how to target a specific connection or use the default account. It does not explicitly compare with alternatives like unban_users or delete_user, but the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.change_instance_domainAInspect
Change the primary or secondary home URL for a connected Clerk instance.
WARNING: Destructive operation — changing the instance domain invalidates active sessions and may cause brief downtime.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns whether Clerk accepted the domain change request.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| home_url | Yes | New home URL for the instance domain. | |
| is_secondary | No | When true, change the secondary domain instead of the primary. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| accepted | No | Whether Clerk accepted the domain change request. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the destructive nature, consequences (invalidates active sessions, brief downtime), and return meaning (whether Clerk accepted the request). It also mentions token cost. This goes beyond basic safety flags and gives the agent critical operational knowledge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with each sentence serving a purpose: purpose, warning, prerequisite/instructions, return value, and cost. No filler or redundant repetition of schema 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?
Given the tool's complexity, the description covers purpose, safety warning, prerequisite call, parameter targeting logic, and return semantics. With an output schema present, it does not need to detail return structure. The description is complete enough for an agent to invoke safely and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters clearly. The description adds no new parameter details beyond restating the clerk_instance_id guidance already present in the schema. Baseline 3 is appropriate since the schema carries the semantic weight.
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 opens with a specific verb+resource: 'Change the primary or secondary home URL for a connected Clerk instance.' This clearly distinguishes it from sibling domain tools like clerk.update_domain or clerk.add_domain by focusing on the connected instance's home URL.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it warns that this is destructive, instructs to call clerk.get_connected_accounts first, and explains how to target a specific connection via clerk_instance_id. However, it does not explicitly state when not to use it or name alternative tools for domain management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.count_usersAInspect
Return the total number of users in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Cheaper than listing users when you only need the total count.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional filter query forwarded to Clerk (email, phone, username, or external id). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_count | No | Total number of users in the Clerk application. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses a concrete behavioral trait: 'Cost = 2 tokens' and implies performance trade-offs (cheaper). However, it doesn't mention auth requirements or error conditions, which are common for Clerk tools, but for a simple count it's reasonably transparent.
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?
Three sentences, front-loaded with the primary purpose, followed by actionable usage steps and cost. Every sentence provides unique value with no padding.
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 (count operation, two optional params, output schema present), the description fully covers the essential guidance: prerequisite, default behavior, cost advantage, and parameter handling. It is complete and self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions already explain both parameters, but the tool description adds useful context: 'clerk_instance_id' targets a specific connection and omitting uses the default account, plus 'query' is for optional filtering. This enriches the meaning 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?
The description clearly states 'Return the total number of users in a connected Clerk application' with a specific verb and resource. It distinguishes itself from sibling tools like clerk.list_users by emphasizing it only returns a count, not the list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: 'Call clerk.get_connected_accounts first' is a clear prerequisite, and explains when to pass or omit clerk_instance_id. Also states a decision heuristic: 'Cheaper than listing users when you only need the total count' directly contrasts with the alternative clerk.list_users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_actor_tokenAInspect
Create an actor token that lets one user impersonate another in a connected Clerk application.
Sensitive — the returned token is a high-privilege secret that grants impersonation access; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Cost = 15 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) of the user being impersonated. | |
| actor_sub | Yes | Clerk user id (user_...) of the impersonating actor (maps to actor.sub). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| expires_in_seconds | No | Actor token lifetime in seconds (minimum 1). Defaults to 3600 (1 hour). | |
| session_max_duration_in_seconds | No | Maximum duration in seconds for the session created from this token (minimum 1). Defaults to 1800 (30 minutes). |
Output Schema
| Name | Required | Description |
|---|---|---|
| actor_token | No | Created Clerk actor token object from the Backend API. |
Tool Definition Quality
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 does an excellent job by flagging the token as a sensitive, high-privilege secret and warning against logging or exposing it. It also discloses the token cost and the prerequisite call to get_connected_accounts. It doesn't mention rate limits or error behavior, but those are less critical given the security warnings and output 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?
The description is concise and well-structured: a clear purpose statement, a bold security warning, a brief usage instruction, and a cost note. Every sentence serves a distinct purpose with no redundancy. The most important information (what the tool does) is 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 sensitivity and complexity (5 parameters, security implications), the description is remarkably complete. It covers purpose, prerequisite, security handling, cost, and connection selection. The output schema exists to explain return values, and the schema covers all parameters, so the description fills the remaining gaps 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% description coverage, with each parameter already explained in detail (e.g., user_id, actor_sub, clerk_instance_id). The description adds marginal value beyond the schema, such as reinforcing the use of clerk_instance_id for targeting a specific connection. Since the schema does the heavy lifting, 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 tool's specific function: creating an actor token for impersonation. The verb 'Create' plus the resource 'actor token' and the purpose 'lets one user impersonate another' make it unambiguous. It also distinguishes this from sibling token tools like create_m2m_token or create_session_token by emphasizing impersonation.
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 clear usage context: it instructs the agent to call clerk.get_connected_accounts first and explains how to choose the connection via clerk_instance_id. While it does not explicitly name alternative tools to avoid, the prerequisite and connection targeting give solid practical guidance. Missing explicit 'when not to use' but enough context for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_admin_portal_link_tokenAInspect
Create an admin portal link token in a connected Clerk instance.
Sensitive — the returned token is a single-use deep-link secret; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Cost = 15 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| scopes | No | Optional scopes for the link (for example "admin_portal:read"). | |
| it_contact_id | No | Optional opaque IT contact reference for the link. | |
| organization_id | No | Optional organization id (org_...) to scope the admin portal link. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| seconds_until_expiration | No | Link token lifetime in seconds (default 3600, max 86400). |
Output Schema
| Name | Required | Description |
|---|---|---|
| admin_portal_link_token | No | Created admin portal link token from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but description carries burden well: highlights that the token is a sensitive single-use secret and warns against logging. Also discloses cost and prerequisite, adding useful context for safe invocation.
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?
Four concise sentences, each with distinct value: purpose, security warning, usage prerequisite, cost. Front-loaded, 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?
Given the high schema description coverage and presence of output schema, the description covers the key aspects: purpose, security, prerequisite, instance targeting, and cost. No major gaps for a token creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 5 params at 100%, so baseline is 3. The description adds meaningful guidance for clerk_instance_id (how to obtain via get_connected_accounts, default account behavior) 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?
Clearly states the tool creates an admin portal link token in a connected Clerk instance. Distinguishes from sibling token tools (actor, session, sign-in, m2m) by naming the specific resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisite: call clerk.get_connected_accounts first. Explains when to pass clerk_instance_id vs omit. No explicit alternatives, but the context is clear enough for this specialized token tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_allowlist_identifierAInspect
Add an identifier to the allowlist in a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created allowlist identifier summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| notify | No | When true, notify the user by email or SMS that they were added to the allowlist. | |
| identifier | Yes | Identifier to allowlist: email, wildcard domain (*@example.com), E.164 phone (+15555555555), or Web3 wallet address. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| identifier | No | Created allowlist identifier object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the prerequisite call, instance targeting behavior, that a summary is returned, and includes 'Cost = 8 tokens.' This goes beyond the schema. However, it omits potential edge behaviors (e.g., duplicate handling, required permissions), which a fully transparent description could include.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: purpose first, then prerequisite/parameter guidance, return value, and cost. Every sentence serves a functional purpose with no filler. The cost line is an efficient addition.
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 operation is simple, and the description covers purpose, prerequisite, instance selection, return, and cost. An output schema exists, so return details are covered. Minor gaps remain around when to choose this over blocklist tools and potential duplicate behavior, but overall it is sufficiently complete for a 3-parameter creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful context for clerk_instance_id by explaining when to pass it and the default behavior, and it stresses calling get_connected_accounts first. This nudges the score above baseline, though it does not elaborate on identifier or notify 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's action: 'Add an identifier to the allowlist in a connected Clerk instance.' The verb 'Add' and resource 'identifier to the allowlist' are specific, and the phrase 'allowlist' distinguishes it from the sibling create_blocklist_identifier tool. The mention of 'connected Clerk instance' scopes it appropriately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Call clerk.get_connected_accounts first' and explains how to use clerk_instance_id (pass to target a specific connection, omit for default). However, it does not explicitly state when to use this tool over alternatives (e.g., vs create_blocklist_identifier), so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_api_keyAInspect
Create an API key in a connected Clerk application.
Sensitive — the returned secret is a high-privilege credential; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the new API key summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable name for the new API key. | |
| claims | No | Custom claims to embed in tokens minted from this API key. | |
| scopes | No | Permission scopes to grant the API key. | |
| subject | Yes | Subject the API key is scoped to (user_... or org_...). | |
| key_type | No | API key type (typically "api_key"). | |
| created_by | No | User id to record as the creator of this API key. | |
| description | No | Optional description for the API key. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| seconds_until_expiration | No | Seconds from creation until the API key expires. |
Output Schema
| Name | Required | Description |
|---|---|---|
| api_key | No | Newly created Clerk API key from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description highlights that the 'returned secret is a high-privilege credential; do not log or expose it' — a valuable safety disclosure. It also states the return type and token cost. However, since no annotations are provided, the description does not mention permissions required, reversibility, or side effects beyond creation; it relies on the obvious 'create' semantics.
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 compact, with each section (action, sensitive warning, prerequisite, return, cost) serving a distinct purpose. Clear formatting with line breaks and bold makes it scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with zero annotations and 9 parameters, the description provides key context: sensitivity, prerequisite, instance selection, and return type. The output schema covers return details, and params are fully specified in schema. Missing alternative guidance is a minor gap, but overall sufficient.
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 already describes all 9 parameters with 100% coverage, so the description adds little beyond the 'clerk_instance_id' guidance already present in the schema. The description doesn't enrich parameter meanings 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?
Clearly states 'Create an API key in a connected Clerk application' — a specific verb and resource. Among many create_* siblings, it does not explicitly distinguish from token creation tools like create_m2m_token or create_session_token, but the target is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisite: 'Call clerk.get_connected_accounts first.' Also explains instance targeting: 'Pass clerk_instance_id to target a specific connection, or omit it to use the default account.' No mention of when to choose this over alternative credential-creation tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_blocklist_identifierAInspect
Add an identifier to the blocklist in a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Blocked identifiers cannot sign up or sign in. Returns the created blocklist identifier summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | Identifier to block: email, domain, E.164 phone (+15555555555), or Web3 wallet address. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| identifier | No | Created blocklist identifier object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the key behavioral consequence (blocked identifiers cannot sign up or sign in), states the return value (created blocklist identifier summary), and includes cost. It does not mention reversibility or idempotency, but for a create operation this is reasonably transparent.
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 efficient and well-structured: it opens with the purpose, then gives the prerequisite, targeting logic, behavioral effect, return value, and cost. Every sentence adds necessary information with no redundancy or 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?
For a tool with 2 parameters (1 required) and a rich schema, the description covers the full workflow: how to select the instance, what the operation does, and what is returned. The existence of an output schema means return details do not need to be expanded. The cost note also adds practical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already thoroughly documents both parameters. The description adds little beyond the prerequisite to call get_connected_accounts first, which is more usage guidance than parameter semantics. It does not enhance meaning of the parameters 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 the tool's action ('Add an identifier to the blocklist') and the specific resource ('blocklist identifier in a connected Clerk instance'). It distinguishes from sibling tools like create_allowlist_identifier by specifying the blocklist and the effect that blocked identifiers cannot sign up or sign in.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it explains the prerequisite to call clerk.get_connected_accounts first, and how to target a specific instance or default. It does not explicitly mention alternatives or exclusions, but the usage context is unambiguous. This is more than implied usage but lacks explicit alternative comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_email_addressAInspect
Create a new email address for a Clerk user.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created email address summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| primary | No | When true, set this email as the user's primary email address. | |
| user_id | Yes | Clerk user id (user_...) to retrieve or modify. | |
| verified | No | When true, the email address is created as verified. | |
| email_address | Yes | Email address to create for the user. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| email_address | No | Created Clerk email address summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return value ('Returns the created email address summary') and cost, and mentions a prerequisite call, but doesn't elaborate on side effects like verification emails or permissions. It provides some context but not rich 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?
The description is concise and well-structured: purpose sentence, prerequisite/instance guidance, return summary, and cost. Each sentence earns its place with no unnecessary 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?
Given the 5-parameter schema with 100% coverage and the presence of an output schema (mentioned but not shown), the description covers the critical flow: what it does, the required first call, instance selection, and return value. It could mention side effects or permissions, but overall it's sufficiently complete for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds a bit of context for clerk_instance_id (call get_connected_accounts first), but this is partly redundant with the schema description which already says 'Omit to use the default connected account.' No significant additional meaning beyond 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 creates an email address for a Clerk user with a specific verb and resource. While it doesn't explicitly differentiate from sibling tools like create_phone_number, the resource is unambiguous and the name reinforces the 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 gives clear usage context by instructing to call clerk.get_connected_accounts first and explaining how to handle clerk_instance_id (target a specific connection or omit for default). It doesn't explicitly mention when not to use it or alternatives, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_enterprise_connectionAInspect
Create a SAML or OIDC enterprise SSO connection in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the new enterprise_connection summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the enterprise connection. | |
| oidc | No | OIDC client configuration when provider uses OAuth. | |
| saml | No | SAML IdP configuration when provider uses SAML. | |
| active | No | Whether the connection is active. | |
| domains | Yes | Email domains that may use this connection. | |
| provider | Yes | Identity provider key (for example saml_custom or oidc_custom). | |
| organization_id | No | Clerk organization id (org_...) to link to this connection. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| custom_attributes | No | Custom attribute mappings from the IdP to user metadata. | |
| sync_user_attributes | No | Whether to sync user attributes on each sign-in. | |
| allow_organization_account_linking | No | Whether account linking via organization membership is allowed. | |
| disable_additional_identifications | No | Whether to block additional identifications for this connection. |
Output Schema
| Name | Required | Description |
|---|---|---|
| enterprise_connection | No | Newly created enterprise SSO connection. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the return value ('Returns the new enterprise_connection summary'), the cost, and the prerequisite of a connected application. It does not discuss permissions, side effects beyond creation, or behavior differences between SAML and OIDC providers, making it minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a purpose sentence, a usage sentence, a return sentence, and a cost line. No wasted words, and the most important info is 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?
Despite the 12-parameter schema, the description covers the essential usage flow (prerequisite, target selection) and return summary. The output schema handles return details, and parameter schema handles parameter docs. It lacks explicit alternative tool guidance, but overall it is sufficiently complete for an agent to invoke it correctly for the primary use case.
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 12 parameters with descriptions (100% coverage), so the baseline is 3. The description adds no extra parameter semantics beyond what the schema already provides; even the clerk_instance_id note is redundant with the schema text.
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 a specific action ('Create a SAML or OIDC enterprise SSO connection') with a target resource ('in a connected Clerk application'). This distinguishes it from related tools like update_enterprise_connection or test_run. The verb and resource are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear contextual guidance: call clerk.get_connected_accounts first and optionally pass clerk_instance_id, with a fallback to the default account. However, it does not explicitly compare to alternative tools (e.g., test_run, list, update), so it falls short of explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_enterprise_connection_test_runAInspect
Start an SSO test flow for an enterprise connection in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns a short-lived url that opens the IdP test flow.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | Short-lived URL to start the enterprise SSO test flow. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the return value ('short-lived url') and implies a test flow, but does not mention potential side effects such as creating a test run record (suggested by sibling list_enterprise_connection_test_runs) or any required permissions. This is useful 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?
Four sentences, front-loaded with the main purpose, and no wasted words. Each sentence adds meaning: purpose, prerequisite/parameter usage, return value, and cost. Ideal conciseness for a tool of this complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to detail return structure. It covers the prerequisite, how to target a connection, and the nature of the return. Could mention side effects or the connection_id format, but overall it is complete enough for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 applies. The description adds value by instructing to call get_connected_accounts first and clarifies when to pass clerk_instance_id, supplementing the schema's parameter descriptions and providing context 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: 'Start an SSO test flow for an enterprise connection in a connected Clerk application.' It uses specific verb+resource and distinguishes from siblings like create_enterprise_connection or list_enterprise_connection_test_runs by focusing on the test flow initiation.
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?
Provides explicit usage context with 'Call clerk.get_connected_accounts first' and explains how to choose the clerk_instance_id ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'). It lacks explicit when-not-to-use or alternative tool suggestions, but the clear prerequisite and parameter guidance make it a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_invitationsAInspect
Invite one or more email addresses to sign up for a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| invitations | Yes | One or more invitation objects. Each item requires email_address (string). Optional fields per item: role (string), redirect_url (string), public_metadata (object). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| invitations | No | Created Clerk invitation summaries. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses the operational cost (10 tokens) and the need for a connected account, but doesn't mention side effects like email sending, idempotency, or revocation options. This is useful 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?
Three concise sentences covering purpose, usage prerequisite/parameter guidance, and cost. Every sentence is informative with no filler or repetition.
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 an output schema present and a clear description covering the main flow (get_connected_accounts → choose instance → invite), this is complete enough for an agent to use correctly. It might mention alternative invitation tools, but that's 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?
Schema description coverage is 100%, so parameters are already well documented. The description reinforces the clerk_instance_id default behavior and the 'one or more' nature of invitations, but adds little beyond the schema's own 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 clearly states the tool's function with the specific verb 'invite' and resource 'email addresses to sign up for a connected Clerk application.' It distinguishes itself from sibling tools like create_organization_invitations by specifying the context of a connected Clerk application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit prerequisite ('Call clerk.get_connected_accounts first') and explains how to choose the clerk_instance_id parameter. While it doesn't name alternative tools or exclusions, the usage context is clear for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_jwt_templateAInspect
Create a new JWT template in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the new template summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Unique JWT template name. | |
| claims | Yes | JWT claims template as a JSON object. | |
| lifetime | No | Token lifetime in seconds (30–315360000). | |
| signing_key | No | Custom signing private key (required when custom_signing_key is true). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| signing_algorithm | No | Custom signing algorithm (required when custom_signing_key is true). | |
| allowed_clock_skew | No | Allowed clock skew in seconds (0–300). | |
| custom_signing_key | No | Whether to use a custom signing key and algorithm. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jwt_template | No | Newly created Clerk JWT template summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It states the return behavior ('Returns the new template summary') and the 10-token cost, but it does not discuss permissions, error conditions, or side effects beyond creating a template.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three brief paragraphs, each serving a clear purpose: purpose, prerequisite/connection guidance, and return/cost. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich input schema and an output schema, the description provides the essential prerequisite and connection targeting logic. It is complete for a create tool, though it could mention potential error cases or duplicate-name 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?
Schema coverage is 100%, so baseline is 3. The description adds meaningful semantics for clerk_instance_id ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'), which goes beyond the schema's 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 opens with a specific verb+resource: 'Create a new JWT template in a connected Clerk application.' This clearly states the tool's function and distinguishes it from sibling tools like update_jwt_template or delete_jwt_template.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call clerk.get_connected_accounts first and explains how to target a connection (via clerk_instance_id or default). This gives clear usage context, though it does not explicitly compare to alternatives like other token-creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_m2m_tokenAInspect
Create an M2M token in a connected Clerk instance.
Sensitive — the returned token is a high-privilege secret; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created M2M token.
Cost = 15 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| claims | No | Optional custom claims embedded in the token. | |
| token_format | No | Token format: "opaque" (default) or "jwt". | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| machine_secret_key | Yes | Machine secret key (msk_...) used to authenticate the create request. | |
| seconds_until_expiration | No | Token lifetime in seconds. | |
| min_remaining_ttl_seconds | No | For opaque tokens, reuse an existing token with at least this TTL remaining. |
Output Schema
| Name | Required | Description |
|---|---|---|
| m2m_token | No | Created M2M token from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description adds important behavioral context by flagging the token as 'high-privilege secret' and instructing not to log or expose it. It also discloses the 'Cost = 15 tokens' operational cost. However, it doesn't describe token lifecycle details like revocation, but the schema and sibling tools partially cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the purpose is stated in the first sentence, followed by a crucial security warning, usage steps, return value, and cost. Each sentence earns its place with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential aspects: what it creates, sensitivity handling, prerequisite steps, instance selection, and cost. The output schema exists and all parameters are documented, so the description doesn't need to explain return values in detail. It could expand on post-creation lifecycle (e.g., revocation), but overall it's adequate for 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?
All six parameters have descriptions in the schema (100% coverage), so the schema carries the semantic burden. The description largely restates clerk_instance_id guidance already in the schema, adding only the prerequisite call to get_connected_accounts. No new parameter-specific meaning is provided 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: 'Create an M2M token in a connected Clerk instance.' It names the specific resource type (M2M token) and context, but doesn't explicitly compare against sibling token-creation tools like create_actor_token or create_session_token, so it doesn't fully achieve sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear precondition: 'Call clerk.get_connected_accounts first.' It explains how to choose a connection with clerk_instance_id or omit it for the default, giving concrete usage context. It doesn't state when not to use it or list alternative tools, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_machineAInspect
Create a machine in a connected Clerk instance for machine-to-machine authentication.
Sensitive — the response may include a machine secret_key on creation; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Machine display name (1–255 characters). | |
| scoped_machines | No | Machine ids (mch_...) this machine may access (max 150). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| default_token_ttl | No | Default M2M token lifetime in seconds (minimum 1). |
Output Schema
| Name | Required | Description |
|---|---|---|
| machine | No | Created machine object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the disclosure burden. It warns that the response may include a sensitive secret_key, advising not to log or expose it, and notes the token cost. This is valuable context, though it could go further by mentioning permission requirements or idempotency.
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 and well-structured: it starts with the core purpose, then highlights the sensitive nature, prerequisites, and cost. Every sentence adds information without unnecessary bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers prerequisites, sensitive return value, and cost, and the output schema presumably handles return format. It does not mention potential errors or rate limits, but for a creation tool with rich schema and clear usage, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters with clear descriptions. The tool description adds only a hint about clerk_instance_id usage, which is helpful but does not significantly enrich parameter meaning beyond the schema's 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 verb and resource: "Create a machine in a connected Clerk instance for machine-to-machine authentication." It specifies the purpose (M2M auth) and distinguishes this from sibling tools like create_m2m_token (which creates a token, not a machine) and create_api_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use guidance by instructing to call clerk.get_connected_accounts first and explaining how to target a specific instance versus the default. It does not explicitly mention when not to use this tool or alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_machine_scopeAInspect
Create a machine scope so one machine can access another.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created machine scope.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| machine_id | Yes | Clerk machine id (mch_...) to retrieve or modify. | |
| to_machine_id | Yes | Target machine id (mch_...) to grant access to. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| machine_scope | No | Created machine scope from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the return value ('Returns the created machine scope') and the token cost, plus the prerequisite. However, it doesn't mention potential side effects beyond creation, error conditions, or permission 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?
Four concise sentences, front-loaded with the core purpose. Every sentence provides value, including the prerequisite, parameter guidance, return value, and cost. 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?
For a 3-parameter create tool with an output schema, the description covers the essential usage context: purpose, prerequisite, parameter selection, and return. It could mention error cases but is otherwise sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaningful context for the optional parameter clerk_instance_id, clarifying when to use it vs omit. This goes beyond the schema's basic field 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 clearly states a specific action ('Create a machine scope') with a clear resource and purpose ('so one machine can access another'). It distinguishes from siblings like create_machine or delete_machine_scope by clarifying this is about granting access between machines.
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?
Provides prerequisite guidance ('Call clerk.get_connected_accounts first') and explains the optional parameter selection (use clerk_instance_id for a specific connection or omit for default). It doesn't explicitly mention alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_oauth_applicationAInspect
Create a new OAuth application in a connected Clerk application (Clerk as IdP).
Sensitive — client_secret may be present for confidential clients; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the new OAuth application summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the new OAuth application. | |
| public | No | Whether this is a public OAuth client (no client secret; PKCE-capable). | |
| scopes | No | Space-delimited scopes (e.g. profile email public_metadata). | |
| redirect_uris | No | Allowed redirect URIs for the OAuth authorization flow. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| consent_screen_enabled | No | Whether to show the OAuth consent screen during authorization. |
Output Schema
| Name | Required | Description |
|---|---|---|
| oauth_application | No | Newly created Clerk OAuth application summary. |
Tool Definition Quality
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 reveals that client_secret may be present and should not be logged, that a prior call to get_connected_accounts is required, that omitting clerk_instance_id uses the default account, and that it returns an OAuth application summary. It also states the token cost. This goes beyond the schema and provides valuable safety and operational 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 four concise sentences with no filler. It is front-loaded with the purpose, then provides a security warning, a prerequisite, and the return value. Every sentence adds meaningful information and is structured logically.
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 (6 parameters, output schema present), the description covers the essential aspects: purpose, prerequisite, security, return value, and cost. It doesn't discuss error conditions or specific parameter combinations, but the high schema coverage and output schema mitigate the need. Overall, the description is sufficiently complete for an agent to use the 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?
Schema coverage is 100%, so the baseline is 3. The description adds value by clarifying the clerk_instance_id parameter behavior ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account') and by noting that client_secret may be present for confidential clients, which relates to the 'public' parameter. These insights complement the schema descriptions and aid the agent in parameter selection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Create a new OAuth application in a connected Clerk application (Clerk as IdP)'. This is a specific verb+resource combination that distinguishes it from sibling create_* tools like create_api_key or create_user. The mention of 'connected Clerk application' adds context that uniquely identifies this tool's 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 explicit usage guidance: 'Call clerk.get_connected_accounts first' and explains how to target a specific connection via clerk_instance_id or use the default. It also warns about sensitive data handling. While it doesn't explicitly discuss alternatives or when not to use, the clear prerequisite and operational instructions give strong context for when this tool should be invoked.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_organizationAInspect
Create a new organization in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the new organization summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Organization display name. | |
| slug | No | Optional URL-friendly slug for the organization. | |
| created_by | Yes | Clerk user id (user_...) of the user creating the organization. | |
| public_metadata | No | Optional public metadata as a JSON object. | |
| private_metadata | No | Optional private metadata as a JSON object. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| max_allowed_memberships | No | Optional maximum number of memberships allowed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization | No | Newly created Clerk organization summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the operation's mutation nature ('Create'), returns a summary, and notes a token cost. However, it does not mention side effects, idempotency, permission requirements, or error conditions, which are relevant for a create operation. The cost disclosure adds some value, but deeper behavioral context 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?
The description is brief and well-structured: a one-sentence purpose, a prerequisite and usage note, a return-value sentence, and a token cost. No wasted words; every sentence contributes essential information and is front-loaded with the primary action.
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 an output schema, so return details are covered. The description provides the key prerequisite of calling get_connected_accounts first and explains how to select an instance. For a create tool with 7 parameters, the schema fully documents inputs, and the description adds operational context (prerequisite, cost), making it sufficiently complete. It could mention failure modes or uniqueness constraints, but these are 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?
Schema description coverage is 100%, with every parameter individually described. The description reiterates the clerk_instance_id parameter's purpose but adds no new information beyond the schema. Since the schema fully documents parameters, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Create a new organization in a connected Clerk application.' It clearly identifies the resource (organization) and distinguishes it from sibling tools like create_organization_domain or create_organization_membership, avoiding ambiguity among the many create_* 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 explicitly instructs to call clerk.get_connected_accounts first, establishing a prerequisite. It also explains how to select the target connection via clerk_instance_id, with a fallback to the default account. This gives clear context for when and how to invoke the tool, though it doesn't elaborate on when not to use it or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_organization_domainAInspect
Add a domain to a Clerk organization.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created domain summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Domain name to add (for example example.com). | |
| verified | No | Whether the domain is verified. Defaults to true when omitted. | |
| enrollment_mode | No | Filter or set enrollment mode: manual_invitation, automatic_invitation, or automatic_suggestion. | |
| organization_id | Yes | Clerk organization id (org_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | No | Created organization domain summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses a prerequisite and the return value ('Returns the created domain summary'), but does not mention verification behavior, duplicate handling, or permission requirements. This adds useful context but is not exhaustive for a create 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?
Four sentences, each earning its place: purpose, prerequisite/guidance, return, and cost. It is front-loaded and concise with 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?
The description covers all essentials for a moderate-complexity tool: what it does, the prerequisite, how to handle connection targeting, and what it returns. With full schema coverage and an existing output schema, no significant information gaps remain.
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 valuable meaning for clerk_instance_id ('Pass to target a specific connection, or omit to use the default account'), going beyond the schema's explanation. This enrichment justifies a 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 opens with 'Add a domain to a Clerk organization,' a specific verb+resource that clearly defines the operation. It distinguishes itself from sibling tools like update/delete/list organization domains by using 'add' and specifying the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete prerequisite ('Call clerk.get_connected_accounts first') and clear guidance on targeting connections via clerk_instance_id or using the default account. While it lacks explicit exclusions or alternative tool mentions, it gives strong contextual instructions for when and how to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_organization_invitationsAInspect
Invite one or more email addresses to join a Clerk organization with specific roles.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the list of created invitation summaries.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| invitations | Yes | One or more invitation objects. Each item requires email_address (string) and role (string, e.g. org:admin, org:member). | |
| organization_id | Yes | Clerk organization id (org_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| invitations | No | Created invitation summaries. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral transparency burden. It does disclose the return value ('Returns the list of created invitation summaries') and the prerequisite workflow, plus a token cost. However, it omits key behavioral traits such as whether emails are sent, whether invitations expire, or any permission requirements. It implies a mutation but doesn't fully describe 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 four sentences, each earning its place: purpose, prerequisite, return type, and cost. It is front-loaded with the core action and avoids redundancy with the schema. There is no fluff or filler.
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 schema fully describes parameters and an output schema exists, the description covers the essential context: what the tool does, what to call first, what is returned, and cost. It lacks caveats about invitation behavior (e.g., email delivery, expiration) but is generally complete for an agent to use 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?
The schema already has 100% parameter description coverage, so the baseline is 3. The description adds value beyond the schema by explaining the workflow for clerk_instance_id: 'Pass clerk_instance_id to target a specific connection, or omit it to use the default account,' and explicitly instructs to call clerk.get_connected_accounts first. This clarifies the optional parameter's role in multi-account contexts.
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 a specific action: 'Invite one or more email addresses to join a Clerk organization with specific roles.' It names the resource (organization) and distinguishes this from sibling tools like clerk.create_invitations (general invitations) and clerk.create_organization_membership (adding existing users). The verb 'invite' and the scope 'organization' make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is for inviting email addresses to join an organization. It also gives a prerequisite instruction: 'Call clerk.get_connected_accounts first' and explains how to use clerk_instance_id. However, it does not explicitly name alternatives or state when not to use this tool, such as comparing to clerk.create_organization_membership for existing users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_organization_membershipAInspect
Add a user to a Clerk organization with a specified role.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created membership.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | Role to assign to the user in the organization (e.g. org:member, org:admin). | |
| user_id | Yes | Clerk user id (user_...) of the user to add. | |
| organization_id | Yes | Clerk organization id (org_...) to add the member to. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| membership | No | Created organization membership. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the return value ('Returns the created membership'), cost ('Cost = 10 tokens'), and prerequisite behavior (get_connected_accounts, default connection). Missing permission requirements and idempotency, but covers key operational 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?
Four concise sentences, front-loaded with purpose, followed by prerequisite, return, and cost. Every sentence earns its place; no redundancy or 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?
Given full input schema and an output schema, the description adds vital cross-tool dependency and default-instance behavior. It's sufficient for smooth invocation, though edge cases like existing memberships or admin permissions are not addressed.
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's note about clerk_instance_id primarily restates the schema's 'Omit to use the default connected account,' adding no new parameter-level meaning beyond reinforcing the prerequisite call.
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?
Opens with 'Add a user to a Clerk organization with a specified role' – a clear verb, resource, and scope. This distinguishes it from sibling tools like delete_organization_membership, update_organization_membership, and list_organization_memberships.
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?
Explicitly instructs to call clerk.get_connected_accounts first and explains how to handle clerk_instance_id (target specific connection vs. default). However, it doesn't explicitly mention when to prefer this over alternatives like create_organization_invitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_organization_permissionAInspect
Create a new organization permission in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the new permission summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Unique permission key. | |
| name | Yes | Permission display name. | |
| description | No | Permission description. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization_permission | No | Newly created organization permission summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It discloses that the tool creates a permission, returns a summary, and costs 10 tokens, and it clarifies the prerequisite call. However, it omits details about permissions required, potential conflicts, or error behavior. It adds some value but lacks rich 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 three short, focused sentences plus a cost line. The purpose is stated first, followed by prerequisite and targeting instructions, then the return value and cost. Every sentence earns its place, and there is zero 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?
Given the tool's moderate complexity (4 params, 2 required) and the presence of an output schema, the description adequately covers the purpose, prerequisite, connection targeting, return value, and cost. It doesn't enumerate output fields, but that is covered by the output schema. It is complete enough for an agent to select and invoke the tool correctly, though it could mention edge cases or authorization requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats the clerk_instance_id guidance already present in the schema ('from clerk.get_connected_accounts. Omit to use the default...'), adding no new semantic meaning. It also does not elaborate on name, key, or description beyond the schema's minimal descriptions. Thus the description adds minimal parameter semantics 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 states a specific verb and resource: 'Create a new organization permission in a connected Clerk application.' This clearly distinguishes it from sibling tools like create_organization_role or create_organization, as it targets 'organization permission' specifically. It is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by instructing to call clerk.get_connected_accounts first and how to target a connection via clerk_instance_id. It also explains the fallback to the default account. It doesn't explicitly state when not to use the tool or list alternatives, but the guidance is sufficient for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_organization_roleAInspect
Create a new organization role in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the new role summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Unique role key. | |
| name | Yes | Role display name. | |
| description | No | Role description. | |
| permissions | No | Permission keys to assign to the new role. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| include_in_initial_role_set | No | Whether to include this role in the initial role set. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization_role | No | Newly created organization role summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It adds value by disclosing the cost (10 tokens), the return value (new role summary), and the connection-selection behavior. It does not discuss failure modes or permissions, but the mutation is implied by 'Create' and the extra details go beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four terse, purposeful sentences: purpose, prerequisite/connection instruction, return value, and cost. Nothing is redundant or wasted, and the most important information is 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?
The description provides the essential operational context: prerequisite call, default vs. targeted connection, return summary, and cost. Combined with the full schema coverage and output schema, this is sufficiently complete for reliable invocation, though error/duplicate-key behavior is not mentioned.
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% description coverage for all six parameters, so the baseline is 3. The description only restates the clerk_instance_id behavior already present in the schema, adding no new parameter-level 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 uses a specific verb ('Create') and resource ('new organization role in a connected Clerk application'), making the tool's function unmistakable. It also clearly distinguishes this from sibling tools like create_organization_permission and update_organization_role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states a prerequisite: 'Call clerk.get_connected_accounts first.' It also clarifies how to target a specific connection vs. the default account. It does not enumerate alternatives, but the usage context is clear enough for an agent to execute correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_phone_numberAInspect
Create a phone number for a Clerk user.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created phone number summary.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| primary | No | Whether this should be the user's primary phone number. | |
| user_id | Yes | Clerk user id (user_...) to retrieve or modify. | |
| verified | No | Whether the phone number should be marked verified. Defaults to false. | |
| phone_number | Yes | Phone number in E.164 format (e.g. +15551234567). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| reserved_for_second_factor | No | Whether to reserve this number for multi-factor authentication. |
Output Schema
| Name | Required | Description |
|---|---|---|
| phone_number | No | Created Clerk phone number object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It discloses the creation action, prerequisite call, connection selection, return value, and token cost. However, it omits potential side effects beyond creation (e.g., whether the number becomes verified immediately, what happens if the number already exists) and any error conditions, leaving noticeable gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, four short lines, with the primary purpose stated first. Every sentence contributes essential information: function, prerequisite, return, and cost. There is no fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (6 params, mutation, no annotations), the description covers the core aspects: purpose, prereq, connection handling, return summary, and cost. The schema fully documents parameters and an output schema exists, so the description is largely complete. It could be improved by addressing common failure scenarios, but it is well-rounded for an MCP 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?
All six parameters are fully described in the schema (100% coverage), so the description does not need to explain each one. It adds value by linking clerk_instance_id to clerk.get_connected_accounts and clarifying the default behavior, but otherwise it repeats schema information. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create a phone number for a Clerk user,' clearly identifying the specific verb, resource, and target. This distinguishes it from sibling tools like create_email_address or create_user. The additional connection context reinforces the tool's 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?
It explicitly instructs to call clerk.get_connected_accounts first and explains how to target a specific connection or use the default. This is clear prerequisite and usage context. However, it does not explicitly mention when not to use this tool versus alternatives, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_redirect_urlAInspect
Add an allowed redirect URL to a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created redirect URL.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Redirect URL to allow for sign-in and sign-up flows. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| redirect_url | No | Created Clerk redirect URL from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the transparency burden. It discloses a cost ('Cost = 10 tokens') and return value ('Returns the created redirect URL'), but does not mention permissions, reversibility, or other side effects beyond the implicit mutation.
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 four succinct sentences, front-loaded with the core purpose. It includes token cost and return behavior without any wasteful or repetitive text.
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 two-parameter create tool with an output schema and full parameter descriptions, the description provides the necessary prerequisites and selection logic. It lacks comparative guidance against siblings but is otherwise 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 schema covers 100% of parameters, so the baseline is 3. The description reinforces the schema's guidance for clerk_instance_id but adds no new parameter-level detail beyond what the schema already states.
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 opens with a specific verb+resource: 'Add an allowed redirect URL to a connected Clerk instance.' This clearly distinguishes it from the many other create_* tools and states exactly what is being created.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to target a specific instance or use the default account. Without an explicit alternative or when-not-to-use, it stops short of the highest bar but offers clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_sessionAInspect
Create a new session for a Clerk user in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created session object with id, user_id, status, last_active_at, expire_at, client_id, created_at, and updated_at.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to create a session for. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Clerk session id (sess_...). |
| status | No | Current status of the session. |
| user_id | No | Clerk user id (user_...) that owns this session. |
| client_id | No | Clerk client id associated with this session. |
| expire_at | No | Unix timestamp in milliseconds when this session expires. |
| created_at | No | Unix timestamp in milliseconds when the session was created. |
| updated_at | No | Unix timestamp in milliseconds when the session was last updated. |
| last_active_at | No | Unix timestamp in milliseconds of the last activity on this session. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the transparency burden. It does disclose the cost (10 tokens) and the return fields, but it does not mention permissions, side effects, or failure modes. This is a partial disclosure that leaves important behavioral aspects undocumented.
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 four sentences with no filler. The purpose is front-loaded, followed by a prerequisite, parameter guidance, return fields, and cost. Each sentence earns its place and the structure is clean and scannable.
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 low-complexity create tool with full schema and an output schema, the description provides the essential usage context (prerequisite, parameter behavior, return payload). It lacks error-handling notes or side-effect warnings, but it is reasonably complete given the tool's simplicity and the existence of an output schema.
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 already covers both parameters with meaningful descriptions (user_id format, clerk_instance_id default behavior). The description adds a note to call get_connected_accounts first, but this is more of a usage guideline than additional parameter semantics. With 100% schema coverage, the baseline is 3, and the description does not significantly exceed that.
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 opens with 'Create a new session for a Clerk user in a connected Clerk application,' which clearly states the verb, resource, and scope. It distinguishes itself from sibling tools like clerk.create_session_token by focusing on the session object rather than a token.
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 an explicit prerequisite ('Call clerk.get_connected_accounts first') and explains when to pass clerk_instance_id versus omit it for the default account. It does not explicitly state when not to use this tool, but the context is clear enough for selection among similar create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_session_tokenAInspect
Create a session token (JWT) for an active session in a connected Clerk application. Optionally pass template_name to create the token from a named JWT template. Sensitive — the returned JWT grants access on behalf of the user; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns a jwt field containing the signed token.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Clerk session id (sess_...) to retrieve or modify. | |
| template_name | No | Optional JWT template name. When set, the session token is created from that template. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jwt | No | Signed JWT for the session. Treat as a secret — do not log. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It discloses the sensitive nature of the JWT, warns against logging/exposing it, specifies the return field (jwt), and mentions cost. This goes beyond the schema and provides important behavioral context, though it doesn't cover error cases or permissions.
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?
Four short sentences: purpose, security warning, usage prerequisite + parameter guidance, return value + cost. Every sentence serves a purpose, well-structured 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?
With output schema present, return value details are covered. The description covers prerequisites, security, parameter targeting, and cost. It's sufficiently complete for a token-creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description adds a small amount of value by clarifying the prerequisite call and the default behavior for clerk_instance_id, but largely repeats the schema's info. It doesn't add detail for session_id beyond 'active session'.
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?
States it creates a session token (JWT) for an active session in a connected Clerk application. This is a specific verb (create), resource (session token), and scope (active session, connected app), distinguishing it from sibling token-creation tools like create_sign_in_token or create_actor_token.
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?
Gives clear context: call clerk.get_connected_accounts first, and explains how to target a specific connection with clerk_instance_id or fall back to default. It doesn't explicitly name alternatives, but the context is sufficient for an agent to know when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_sign_in_tokenAInspect
Create a sign-in token for a user in a connected Clerk application. The token can be used once to sign the user in without credentials (magic-link style).
Sensitive — the returned token is a high-privilege secret that grants sign-in access; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Cost = 15 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| expires_in_seconds | No | Token lifetime in seconds (minimum 1). Defaults to 2592000 (30 days). |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign_in_token | No | Created Clerk sign-in token object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it calls out the token as a high-privilege secret, one-time use, and warns against logging or exposing it. This is valuable behavioral context beyond the schema, though it omits potential auth prerequisites 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?
Four short, purposeful sentences: purpose, sensitivity warning, usage instruction, and cost. The description is front-loaded with the core action and contains no redundant or filler 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?
Description covers purpose, sensitivity, prerequisite, and connection selection. Combined with the complete schema and output schema, it gives enough context to invoke correctly. Missing error cases or permission requirements, but these are not critical for a token-creation action.
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 repeats the clerk_instance_id usage from the schema ('omit to use the default') and adds the get_connected_accounts prerequisite, but provides no new parameter-level meaning beyond the schema's own 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?
Description states a specific verb ('Create a sign-in token') and resource ('user in a connected Clerk application'), further clarifying that the token enables credential-free sign-in (magic-link style) and is one-time use. This clearly distinguishes it from sibling tools like create_session_token or create_actor_token.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description gives an explicit prerequisite ('Call clerk.get_connected_accounts first') and precise instructions for targeting a connection (pass clerk_instance_id or omit for default). It does not explicitly cite alternatives or exclusions, but the context strongly implies when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_svix_appAInspect
Create a Svix app and associate it with a connected Clerk application for webhook delivery.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns a temporary svix_url from Clerk.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svix | No | Svix app response from the Clerk Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the tool returns a temporary svix_url and mentions cost, but does not discuss side effects, reversibility, or permissions. It adds some useful context beyond the name, but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, each adding value: purpose, prerequisite, parameter guidance, return value, and cost. No redundant or unnecessary text.
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 (one optional param) and has an output schema. The description covers purpose, usage prerequisite, parameter behavior, and return value. It is largely complete, though it could elaborate on what 'temporary' means or clarify alternatives like create_svix_dashboard_url.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema's parameter description already includes the source (clerk.get_connected_accounts) and the default behavior. The tool description repeats this information without adding new meaning, so it meets the baseline but does not exceed it.
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 creates a Svix app and associates it with a Clerk application for webhook delivery, using a specific verb and resource. It distinguishes itself from sibling tools like create_svix_dashboard_url and delete_svix_app.
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 instructs to call clerk.get_connected_accounts first and explains how to target a specific connection via clerk_instance_id or use the default. It does not explicitly mention alternatives or exclusions, but provides clear contextual usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_svix_dashboard_urlAInspect
Generate a temporary URL for accessing the Svix management dashboard for a connected Clerk application.
Sensitive — the returned URL grants access to webhook configuration; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns svix_url.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svix | No | Temporary Svix dashboard URL from the Clerk Backend API. |
Tool Definition Quality
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 adds valuable context: the URL is sensitive ('do not log or expose it'), grants access to webhook configuration, and is temporary. This goes beyond the basic schema and alerts the agent to handle the output carefully, though it does not mention details like expiration time or failure modes.
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 four sentences long and every sentence earns its place: it states the purpose, warns about sensitivity, gives usage prerequisites, specifies the return value, and notes the token cost. It is front-loaded with the main verb and resource, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the absence of annotations, the description is complete enough for an agent to safely invoke the tool. It covers what is returned (svix_url), the prerequisite call, the optional parameter, and the sensitive nature of the output. The presence of an output schema reduces the need to describe the return format in detail.
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 already documents clerk_instance_id with its origin (from get_connected_accounts) and default behavior (omit to use default). The description repeats this information, adding no new semantic detail. Since schema coverage is 100%, the 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 uses a specific verb and resource: 'Generate a temporary URL for accessing the Svix management dashboard for a connected Clerk application.' This clearly states what the tool does and distinguishes it from other create token tools in the sibling list, such as clerk.create_actor_token or clerk.create_admin_portal_link_token, by focusing on the dashboard URL.
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 clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to choose the target connection ('Pass clerk_instance_id... or omit it to use the default account'). This gives actionable usage context, though it does not explicitly name alternative tools or state when not to use this tool, which would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_userAInspect
Create a user in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| password | No | Optional password. Omit to create a user without a password. | |
| last_name | No | Optional last name. | |
| first_name | No | Optional first name. | |
| email_address | Yes | Primary email address for the new Clerk user. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Created Clerk user object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full transparency burden. It discloses the prerequisite call and connection targeting, but omits important behavioral details such as email verification requirements, duplicate email handling, password policy, or permission requirements. These gaps are significant for a create 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 three sentences, each adding distinct value: purpose, prerequisite/targeting, and cost. There is no redundancy or filler.
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 5-parameter create tool with an output schema, the description covers purpose, prerequisite, and targeting logic. It does not explicitly mention potential error cases or uniqueness constraints, but the schema adequately covers parameter details, making the description reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is already described. The description adds contextual value by explaining that clerk_instance_id comes from clerk.get_connected_accounts and that omitting it uses the default account, which augments the schema's basic 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 clearly states 'Create a user in a connected Clerk application,' using a specific verb and resource. This distinguishes it from sibling create tools like create_email_address or create_invitations by focusing on the user object itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call clerk.get_connected_accounts first and explains how to use clerk_instance_id to target a specific connection or default to the default account. This provides clear contextual usage, though it does not mention explicit alternatives or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.create_waitlist_entriesAInspect
Add one or more email addresses to the waitlist in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the created or existing waitlist entries.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| waitlist_entries | Yes | One or more waitlist entry objects. Each item requires email_address (string). Optional fields per item: notify (boolean; whether to notify the user their email was added; defaults to true). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| waitlist_entries | No | Created or existing Clerk waitlist entry summaries. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses the return behavior ('Returns the created or existing waitlist entries'), a prerequisite call, and a cost token amount. It does not mention side effects beyond adding, but for a simple creation tool this is reasonable. It also implies idempotency by returning existing entries.
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 four sentences, with the main action front-loaded and no padding. Each sentence earns its place: purpose, prerequisite/instance selection, return value, and cost. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 params, full schema descriptions, output schema present), the description covers all critical information: what it does, prerequisite, how to target an instance, return value, and cost. It lacks explicit alternatives but that is not essential for completeness here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have detailed descriptions. The tool description only echoes the schema's guidance for clerk_instance_id and provides no new meaning for waitlist_entries beyond what the schema already states. Therefore, it adds no value beyond the 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 opens with a specific verb and resource: 'Add one or more email addresses to the waitlist in a connected Clerk application.' This clearly distinguishes the tool from sibling tools like list_waitlist_entries, invite_waitlist_entry, reject_waitlist_entry, and delete_waitlist_entry by focusing on creation/addition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage guidance: 'Call clerk.get_connected_accounts first' and 'Pass clerk_instance_id to target a specific connection, or omit it to use the default account.' This gives clear context on prerequisites and parameter selection, though it does not explicitly name alternatives or when-not-to-use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_allowlist_identifierAInspect
Remove an allowlist identifier by id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns a deleted confirmation.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier_id | Yes | Allowlist or blocklist identifier id (alid_... or blid_...) to delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted_identifier | No | Clerk deleted-object payload confirming removal. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return type ('Returns a deleted confirmation') and the token cost (8 tokens). The word 'Remove' makes the destructive nature clear, and the prerequisite call provides useful behavioral context. It does not cover irreversibility or permissions, but for a simple identifier deletion, this is adequate.
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 and front-loaded: purpose, prerequisite, parameter usage, return value, and cost are each covered in short, clear sentences. Every sentence provides distinct value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description need not explain return values beyond the confirmation statement. It covers the prerequisite connection step and optional parameter handling, which are important for correct use. The cost note adds completeness. Minor omission is lack of error behavior, but overall it is sufficient for a delete tool with fully described schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage, with detailed descriptions for both identifier_id and clerk_instance_id. The description adds only a restatement of the clerk_instance_id usage ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'), which is already present in the schema. No additional semantic depth is added.
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 begins with 'Remove an allowlist identifier by id,' which clearly states the action (remove) and the resource (allowlist identifier). This distinguishes it from sibling tools like delete_blocklist_identifier and create_allowlist_identifier.
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 clear prerequisite: 'Call clerk.get_connected_accounts first.' It also explains the optional clerk_instance_id parameter with conditions for use and omission. While it does not explicitly mention alternatives or when not to use, the context is sufficient for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_api_keyAInspect
Permanently delete an API key from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the deleted API key id and a deleted flag.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key_id | Yes | Clerk API key id (ak_...) to retrieve, update, delete, or revoke. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| api_key | No | Deletion confirmation with API key id and deleted flag. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the burden. It discloses irreversibility ('Permanently delete'), the return payload ('Returns the deleted API key id and a deleted flag'), token cost, and a prerequisite dependency. It doesn't cover error handling or permissions but is more transparent than typical deletion tools.
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 four succinct sentences, front-loaded with the main action, then prerequisites, return value, and cost. Every sentence is informative without any fluff or repetition.
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 operation with two parameters, the description adequately covers purpose, sequence, return value, and cost. It could mention revoke_api_key as an alternative for non-destructive operations, but the 'permanently' signal makes the tool's use case clear. Overall, it is complete for its complexity.
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 already documents both parameters well, including the optional behavior of clerk_instance_id. The description only restates what the schema provides ('or omit it to use the default account'), adding no extra semantic 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 opens with 'Permanently delete an API key from a connected Clerk application,' which is a specific verb+resource statement. It clearly distinguishes from sibling clerk.revoke_api_key via 'permanently,' signaling a destructive final 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?
Provides explicit usage guidance: 'Call clerk.get_connected_accounts first' and explains how to use clerk_instance_id vs default account. Does not explicitly contrast with revoke_api_key, but the 'permanently' wording implies when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_blocklist_identifierAInspect
Remove a blocklist identifier by id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns a deleted confirmation.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier_id | Yes | Allowlist or blocklist identifier id (alid_... or blid_...) to delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted_identifier | No | Clerk deleted-object payload confirming removal. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return ('Returns a deleted confirmation') and cost, but doesn't mention idempotency, error handling, or permission requirements. The deletion operation is simple, but a bit more behavioral context would be helpful; this is minimum viable.
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 four short sentences, with the primary action first, then usage guidance, return type, and cost. Every sentence serves a purpose with no fluff, making it highly readable and easily scannable.
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 (two params, both with schema descriptions) and the presence of an output schema, the description is largely complete. It adds the prerequisite call and cost information. A 4 is warranted because it's thorough enough for a straightforward delete operation, though it doesn't discuss error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The added 'Call clerk.get_connected_accounts first' is a helpful prerequisite, but the description mostly repeats the schema's own language about clerk_instance_id. It doesn't add significant meaning beyond the schema, so 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 opens with 'Remove a blocklist identifier by id,' which is a specific verb+resource+scope statement. It clearly distinguishes this from siblings like clerk.create_blocklist_identifier and clerk.delete_allowlist_identifier by naming the blocklist identifier as the target.
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 clear prerequisite: 'Call clerk.get_connected_accounts first,' and explains when to pass or omit clerk_instance_id. It doesn't explicitly mention alternatives like delete_allowlist_identifier, but the context makes the use case obvious. Clear context without exclusions earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_domainAInspect
Remove a custom domain from a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the deleted domain id and a deleted flag.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_id | Yes | Clerk organization domain id (dmn_...) to update, delete, or verify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | No | Clerk deleted-object payload confirming domain removal. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool removes a domain, describes the return value ('deleted domain id and a deleted flag'), and explains instance-targeting behavior. It also notes a 10-token cost. It does not explicitly state irreversibility, but given the clear 'Remove' verb and return flag, it is sufficiently transparent.
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 about four sentences, each serving a purpose: the core action, prerequisite/parameter guidance, return value, and cost. It is front-loaded and contains 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?
This is a simple two-parameter tool with a good output schema. The description covers the prerequisite connection setup, optional parameter behavior, and expected return, making it complete for an agent to invoke 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% and both parameters have descriptive details (domain_id format, clerk_instance_id source and default behavior). The description reinforces the clerk_instance_id guidance but adds little beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Remove a custom domain from a connected Clerk instance.' This clearly distinguishes it from sibling tools like clerk.delete_organization_domain, which targets organization domains, and domains.* tools that operate on domain registration.
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 explicitly instructs the user to 'Call clerk.get_connected_accounts first' and explains how to choose a target via clerk_instance_id or default to the default account. It gives clear contextual guidance for using the tool, though it does not mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_email_addressAInspect
Delete a Clerk email address by its id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the deleted email address summary when Clerk provides it.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| email_address_id | Yes | Clerk email address id (idn_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| email_address | No | Deleted Clerk email address summary, when returned by Clerk. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return behavior ('Returns the deleted email address summary when Clerk provides it') and includes cost information, but does not mention whether deletion is irreversible, requires specific permissions, or cascades to other data. Acceptable but not comprehensive for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences with no wasted words. It front-loads the core action, then provides necessary context about connected accounts, return value, and cost. Every sentence contributes useful 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 2-parameter delete tool, the description covers the main action, prerequisite, connection targeting, and return behavior. It does not explain edge cases like invalid IDs or permission requirements, but given the presence of an output schema and full parameter schema coverage, the essential context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description reinforces the clerk_instance_id behavior by tying it to the prerequisite call, but adds minimal new meaning beyond what the schema provides. 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 ('Delete a Clerk email address by its id') and specifies the resource and required identifier. It distinguishes from sibling tools like create_email_address and update_email_address by focusing on deletion.
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?
Provides explicit guidance to call clerk.get_connected_accounts first and explains how to handle the optional clerk_instance_id parameter. It gives a clear usage context but does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_enterprise_connectionAInspect
Delete an enterprise SSO connection from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the deleted enterprise connection object from Clerk.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| enterprise_connection | No | Deleted enterprise connection object returned by Clerk. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the return value and the cost, but does not mention irreversibility, required permissions, error conditions, or side effects beyond 'Delete'. This adds some context but leaves important behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each serving a clear purpose: purpose, usage instruction, return value, and cost. It is front-loaded with the core action, with no redundant or vague filler.
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 includes a prerequisite, parameter targeting instruction, return value disclosure, and cost. With an output schema present, return details are covered. However, it omits failure scenarios and permission requirements, which would make it more complete for a destructive 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% for both parameters, so the schema already defines connection_id and clerk_instance_id thoroughly. The description reinforces the instance id behavior with 'Pass clerk_instance_id to target a specific connection, or omit it to use the default account' but adds no substantial new meaning over 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 opens with 'Delete an enterprise SSO connection from a connected Clerk application', which is a specific verb+resource statement. It clearly distinguishes from sibling tools like get_enterprise_connection, update_enterprise_connection, and create_enterprise_connection.
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?
Provides explicit prerequisite: 'Call clerk.get_connected_accounts first' and explains when to pass clerk_instance_id vs omit it to use the default account. This gives clear context for usage, though it does not explicitly name alternative tools or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_jwt_templateAInspect
Permanently delete a JWT template from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
This action is irreversible. Returns the deleted template id and a deleted flag.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | Clerk JWT template id (jtmp_...) to retrieve, update, or delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jwt_template | No | Deletion confirmation with template id and deleted flag. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses irreversibility ('This action is irreversible') and the return value ('Returns the deleted template id and a deleted flag'), which are key behavioral traits. It also implies the operation is scoped to a connected Clerk application. No contradictions with annotations 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 four sentences, each adding value: purpose, prerequisite, irreversibility/return, and cost. It is front-loaded and contains no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter delete tool with no annotations and an output schema, the description covers all necessary context: what it does, how to select the target, irreversibility, and the expected return. It does not need to explain error handling or return format further, as the output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds a bit of usage context for clerk_instance_id ('target a specific connection, or omit it to use the default account'), but this largely mirrors the schema description. No significant additional meaning is provided for template_id beyond the schema's mention of retrieve/update/delete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Permanently delete') and resource ('JWT template'), clearly distinguishing it from sibling tools like update_jwt_template or create_jwt_template. The 'permanently' qualifier adds important scope beyond a generic delete.
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?
Provides clear prerequisite guidance ('Call clerk.get_connected_accounts first') and clarifies how to target a connection (pass clerk_instance_id or omit for default). It does not explicitly mention alternatives or state when not to use this tool, but the context is sufficient for an agent to invoke it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_machineAInspect
Delete a machine by id from a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns a deletion confirmation.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| machine_id | Yes | Clerk machine id (mch_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted_machine | No | Deleted machine confirmation from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the return ('Returns a deletion confirmation') and cost ('Cost = 10 tokens'), but does not mention side effects, error behavior, or permission requirements beyond the obvious destructive nature of deletion.
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 consists of four short sentences: purpose, prerequisite/account selection, return value, and cost. It is front-loaded and every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-param deletion tool with an output schema, the description covers purpose, prerequisite, account targeting, return behavior, and cost. It lacks explicit alternatives and error handling, but is generally sufficient for basic 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% with clear descriptions for both machine_id and clerk_instance_id. The description adds the account-targeting behavior ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'), but this is already in the schema, so no significant extra 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 clearly states 'Delete a machine by id from a connected Clerk instance', using a specific verb (delete) and resource (machine) with context (connected Clerk instance). It distinguishes from sibling delete tools like delete_machine_scope and delete_domain by exactly naming the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to target a specific connection with clerk_instance_id or use the default account. It lacks explicit alternatives or exclusions, but the context is sufficient for basic usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_machine_scopeAInspect
Delete a machine scope, removing access from one machine to another.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns a deletion confirmation.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| scope_id | Yes | Target machine id (mch_...) for the scope to remove. | |
| machine_id | Yes | Clerk machine id (mch_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted_machine_scope | No | Deleted machine scope confirmation from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It states the effect (removing access) and that it returns a deletion confirmation, but it does not mention whether the action is irreversible, what side effects occur, or any authentication requirements. For a delete command, this is adequate but not fully transparent about consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the main purpose. Every sentence earns its place: the action, the prerequisite, the optional parameter behavior, and the return type. No unnecessary words or repetition.
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 output schema exists, the description does not need to detail the return object. It covers the prerequisite, parameter selection, and the outcome (deletion confirmation). It lacks mention of error conditions or edge cases, but for a straightforward delete operation this is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, giving baseline 3. The description adds valuable guidance beyond the schema, particularly about calling clerk.get_connected_accounts first and how to use clerk_instance_id to target a specific connection or omit it for the default. This clarifies the exact use of parameters beyond their raw 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 tool's function: 'Delete a machine scope, removing access from one machine to another.' This uses a specific verb (delete) and resource (machine scope), and distinguishes it from siblings like delete_machine (deletes the machine itself) and create_machine_scope (creates a 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?
The description provides explicit usage context: 'Call clerk.get_connected_accounts first' and explains how to select an instance with clerk_instance_id or omit it for the default account. It does not explicitly mention alternative tools for similar operations, but the primary usage guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_oauth_applicationAInspect
Permanently delete an OAuth application from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the deleted OAuth application object from Clerk.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| oauth_application_id | Yes | Clerk OAuth application id (oa_...) to retrieve, update, or delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| oauth_application | No | Deleted Clerk OAuth application object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the operation is a permanent deletion, states the action's return value ('Returns the deleted OAuth application object'), and notes the token cost. This goes beyond a bare 'delete' statement and helps the agent understand the irreversible and returning nature of the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary purpose. Each sentence adds useful information: the operation, prerequisite and targeting instructions, return value, and cost. No filler or repetition of schema details, making it efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive delete tool with two parameters and an output schema, the description covers the essential context: prerequisite call, targeting selector, return value, and cost. It does not detail error scenarios or explicit authorization requirements, but the permanent-deletion warning and return behavior are sufficiently complete for an agent 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 already provides 100% coverage with clear parameter descriptions (e.g., clerk_instance_id has default null and explanation, oauth_application_id is required with 'oa_...' format). The description adds minimal new semantics beyond restating the targeting behavior already present in the schema, so a 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 opens with 'Permanently delete an OAuth application from a connected Clerk application,' which uses a specific verb ('delete'), specifies the resource ('OAuth application'), and adds 'permanently' to convey irreversibility. It clearly distinguishes this from sibling tools like update, get, list, or create OAuth applications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it tells the agent to call clerk.get_connected_accounts first and explains how to target a specific connection via clerk_instance_id or fall back to the default account. While it doesn't explicitly mention alternatives or when-not-to-use, the instructions give actionable prerequisites and targeting guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_organizationAInspect
Permanently delete an organization from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
This action is irreversible. Returns the deleted organization id and a deleted flag.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | Clerk organization id (org_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization | No | Deletion confirmation with organization id and deleted flag. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It transparently discloses that the action is irreversible, states the return value (deleted organization id and deleted flag), and even notes the token cost. It doesn't mention cascade effects on related data, but it adequately covers the most critical safety aspect.
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 four concise, purposeful sentences: purpose, prerequisite/parameter routing, irreversibility/return, and cost. Each sentence earns its place, with the main purpose front-loaded and 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?
Given the tool's modest complexity (2 params, 1 required, output schema present), the description covers all essential aspects: purpose, prerequisite workflow, parameter semantics, safety warning, return value, and cost. It is complete for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, but the description adds operational meaning beyond the schema by instructing to call clerk.get_connected_accounts first and clarifying the behavior when clerk_instance_id is omitted. This contextual workflow is valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Permanently delete an organization from a connected Clerk application' with a specific verb, resource, and scope. It clearly distinguishes this tool from sibling deletion tools like delete_organization_domain or delete_organization_membership by targeting the organization itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage guidance: 'Call clerk.get_connected_accounts first' and explains when to pass clerk_instance_id vs omit it for the default account. It gives clear context and prerequisites, though it does not mention explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_organization_domainAInspect
Remove an organization domain from a Clerk organization.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the deleted domain id and a deleted flag.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_id | Yes | Clerk organization domain id (dmn_...) to update, delete, or verify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted_domain | No | Deletion confirmation with domain id and deleted flag. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It adds the return value (deleted domain id and deleted flag) and the prerequisite call, but does not mention whether deletion is permanent or any permission requirements, leaving some transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the purpose, followed by a prerequisite, parameter guidance, return value, and cost in a logical order. Every sentence 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's simplicity (2 parameters, output schema present), the description covers the essential operational steps, including the prerequisite call and return information. However, it omits any caveats (e.g., irreversible action or error handling), so it's not fully exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters, so the baseline is 3. The description adds meaning by explaining how to choose clerk_instance_id based on the connected account, which goes beyond the schema's default 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 uses the specific verb 'Remove' and names the exact resource ('organization domain from a Clerk organization'), clearly distinguishing it from other domain-related tools like clerk.delete_domain. It directly states what the tool does in the first sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs the user to call clerk.get_connected_accounts first and explains when to pass clerk_instance_id ('to target a specific connection') or omit it ('to use the default account'). This provides clear when-to-use guidance relative to connected account handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_organization_membershipAInspect
Remove a user from a Clerk organization.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
This action cannot be undone.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) of the member to remove. | |
| organization_id | Yes | Clerk organization id (org_...) to remove the member from. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| membership | No | Deleted organization membership object, when returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses irreversibility ('This action cannot be undone'), a cost ('Cost = 8 tokens'), and a dependency on clerk.get_connected_accounts. This goes beyond the bare action, though it does not detail permission requirements or side effects like removal of associated invitations.
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?
Four short sentences, each earning its place: purpose, prerequisite/dependency, warning, and cost. The description is front-loaded with the main action and contains no redundant phrases or filler.
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 operation with full schema coverage and an output schema, the description adequately covers purpose, prerequisite, irreversibility, and cost. It does not address edge cases (e.g., removing the last admin), but that is not expected for this scope.
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 three parameters are clearly described. The description reinforces clerk_instance_id usage ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account') but adds no new parameter meaning 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 opens with 'Remove a user from a Clerk organization,' which clearly states a specific action and resource. This distinguishes it from sibling tools like create_organization_membership and list_organization_memberships, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Call clerk.get_connected_accounts first' and explains how to target a specific connection versus the default. However, it does not explicitly contrast this tool with alternatives like create_organization_membership or update_organization_membership, so it lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_organization_permissionAInspect
Delete an organization permission from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the Clerk deletion payload.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| permission_id | Yes | Clerk organization permission id to update or delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization_permission | No | Clerk deletion payload for the organization permission. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return payload, cost in tokens, and the prerequisite of connected accounts. It does not explicitly mention irreversibility, but 'delete' implies destruction, so this is reasonable.
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 four concise sentences: purpose, prerequisite, return value, and cost. It is front-loaded with the core action and includes no fluff, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and clear prerequisite instructions, the description is fairly complete. It could mention potential errors or that the permission must already exist, but for a simple delete tool it covers the essential operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter details, so the baseline is 3. The description adds little beyond repeating the clerk_instance_id guidance already present in the schema, such as 'Pass clerk_instance_id to target a specific connection.' It does not enrich parameter meaning meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Delete an organization permission from a connected Clerk application' with a specific verb and resource, clearly distinguishing it from sibling tools like delete_organization_role or delete_organization_membership. This is precise and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage context by instructing to call clerk.get_connected_accounts first and how to target a specific connection via clerk_instance_id. However, it does not explicitly differentiate from alternative delete tools or state when not to use it, though the purpose itself makes this clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_organization_roleAInspect
Delete an organization role from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the Clerk deletion payload.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| role_id | Yes | Clerk organization role id to retrieve, update, or delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization_role | No | Clerk deletion payload for the organization role. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return payload and cost, and implies a connection requirement via 'connected Clerk application' and the get_connected_accounts prerequisite. However, it does not explicitly state that deletion is irreversible or warn about potential side effects on members or other resources, leaving room for more 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 four short sentences covering purpose, prerequisite, targeting, return value, and cost. Every sentence adds value, and it is front-loaded with the action with no redundant or fluff 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?
For a delete tool with one required parameter, high schema coverage, and an output schema, the description sufficiently covers purpose, prerequisite, targeting, return, and cost. It could add explicit notes on irreversibility or error cases, but given the simplicity, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both role_id and clerk_instance_id. The description reiterates the omit-to-use-default behavior for clerk_instance_id and adds the get_connected_accounts prerequisite, but it does not add significant meaning beyond the schema. 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 tool deletes an organization role from a connected Clerk application. The verb 'delete' and resource 'organization role' are specific, and this distinguishes it from sibling tools like update_organization_role or create_organization_role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by instructing to call clerk.get_connected_accounts first and explains how to target a specific connection via clerk_instance_id or omit it for the default account. However, it does not explicitly mention alternatives or when not to use this tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_phone_numberAInspect
Delete a Clerk phone number by id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
This action cannot be undone. Returns a deleted confirmation.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| phone_number_id | Yes | Clerk phone number id (idn_... or phn_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | No | Deleted object confirmation from the Clerk Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it states the action is irreversible, returns a deleted confirmation, and discloses the token cost. This covers key behavioral traits, though it could mention error handling or side effects, but those are less critical for a delete 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 tight: action, prerequisite, targeting, irreversibility/return, and cost—all in four short lines. No filler or repeated information; every sentence 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 simplicity of the tool (2 params, 100% schema coverage, output schema present), the description covers everything essential: the operation, prerequisite, instance targeting, irreversibility, and cost. Return values are handled by the output schema, so no further detail 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 coverage is 100%, so a baseline of 3 is appropriate. The description repeats the instance selection logic that the schema already documents, adding no substantial new parameter meaning. The extra guidance about calling get_connected_accounts is more of a usage guideline than 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 opens with 'Delete a Clerk phone number by id', a specific verb and resource that clearly distinguishes it from the many other delete_* tools in the sibling list. There is no ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear prerequisite, 'Call clerk.get_connected_accounts first', and explains how to target a specific instance or default account with clerk_instance_id. It does not explicitly mention when not to use it or name alternatives, but the usage context is well established.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_redirect_urlAInspect
Remove an allowed redirect URL from a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the deleted redirect URL id and a deleted flag.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| redirect_url_id | Yes | Clerk redirect URL id to retrieve or delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| redirect_url | No | Clerk deleted-object payload confirming redirect URL removal. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the return value (deleted redirect URL id and deleted flag) and cost (10 tokens), and implies destructive action. However, with no annotations, it lacks explicit warnings about permanence or required permissions.
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?
Four short, front-loaded sentences. No redundancy; each sentence adds meaningful information (action, prerequisite, optional parameter, return, cost).
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 2-parameter delete with output schema, the description covers usage, prerequisites, and return. It could mention that deletion is irreversible, but overall it's adequate.
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 described. The description reinforces the clerk_instance_id usage but doesn't add new format or constraints 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 opens with a clear action: 'Remove an allowed redirect URL from a connected Clerk instance.' This specifies the verb, resource, and context, distinguishing it from related tools like clerk.create_redirect_url and clerk.get_redirect_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call clerk.get_connected_accounts first and explains how to target a specific connection via clerk_instance_id or default. This provides clear context, though it doesn't mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_svix_appAInspect
Delete the Svix app associated with a connected Clerk application and disassociate webhook delivery.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns a deleted confirmation.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svix | No | Deletion confirmation for the Svix app. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the side effect ('disassociate webhook delivery'), the return value ('deleted confirmation'), and the cost (10 tokens). It does not explicitly state irreversibility or permission requirements, but delete semantics and side effects are communicated. This exceeds the minimum.
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?
Three sentences, each purposeful: purpose first, then usage, then return/cost. No wasteful words. The cost is included, which is useful operational trivia. Highly concise 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?
For a destructive tool with one optional parameter and an output schema, the description covers purpose, prerequisite, parameter behavior, return type, and cost. It could more explicitly mention irreversibility or consequences of disassociating webhook delivery, but the given context is sufficient for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats the schema's parameter guidance ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account') and adds the prerequisite call. This is helpful but does not significantly go beyond the schema's own 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 action: 'Delete the Svix app associated with a connected Clerk application and disassociate webhook delivery.' This uses a specific verb and resource, and it distinguishes the tool from siblings like create_svix_app and create_svix_dashboard_url.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit prerequisite guidance: 'Call clerk.get_connected_accounts first.' It also explains how to target a specific connection vs. the default account. It does not explicitly name alternatives or exclusions, but the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_userAInspect
Permanently delete a Clerk user by user id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
This action cannot be undone.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Deleted Clerk user object from the Backend API, when returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses irreversibility ('cannot be undone') and cost (10 tokens), which are key behavioral traits. It lacks details on related data impacts or permissions, but the most critical transparency is provided.
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 five short sentences, each earning its place: purpose, prerequisite, parameter usage, irreversibility warning, cost. It is front-loaded and free of 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?
For a simple delete tool with an output schema, the description covers the essentials: what, how, prerequisites, and safety. It doesn't mention return values (covered by output schema) or side effects on related data, but overall is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. However, the description adds meaning by explaining the clerk_instance_id parameter's default behavior and its relationship to get_connected_accounts, going beyond the schema's literal 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 clearly states 'Permanently delete a Clerk user by user id' with a specific verb and resource, distinguishing it from sibling delete tools like delete_email_address or delete_organization. The permanence qualifier adds important 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?
It explicitly instructs to call clerk.get_connected_accounts first and explains how to target a specific connection or use the default. This gives clear prerequisite and parameter behavior, though it doesn't explicitly mention when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_user_backup_codesAInspect
Delete all MFA backup codes for a Clerk user.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated user object.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Updated Clerk user object after backup codes were removed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing effects. It clearly states the destructive action (deletes backup codes) and the return value ('Returns the updated user object'). However, it does not mention irreversibility, required permissions, or the impact on the user's MFA setup beyond backup codes. No annotation contradiction exists.
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 four short sentences, each serving a purpose: action, prerequisite, parameter usage, and return value. The cost note is extra but acceptable. It is front-loaded with the core action and contains 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?
Given the presence of an output schema, the description need not elaborate on the return structure. It covers the purpose, prerequisites, parameter disambiguation, and outcome. It omits potential side effects or alternatives, but for a deletion tool, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so a baseline of 3 applies. The description adds meaning by instructing to call clerk.get_connected_accounts first and by clarifying when to pass clerk_instance_id (specific connection) versus omit (default). This augments the schema's existing 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 opens with a specific verb and resource: 'Delete all MFA backup codes for a Clerk user.' It clearly identifies the exact operation and scope ('all', 'for a Clerk user'), which distinguishes it from sibling tools like delete_user_totp or delete_user_passkey.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit prerequisite context: 'Call clerk.get_connected_accounts first' and explains how to choose the instance: 'Pass clerk_instance_id to target a specific connection, or omit it to use the default account.' It does not explicitly mention alternatives or when-not-to-use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_user_external_accountAInspect
Delete (unlink) an external OAuth or social account from a Clerk user.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the deleted external account.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| external_account_id | Yes | External account id (for example ea_...) to unlink. |
Output Schema
| Name | Required | Description |
|---|---|---|
| external_account | No | Deleted external account object from the Clerk Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the mutating nature ('Delete (unlink)'), the return behavior ('Returns the deleted external account'), and a cost of 8 tokens. It does not mention permissions or irreversibility, but the 'unlink' phrasing implies the action is reversible.
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 four concise sentences: purpose, prerequisite, parameter guidance, and return value plus cost. Every sentence earns its place, and the most critical information is 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 full schema coverage and presence of an output schema, the description covers the necessary workflow, return behavior, and cost. It could mention error handling or side effects, but for a straightforward unlink operation, it is sufficiently 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 provides 100% coverage of parameter descriptions, so the baseline is 3. The description adds a small amount of operational nuance by explaining that clerk_instance_id comes from clerk.get_connected_accounts and that omitting it selects the default account, but this largely repeats the schema's own text.
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 explicitly states 'Delete (unlink) an external OAuth or social account from a Clerk user,' using a specific verb and resource. This clearly distinguishes it from sibling tools that delete other user resources like phone numbers or web3 wallets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear prerequisite guidance: 'Call clerk.get_connected_accounts first,' and explains how to target a specific connection via clerk_instance_id or fall back to the default account. It stops short of explicitly naming alternatives for other deletion contexts, but the workflow is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_user_passkeyAInspect
Delete a passkey for a Clerk user by passkey id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated user object.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to operate on. | |
| passkey_id | Yes | Passkey identification id to delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Updated Clerk user object after the passkey was removed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the tool returns the updated user object and that a connected account must be used, but it does not address irreversibility, error cases, or required permissions beyond the connected account 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 four sentences, starting with the main action, then the prerequisite, return value, and cost. It is front-loaded and each sentence adds operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple delete operation, fully described parameters, and the presence of an output schema, the description covers the purpose, prerequisite, and return. It does not detail error conditions, but the tool's low complexity and structured schemas make this adequate.
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 already describes all three parameters clearly with 100% coverage. The description reinforces the behavior of clerk_instance_id by explaining the default behavior, but does not add additional syntax or format details 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 uses the verb 'Delete' with a specific resource ('passkey for a Clerk user') and identifies the required identifier ('by passkey id'). This clearly distinguishes it from sibling tools like clerk.delete_user_totp or clerk.delete_user_external_account.
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 explicitly instructs the agent to call clerk.get_connected_accounts first and explains how to target a specific connection via clerk_instance_id or default to the default account. It provides clear context for using the tool, though it does not mention exclusions or alternative tools for similar operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_user_totpAInspect
Delete all TOTP authenticators for a Clerk user.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated user object.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Updated Clerk user object after TOTP was removed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the destructive nature ('Delete all TOTP authenticators'), the dependency on get_connected_accounts, and the return value ('Returns the updated user object'). It does not mention reversibility or permissions, but the action is inherently destructive and clearly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four focused sentences: purpose, usage prerequisite, parameter guidance, and return value. No wasted words, and the most important action is 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 params, output schema exists), the description covers purpose, prerequisite call, parameter behavior, return value, and cost. It is complete for an agent to select and 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 description coverage is 100%, so the schema already documents both parameters. The description adds no new parameter semantics beyond what the schema says, though it reinforces the workflow around clerk_instance_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?
The description states a specific action and resource: 'Delete all TOTP authenticators for a Clerk user.' This clearly distinguishes it from sibling tools like delete_user_backup_codes or disable_user_mfa, which operate on different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context by instructing to call clerk.get_connected_accounts first and explaining how to use clerk_instance_id (target a connection or omit for default). It does not explicitly mention alternatives or when not to use, but the resource specificity makes the intended use clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_user_web3_walletAInspect
Delete a Web3 wallet for a Clerk user.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated user object.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to operate on. | |
| web3_wallet_id | Yes | Web3 wallet identification id to delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Updated Clerk user object after the Web3 wallet was removed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the prerequisite (get_connected_accounts), the behavior of the optional clerk_instance_id (target specific connection or default), and the return value (updated user object). It could additionally disclose permanence or permission requirements, but the provided details are useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core action, and includes only essential information: prerequisite, optional parameter behavior, return value, and cost. No unnecessary words or repetition.
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, and the description covers the key behavioral aspects: the action, prerequisite, optional parameter handling, and return value. An output schema exists, so the return structure is available. This is complete for the tool's complexity.
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 all parameters. The description adds no new parameter meaning beyond what is in the schema, simply restating the clerk_instance_id behavior, which aligns with the 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 that the tool deletes a Web3 wallet for a Clerk user, using a specific verb and resource. It distinguishes from sibling tools (e.g., delete_user_passkey, delete_user_totp) by explicitly naming the resource type.
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 instructs the agent to call clerk.get_connected_accounts first, providing clear context for the optional clerk_instance_id parameter. However, it does not explicitly mention alternative tools or exclusion criteria, though the purpose is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.delete_waitlist_entryAInspect
Delete a pending waitlist entry from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the Clerk deleted-object payload.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| waitlist_entry_id | Yes | Clerk waitlist entry id (wle_...) to operate on. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | No | Clerk deleted-object payload. |
Tool Definition Quality
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 clearly indicates the destructive nature ('Delete') and scopes to 'pending' entries, and discloses the return payload and token cost. However, it does not mention permanence, required permissions, or potential side effects on related data, which would be valuable for a delete 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 four short sentences, front-loaded with the primary action, followed by the prerequisite, return value, and cost. Every sentence adds useful information with no redundancy or filler.
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 two-parameter delete tool with an output schema, the description covers the action, prerequisite, connection targeting, and return value. It is adequate for an agent to invoke correctly, though it would benefit from a note distinguishing this from reject_waitlist_entry.
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 both clerk_instance_id and waitlist_entry_id already described in detail. The description restates the clerk_instance_id usage ('pass to target a specific connection, or omit to use the default') without adding new semantic information beyond the schema, so the baseline of 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?
Description uses the specific verb 'Delete' with the resource 'pending waitlist entry' in a Clerk application, making the action unambiguous. It clearly distinguishes from siblings like create_waitlist_entries, list_waitlist_entries, and reject_waitlist_entry, which have different purposes.
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 explicitly states a prerequisite: call clerk.get_connected_accounts first. It also explains how to target a specific connection via clerk_instance_id or default to the default account. However, it does not explicitly mention when to prefer this over reject_waitlist_entry, which is a close sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.disable_user_mfaAInspect
Disable all MFA methods (SMS, TOTP, and similar) for a Clerk user at once.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated user object.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Updated Clerk user object after MFA was disabled. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the core action and return value ('Returns the updated user object') plus cost, but does not mention potential side effects such as irreversibility, user notification, or whether re-enabling is possible. It is transparent about the main effect but lacks deeper 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 four sentences, front-loaded with the primary action, followed by essential usage instruction, return value, and cost. Every sentence contributes useful information with no redundancy or filler.
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 low complexity (2 params, no nested objects) and presence of an output schema, the description covers the action, prerequisite, parameter targeting, and return value. It is largely complete, though it could mention the irreversible/destructive nature of disabling all MFA methods, especially since there are 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?
Schema coverage is 100%, so the baseline is 3. The description repeats what the schema already states ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account') without adding meaningful new semantics beyond the schema's own 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 uses a specific verb and resource: 'Disable all MFA methods (SMS, TOTP, and similar) for a Clerk user at once.' This clearly distinguishes the tool from sibling per-method tools like clerk.delete_user_totp and clerk.delete_user_backup_codes by emphasizing the broad, all-at-once 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?
It provides explicit prerequisite guidance: 'Call clerk.get_connected_accounts first' and explains the clerk_instance_id behavior with specific targeting or default usage. However, it does not explicitly name alternatives (e.g., per-method disable tools) or state when not to use this tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_api_keyAInspect
Retrieve API key metadata by id from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the API key summary without the secret.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key_id | Yes | Clerk API key id (ak_...) to retrieve, update, delete, or revoke. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| api_key | No | Clerk API key metadata from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return behavior ('summary without the secret') and cost ('Cost = 3 tokens'), but does not explicitly state read-only safety, auth needs, or error conditions. The verb 'Retrieve' implies read-only, but more explicit disclosure would strengthen this.
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 five short, front-loaded sentences. Every sentence earns its place: purpose, prerequisite, parameter guidance, return behavior, and cost. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema (which explains return values), the description covers essential context: purpose, usage prerequisite, parameter default, and cost. It lacks mention of error handling or rate limits, but those are not critical for a simple read with an output schema.
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 meaning by explaining clerk_instance_id's default behavior ('omit it to use the default account') and the prerequisite get_connected_accounts, which enriches the schema definition. api_key_id is not elaborated, but schema already covers it.
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 'Retrieve API key metadata by id from a connected Clerk application' with a specific verb and resource. It distinguishes itself from siblings like get_api_key_secret by explicitly noting 'without the secret' and from list_api_keys by focusing on a specific id.
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?
Provides clear prerequisite: 'Call clerk.get_connected_accounts first' and explains how to target a connection via clerk_instance_id or use the default account. Does not explicitly mention when to use alternatives (e.g., get_api_key_secret for secrets), but the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_api_key_secretAInspect
Reveal the secret for an API key in a connected Clerk application.
Sensitive — the returned secret is a high-privilege credential; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns secret.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key_id | Yes | Clerk API key id (ak_...) to retrieve, update, delete, or revoke. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| secret | No | API key secret value. Treat as high-privilege — do not log. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It warns that the returned secret is a high-privilege credential, advises against logging/exposing it, and notes the 5-token cost. This adds meaningful context beyond the schema, though it doesn't explicitly state the read-only nature or potential 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 two sentences plus brief notes, with the purpose front-loaded. Each sentence earns its place: purpose, sensitivity warning, usage instruction, return value, and cost. 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?
Given the tool's simplicity, the output schema, and full parameter documentation, the description is quite complete. It covers the essential usage flow (call get_connected_accounts first), the sensitivity warning, and the cost. The only gap is lack of explicit alternatives or error conditions, but those aren't necessary here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have descriptions. The description restates the clerk_instance_id behavior from the schema ('Pass clerk_instance_id to target a specific connection, or omit it'), but adds no new semantic detail beyond that.
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 reveals an API key secret, using the specific verb 'Reveal' and the resource 'API key in a connected Clerk application'. This distinguishes it from sibling getters like clerk.get_api_key that likely return metadata, and from revoke/update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: call clerk.get_connected_accounts first, and pass clerk_instance_id to target a specific connection or omit for default. This gives clear context for when to use the tool but doesn't mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_connected_accountsAInspect
List Clerk applications connected to the authenticated Vee3 account.
Returns clerk_instance_id, display name, environment type, and whether each connection is the default. Use clerk_instance_id on future Clerk calls, or omit it to use the default account.
If accounts is empty, the user must connect a Clerk application at https://vee3.io/dashboard/connections before Clerk capabilities work. Agents cannot complete the connection flow; ask the user to connect, then call this tool again.
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| accounts | No | Active connected Clerk applications for the authenticated Vee3 account. |
Tool Definition Quality
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, and it excels: it states the operation is a read-only listing, explicitly discloses the output fields, mentions the cost as 0 tokens, and even reveals that agents cannot complete the connection flow themselves. This gives the agent a complete picture of the tool's behavior and limitations.
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 and well-structured. It front-loads the primary purpose, then explains the output, then the error/edge case, and finally the cost. Each sentence serves a purpose, and there is no redundancy or filler. The information is easy to parse and directly actionable for an agent.
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 that the tool has no parameters, an output schema, and no annotations, the description is remarkably complete. It covers what the tool does, what it returns, how to use the result, what to do if there are no connected accounts, and the cost. Nothing essential is missing for an agent to decide when and how to invoke this 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 tool has zero parameters, and the schema coverage is 100% (empty). The description adds relevant context about how to use the output (e.g., using 'clerk_instance_id' in future calls), which is valuable. Since there are no parameters to explain, the baseline of 4 is appropriate, and the description does not need to compensate for missing schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List Clerk applications connected to the authenticated Vee3 account.' It specifies the resource (Clerk applications) and the verb (list), and it differentiates itself from other Clerk tools by focusing on connection discovery. The description also lists the key return fields, making it unmistakable what the tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it tells the agent to use 'clerk_instance_id' on future Clerk calls or omit it for the default account. It also explains the failure mode when no accounts are connected, instructing the agent to ask the user to connect manually and then call the tool again. This clearly indicates when and how to use the tool, including what to do in the empty-account edge case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_development_api_keysAInspect
Return the Publishable Key and Secret Key for a connected development Clerk instance so the agent can configure a local app env (NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY and CLERK_SECRET_KEY).
Sensitive — the returned Secret Key is a high-privilege credential; do not log or expose it.
Development only. Production connections are refused.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
If the connection was created before Publishable Keys were stored, ask the user to reconnect the Clerk application at https://vee3.io/dashboard/connections.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| secret_key | No | Clerk Secret Key (sk_test_...). Treat as high-privilege — do not log. |
| publishable_key | No | Clerk Publishable Key (pk_test_...). Safe for frontend env vars; do not treat as a secret equivalent to the Secret Key. |
| environment_type | No | Always "development" when this capability succeeds. |
| clerk_instance_id | No | Clerk instance id (ins_...) for the connected development app. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the tool's sensitivity ('high-privilege credential; do not log or expose it'), its refusal of production connections, the prerequisite call to get_connected_accounts, an edge case about older connections, and cost in tokens. No contradiction with annotations exists.
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 well-structured and front-loaded: it begins with the primary purpose, then a bolded security warning, then scope, prerequisite, edge case, and cost. Each sentence serves a purpose, and no filler is present.
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 that an output schema exists, the description does not need to explain return values. It covers purpose, usage, exclusions, prerequisites, a specific failure/edge case, and cost, making it complete for a developer-facing credential 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?
The input schema already provides 100% coverage for the single optional parameter with a clear description ('Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.'). The tool description paraphrases the same information without adding new parameter-specific details, so it adds no meaningful semantic value 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 returns the Publishable Key and Secret Key for a connected development Clerk instance, with the specific purpose of configuring a local app environment (including explicit env var names). This is a specific verb ('Return'), a specific resource, and distinguishes it from siblings like get_api_key by scoping to development instances and returning both keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use context: 'Development only. Production connections are refused.' and requires 'Call clerk.get_connected_accounts first.' It also explains default behavior when clerk_instance_id is omitted. However, it does not explicitly name alternative tools for production key retrieval, so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_email_addressAInspect
Retrieve a Clerk email address by its id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the email address summary.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| email_address_id | Yes | Clerk email address id (idn_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Clerk email address id (idn_...). |
| primary | No | Whether this is the user's primary email address. |
| user_id | No | Clerk user id (user_...) that owns this email address. |
| verified | No | Whether the email address is verified. |
| created_at | No | Unix timestamp in milliseconds when the email address was created. |
| updated_at | No | Unix timestamp in milliseconds when the email address was last updated. |
| email_address | No | Email address value. |
| verification_status | No | Verification status (e.g. verified, unverified, failed). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It clearly indicates this is a read operation ('Retrieve') and states the return is a summary, but does not disclose behavior on invalid ids or missing records. The cost disclosure adds useful 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?
Three short sentences in a logical order: purpose, prerequisite/usage, return value. No filler.
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 an output schema, so return details are covered. The description covers the prerequisite, parameter usage, and return summary, but could additionally mention behavior for invalid IDs or instance mismatches. Still, it is adequate for a simple getter.
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 value by explaining where clerk_instance_id comes from ('from clerk.get_connected_accounts') and that omitting it uses the default account, which enhances the schema's basic 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 opens with a clear verb+resource statement: 'Retrieve a Clerk email address by its id.' It distinguishes from siblings like get_phone_number or get_user by the specific resource, and mentions the return value ('email address summary').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs the agent to call clerk.get_connected_accounts first, providing a prerequisite. It also explains how to use clerk_instance_id to target a specific connection or omit it for default, but does not mention exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_enterprise_connectionAInspect
Retrieve a single enterprise SSO connection from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the enterprise_connection summary including SAML or OIDC configuration when present.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| enterprise_connection | No | Enterprise SSO connection details. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden. It implies read-only via 'Retrieve' and states what is returned (enterprise_connection summary including SAML or OIDC configuration). It also mentions the dependency on get_connected_accounts. However, it doesn't disclose error behavior, permission requirements, or potential side effects (e.g., nothing is mutated). This is adequate but not deeply transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short paragraphs, each earning its place: purpose, prerequisite/usage, and return summary. The cost note is a single extra token. No filler or redundancy. Front-loaded with the primary action.
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 single-retrieval tool with an output schema present, the description covers the essential context: prerequisite step, instance targeting, and return contents. It doesn't discuss error cases or authorization, but given the tool's simplicity and output schema richness, it is sufficiently complete. Slight gap: no mention of how this differs from list_enterprise_connections, but that is a minor omission.
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 meaningful parameter behavior: 'Pass clerk_instance_id to target a specific connection, or omit it to use the default account.' This clarifies the optional parameter's role and default behavior beyond the schema description. The connection_id parameter is adequately covered by the schema, though the schema's generic note about 'update/delete/test' could confuse, but the tool's verb clarifies.
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 opens with a specific verb and resource: 'Retrieve a single enterprise SSO connection.' This clearly distinguishes it from list_enterprise_connections (which retrieves multiple) and other enterprise connection tools like create/update/delete. The scope ('from a connected Clerk application') is also explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to call clerk.get_connected_accounts first and explains how to target a specific instance (pass clerk_instance_id) versus using the default (omit it). This gives clear usage context. It doesn't explicitly name list_enterprise_connections as an alternative for multiple records, but the singular 'single' vs. plural sibling name makes it inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_instanceAInspect
Retrieve the connected Clerk application instance id and environment type.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the Clerk instance id (ins_...) and environment_type (development or production). App display names are not available from the Backend API.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| instance | No | Connected Clerk instance metadata. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return values (instance id, environment_type), notes that 'App display names are not available from the Backend API,' and mentions the token cost. This adds meaningful behavioral context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three sentences and a cost note. It front-loads the purpose, then gives usage guidance, return details, and a limitation without any fluff. Every sentence 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?
For a simple getter with one optional parameter, the description covers prerequisites, parameter behavior, return values, limitations, and cost. The output schema presumably documents the exact return structure, so no further details are needed. It is complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the parameter. The description adds a bit of context ('target a specific connection') but largely repeats the schema's explanation. Baseline 3 is appropriate since the description does not significantly enhance parameter 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 tool's function: 'Retrieve the connected Clerk application instance id and environment type.' This is a specific verb ('Retrieve') with a clear resource (Clerk application instance) and distinguishes it from sibling tools like get_connected_accounts or get_instance_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.' This gives a clear prerequisite and parameter selection guidance, though it does not explicitly name alternative tools or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_instance_communication_settingsAInspect
Retrieve SMS communication settings for a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns communication settings.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| communication_settings | No | Clerk instance communication settings from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the dependency on get_connected_accounts and explains parameter behavior, but it doesn't state whether the operation is read-only or detail any side effects. Since no annotations are provided, the description carries the full burden, and it only vaguely says 'Returns communication settings.'
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 short and front-loaded with the purpose, but the sentence 'Returns communication settings' is somewhat redundant given the tool name. Still, it wastes no words and provides the prerequisite and parameter guidance efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with one optional parameter and an output schema, the description covers the essential steps: prerequisite call, parameter selection, and return type. It could mention what the settings include, but the output schema likely covers that.
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 fully describes the parameter, including its format and default behavior. The description repeats this information ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'), adding no new 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 'Retrieve SMS communication settings for a connected Clerk instance,' using a specific verb and resource. It distinguishes from sibling tools like get_instance_oauth_settings and get_instance_settings by specifying 'SMS communication settings.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear prerequisite: 'Call clerk.get_connected_accounts first.' It also explains parameter usage: pass clerk_instance_id to target a specific connection or omit for default. However, it doesn't mention alternatives or when not to use this tool, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_instance_oauth_settingsAInspect
Retrieve OAuth settings for a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns OAuth settings.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| oauth_settings | No | Clerk instance OAuth settings from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It states that the tool 'Returns OAuth settings' and discloses a token cost, adding transparency. The phrase 'Retrieve' implies a read-only operation, though it does not explicitly state that no changes are made. It also highlights a dependency on get_connected_accounts, which is helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three brief sentences plus a cost note, all front-loaded with the main action. Every sentence adds value—purpose, prerequisite, return, and cost. It is concise without being under-specified.
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 getter with one optional parameter and an output schema, the description covers the essential context: what it retrieves, how to prepare (get_connected_accounts), and how to target an instance. It omits explicit error scenarios or comparison with the update counterpart, but the presence of an output schema reduces the need to describe return values. Overall, it is sufficient for 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?
The input schema already describes clerk_instance_id thoroughly, including its format and default behavior. The description's parameter guidance ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account') largely mirrors the schema, adding minimal new information. With 100% schema coverage, the baseline is 3, and no compensating detail is 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 opens with 'Retrieve OAuth settings for a connected Clerk instance,' using a specific verb and resource. It clarifies that this targets connected Clerk instances, distinguishing it from sibling tools like clerk.get_instance_settings and clerk.update_instance_oauth_settings. The name itself reinforces the OAuth 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?
The description explicitly instructs to 'Call clerk.get_connected_accounts first,' providing a clear prerequisite. It also explains how to target a specific connection via clerk_instance_id or fall back to the default account. However, it does not explicitly mention alternatives for modification (e.g., clerk.update_instance_oauth_settings) or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_instance_organization_settingsAInspect
Retrieve organization feature settings for a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns organization feature settings.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization_settings | No | Clerk instance organization settings from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It correctly indicates a read operation ('Retrieve') and adds a cost note, but it does not disclose potential side effects, authentication requirements, rate limits, or any other behavioral traits. The prerequisite and token cost add some value, but significant transparency gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the main purpose, and every sentence provides useful information: what the tool does, the prerequisite call, how to target an instance, and the cost. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter, no nested objects) and the presence of an output schema, the description is enough. It covers the prerequisite, parameter usage, default behavior, and cost. Nothing critical is missing for 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?
The input schema already provides 100% coverage for the single parameter, describing the clerk_instance_id format and default behavior. The description reinforces this by restating the usage, but adds limited extra meaning beyond the schema. 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 uses a specific verb+resource ('Retrieve organization feature settings') and clearly distinguishes from sibling tools by specifying 'organization feature settings' rather than general or communication/oauth settings. It unambiguously identifies what the tool retrieves and for which entity (a connected Clerk instance).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: it instructs to call clerk.get_connected_accounts first and explains how to use the optional clerk_instance_id. It does not explicitly mention alternatives or when-not-to-use, but the prerequisite and default behavior are clearly stated, which is strong guidance for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_instance_settingsAInspect
Retrieve core settings for a connected Clerk application instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns core instance settings.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| instance_settings | No | Core Clerk instance settings from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and discloses useful behavior: the prerequisite dependency on connected accounts, the default-account behavior when clerk_instance_id is omitted, and the token cost. It does not detail error cases or return structure, but the output schema covers return values, making this adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose. Every sentence earns its place: purpose, prerequisite, parameter behavior, return value, and cost. No fluff or 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 optional parameter and an output schema, the description provides sufficient context: prerequisite call, parameter guidance, and return type. It doesn't enumerate all possible edge cases, but that's not necessary given the low complexity and existing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description essentially repeats the schema's parameter documentation ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'). Thus it adds no additional semantic value beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves core settings for a connected Clerk application instance, using the specific verb 'Retrieve' and resource 'core settings'. It distinguishes itself from sibling tools like clerk.get_instance_communication_settings and clerk.get_instance_oauth_settings by focusing on 'core' settings, and the prerequisite to call clerk.get_connected_accounts first adds further clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: call clerk.get_connected_accounts first, and explains how to target a specific connection or use the default by omitting the parameter. It does not explicitly mention alternatives or when-not-to-use, but the context is sufficient for selection and invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_jwksAInspect
Retrieve the JSON Web Key Set (JWKS) for verifying Clerk session tokens.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns public signing keys for verifying Clerk JWTs.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jwks | No | Clerk JWKS payload from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states the tool 'Returns public signing keys for verifying Clerk JWTs' and includes a cost note. This discloses the output and the read-only nature (via 'Retrieve'), but lacks explicit error cases or prerequisites beyond the get_connected_accounts call. Still, it adds valuable context beyond the bare minimum.
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 four sentences, each earning its place: purpose, usage prerequisite, parameter guidance, return value, and cost. It is front-loaded with the core verb and resource, and there is zero 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?
The tool has one optional parameter, an output schema exists, and the description covers purpose, usage, return value, and cost. It also references the necessary companion call (clerk.get_connected_accounts). For a read-only key retrieval tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing a baseline of 3. The description adds meaning by explaining why the parameter exists: 'to target a specific connection' and how to omit it for the default. This complements the schema description and gives the agent actionable decision guidance.
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 opens with a specific verb+resource: 'Retrieve the JSON Web Key Set (JWKS) for verifying Clerk session tokens.' This clearly distinguishes it from all sibling tools, none of which mention JWKS. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Call clerk.get_connected_accounts first' and explains the optional parameter behavior ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'). While it doesn't name alternatives, there are no relevant alternatives among siblings, so this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_jwt_templateAInspect
Retrieve a single JWT template from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns id, name, claims, lifetime, allowed_clock_skew, created_at, updated_at, signing_algorithm, and custom_signing_key.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| template_id | Yes | Clerk JWT template id (jtmp_...) to retrieve, update, or delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jwt_template | No | Clerk JWT template details. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the burden of behavioral disclosure. It communicates read-only intent ('Retrieve'), explains the default account behavior when clerk_instance_id is omitted, and lists the returned fields. It also adds the prerequisite call and token cost. This goes beyond the schema, though it does not discuss potential errors or permissions.
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 four sentences, each serving a distinct purpose: purpose, prerequisite/usage, return fields, and cost. No superfluous information, and the key information is 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?
The tool has only 2 parameters and an output schema, so the description needn't explain return values in depth. It adequately covers prerequisites, parameter selection, and return fields. The main gap is the lack of comparative guidance against list_jwt_templates, but overall it is sufficiently complete 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?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds marginal value by reinforcing clerk_instance_id's default behavior and the need to call get_connected_accounts first, but it does not introduce new parameter details 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 'Retrieve a single JWT template from a connected Clerk application.' The verb 'Retrieve' and the resource 'JWT template' are specific, and the word 'single' differentiates it from list_jwt_templates and mutations like create/update/delete.
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?
Provides explicit prerequisites ('Call clerk.get_connected_accounts first') and clarifies how to target a specific connection with clerk_instance_id versus omitting it for the default. However, it does not explicitly mention when to use this tool over list_jwt_templates or when not to use it, so it lacks exclusions/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_machineAInspect
Retrieve a machine by id from a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns machine metadata including scoped_machines.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| machine_id | Yes | Clerk machine id (mch_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| machine | No | Machine object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It adds useful context: the prerequisite call, the return field 'scoped_machines', and the token cost. However, it does not describe error behavior, authentication requirements beyond the prerequisite, or any potential side effects (though none are expected for a read).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the primary purpose, followed by essential prerequisite/parameter guidance and a note on return metadata. Every sentence earns its place with no redundancy or 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?
For a simple get-by-id tool with an output schema, the description covers the key aspects: purpose, connection targeting, return field, and cost. It could mention what happens when the machine_id is invalid or not found, but the presence of an output schema and the simplicity of the operation make this a minor 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?
Schema description coverage is 100%, so baseline is 3. The description adds minimal extra meaning: it reinforces that clerk_instance_id targets a specific connection and explains the prerequisite for obtaining valid IDs. It doesn't add syntax or format details beyond the schema, but with full coverage, no compensation is 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 opens with 'Retrieve a machine by id from a connected Clerk instance', which uses a specific verb and resource, clearly distinguishing this from sibling tools like list_machines (listing) and get_machine_secret_key (secret retrieval).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit prerequisite guidance: 'Call clerk.get_connected_accounts first.' It also clearly explains when to include clerk_instance_id versus omitting it for the default account. It doesn't explicitly exclude alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_machine_secret_keyAInspect
Retrieve the secret key for a machine in a connected Clerk instance.
Sensitive — the returned secret grants machine authentication; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the machine secret key.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| machine_id | Yes | Clerk machine id (mch_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| machine_secret_key | No | Machine secret key payload from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations were provided, so the description carries the full disclosure burden. It prominently warns that the returned secret grants machine authentication and should not be logged or exposed, and also notes the 5-token cost, offering meaningful behavioral context beyond the 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?
The description is well-structured with clear sections: purpose, security warning, usage steps, return value, and cost. All sentences are relevant and earn their place, though it could be slightly more concise; the organization makes it easily scannable.
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 two well-documented parameters, an output schema, and no annotations, the description covers prerequisite calls, connection targeting, sensitivity, return value, and cost. This is sufficient for an agent to select and invoke the tool correctly without needing additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reiterates the clerk_instance_id guidance already present in the schema and adds the prerequisite of calling get_connected_accounts, but it provides minimal additional parameter-specific meaning beyond what the schema already conveys.
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 explicitly states 'Retrieve the secret key for a machine in a connected Clerk instance,' using a specific verb and resource. It clearly distinguishes itself from sibling tools like get_machine and rotate_machine_secret_key by focusing solely on secret key retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description instructs the agent to call clerk.get_connected_accounts first and explains how to target a specific connection via clerk_instance_id or default to the default account. While it provides clear usage context, it does not explicitly list alternatives or when-not scenarios relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_oauth_applicationAInspect
Retrieve a single OAuth application by id from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the OAuth application summary.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| oauth_application_id | Yes | Clerk OAuth application id (oa_...) to retrieve, update, or delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| oauth_application | No | Clerk OAuth application summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it returns a summary, indicates the need for a prior call, and explains the default-account behavior. However, it does not detail error behavior, permissions, or that it is a non-mutating operation beyond the word 'Retrieve'.
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 four sentences, each serving a distinct purpose: purpose, prerequisite, parameter guidance, and return type. It is front-loaded and contains no filler.
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 retrieval tool with an output schema and full schema coverage, the description covers the essential prerequisites and parameter usage. It could be more explicit about differentiation from list_oauth_applications, but the context signals and sibling names provide enough clarity for 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 description coverage is 100%, so the baseline is 3. The description adds value by explaining how clerk_instance_id relates to the connected account and the option to omit it for the default account, which goes 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 the action: 'Retrieve a single OAuth application by id from a connected Clerk application.' It specifies the resource (OAuth application), the operation (retrieve), and the scope (single, by id), which distinguishes it from list_oauth_applications or other OAuth tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite and a conditional usage instruction: 'Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.' This tells the agent how to use the tool correctly, though it does not explicitly mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_organizationAInspect
Retrieve a single organization from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns organization id, name, slug, members_count, and created_at.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | Clerk organization id (org_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization | No | Clerk organization details. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It adds value by listing the exact return fields (id, name, slug, members_count, created_at) and the token cost. It also implies read-only behavior via 'retrieve.' It could be more explicit about side effects, but for a get operation this is sufficient.
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 four short sentences, each earning its place: purpose, prerequisite/selection, return fields, and cost. It is front-loaded and free of 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?
Given the presence of an output schema, the description need not explain return values in detail, yet it lists the key fields anyway. It covers the prerequisite, instance selection, and cost, which is complete for a simple get tool. It does not mention error cases, but that is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema for organization_id, and for clerk_instance_id it essentially restates the schema's guidance ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account' mirrors the parameter description). Thus it stays at 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 opens with a specific verb+resource: 'Retrieve a single organization from a connected Clerk application.' This clearly distinguishes it from list_organizations (plural) and get_organization_invitation, and the singular 'a single organization' conveys exactly what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Call clerk.get_connected_accounts first' and then explains how to handle clerk_instance_id (pass to target a specific connection, omit for default). It does not explicitly name alternative tools like list_organizations, but the prerequisite and selection logic are clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_organization_invitationAInspect
Retrieve a single Clerk organization invitation by id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the invitation summary including status.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| invitation_id | Yes | Clerk organization invitation id (orginv_...). | |
| organization_id | Yes | Clerk organization id (org_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| invitation | No | Requested organization invitation summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return behavior ('Returns the invitation summary including status'), the dependency on get_connected_accounts, and the token cost. It implies read-only via 'Retrieve' and does not hide side effects. This is good coverage for a getter, though it stops short of stating error conditions or authentication needs explicitly.
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 four short sentences, each earning its place: purpose, prerequisite, return value, and cost. It is front-loaded with the core action and has no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with a rich input schema and an output schema available, the description covers all essential contextual details: how to target the right connection, what the response contains, and the prerequisite call. Nothing critical is missing for selecting and invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats what the schema already says about clerk_instance_id ('omit to use default') and does not add new meaning for the parameters. It reinforces the prerequisite but does not enrich parameter understanding 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 opens with a specific verb and resource: 'Retrieve a single Clerk organization invitation by id.' This clearly distinguishes it from list_organization_invitations (plural) and revoke_organization_invitation, which are the nearest siblings. The scope ('single', 'by id') is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it instructs calling clerk.get_connected_accounts first and explains how to use clerk_instance_id (target specific or default). It does not explicitly name alternatives or exclusions, but for a simple getter this is sufficient. The prerequisite and instance targeting are practical guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_organization_roleAInspect
Retrieve an organization role by id from a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the role summary including assigned permissions.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| role_id | Yes | Clerk organization role id to retrieve, update, or delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization_role | No | Organization role summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly marks this as a read operation, discloses the return summary, and notes the token cost. It doesn't cover error cases or auth requirements, but for a simple getter this is adequate.
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 four short sentences, front-loaded with the core action. Every sentence is relevant: the prerequisite, instance selection, return summary, and cost. 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?
The tool is simple with two parameters and an output schema. The description covers all essential context: the prerequisite, connection targeting, return value, and cost, making it sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description only paraphrases the schema's existing parameter details (e.g., 'omit to use default'). No additional meaning is added 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 opens with 'Retrieve an organization role by id,' which is a specific verb and resource. It clearly states the action, the target, and the return value ('role summary including assigned permissions'), distinguishing it from listing or 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?
It explicitly instructs to call clerk.get_connected_accounts first and explains how to choose an instance or use the default. While it doesn't compare against list_organization_roles, the prerequisite and connection-targeting guidance are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_phone_numberAInspect
Retrieve a Clerk phone number by id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the phone number summary.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| phone_number_id | Yes | Clerk phone number id (idn_... or phn_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Clerk phone number id. |
| verified | No | Whether the phone number is verified. |
| phone_number | No | Phone number in E.164 format. |
| default_second_factor | No | Whether this is the user's default second factor. |
| reserved_for_second_factor | No | Whether the phone number is reserved for multi-factor authentication. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds useful context: it mentions the prerequisite call, the default account behavior, and that it returns a phone number summary. It doesn't disclose error handling or permission requirements, but for a read operation this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. Each sentence serves a distinct function (purpose, prerequisite, output, cost), with no fluff or redundant detail.
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 presence of an output schema, and complete schema parameter documentation, the description covers the essential context: the prerequisite connection, the optional instance targeting, the return summary, and cost. Nothing critical is missing for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds minimal extra meaning: 'Pass clerk_instance_id to target a specific connection, or omit it to use the default account' essentially restates the schema's existing description, providing no significant new 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 clearly states 'Retrieve a Clerk phone number by id', using a specific verb and resource. It distinguishes from sibling tools like delete_phone_number, update_phone_number, and create_phone_number by focusing on retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisite ('Call clerk.get_connected_accounts first') and explains how to use the optional clerk_instance_id parameter. While it doesn't mention alternatives or exclusions, the context is clear for when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_redirect_urlAInspect
Retrieve an allowed redirect URL by id from a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the redirect URL.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| redirect_url_id | Yes | Clerk redirect URL id to retrieve or delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| redirect_url | No | Clerk redirect URL from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Returns the redirect URL' and notes 'Cost = 3 tokens,' adding useful behavioral details beyond the schema. It implies a read-only operation via 'Retrieve,' though it does not mention error handling or authentication requirements, which prevents a perfect score.
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?
Three sentences, front-loaded with purpose, and no fluff. Every line earns its place: purpose, prerequisite/usage, return value, and cost. This is a model of concise, structured description.
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 tool with an output schema and 100% parameter coverage, the description covers the essential usage steps, including the prerequisite connected-account lookup and optional instance targeting. It could have mentioned how to discover available redirect URL ids (e.g., via list_redirect_urls), but that is a minor gap given the clarity of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters already described, including the clerk_instance_id default behavior. The description rephrases the clerk_instance_id usage but adds no new syntax or format details beyond what the schema already states. This meets the baseline for high schema coverage, but the description's added value is minimal.
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 opens with 'Retrieve an allowed redirect URL by id from a connected Clerk instance,' clearly specifying the verb, resource, and scope. This distinguishes it from sibling tools like list_redirect_urls (list all), create_redirect_url, and delete_redirect_url by the by-id retrieval focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs 'Call clerk.get_connected_accounts first,' providing a clear prerequisite. It also explains when to pass clerk_instance_id versus omit it, which is useful context for selecting the right connected account. However, it does not explicitly contrast with list_redirect_urls or other alternative tools, so it stops short of full alternative differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_sessionAInspect
Retrieve a single session from a connected Clerk application by its session id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns session id, user_id, status, last_active_at, expire_at, client_id, created_at, and updated_at.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Clerk session id (sess_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Clerk session id (sess_...). |
| status | No | Current status of the session. |
| user_id | No | Clerk user id (user_...) that owns this session. |
| client_id | No | Clerk client id associated with this session. |
| expire_at | No | Unix timestamp in milliseconds when this session expires. |
| created_at | No | Unix timestamp in milliseconds when the session was created. |
| updated_at | No | Unix timestamp in milliseconds when the session was last updated. |
| last_active_at | No | Unix timestamp in milliseconds of the last activity on this session. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses return fields and cost, and implies a read-only operation via 'Retrieve'. However, it does not mention error cases, permissions, or rate limits, which are relevant behavioral 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 compact and front-loaded, with four sentences covering purpose, prerequisites, return fields, and cost. Every sentence adds value without 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 operation, the description covers prerequisites, targeting, return fields, and cost. An output schema exists, so return format is documented. It lacks explicit error-handling notes but is otherwise complete for the tool's complexity.
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's note about clerk_instance_id largely repeats the schema's own explanation ('Omit to use the default connected account'), adding no significant new meaning beyond what is already in the 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 retrieves a single session by ID, with a specific verb and resource. It distinguishes itself from siblings like list_sessions by emphasizing 'single session' and mentioning the connected Clerk application.
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?
Provides explicit prerequisite guidance to call clerk.get_connected_accounts first and explains how to target a specific connection or default. However, it does not explicitly contrast with alternatives like list_sessions or revoke_session, leaving some ambiguity about when to prefer this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_sign_upAInspect
Retrieve an in-progress sign-up from a connected Clerk application by sign-up id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns status, contact fields, missing and unverified fields, and completion timestamps.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| sign_up_id | Yes | Clerk sign-up id (su_...) to retrieve. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Clerk sign-up id (su_...). |
| status | No | Sign-up status: "missing_requirements", "complete", or "abandoned". |
| username | No | Username associated with the in-progress sign-up. |
| last_name | No | Last name collected during sign-up. |
| abandon_at | No | Unix timestamp in milliseconds when the sign-up will be abandoned. |
| first_name | No | First name collected during sign-up. |
| phone_number | No | Phone number associated with the in-progress sign-up. |
| email_address | No | Email address associated with the in-progress sign-up. |
| missing_fields | No | Fields still required before the sign-up can complete. |
| created_user_id | No | Clerk user id created when the sign-up completed. |
| unverified_fields | No | Fields that still need verification. |
| created_session_id | No | Clerk session id created when the sign-up completed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses return contents (status, contact fields, missing/unverified fields, completion timestamps) and a non-standard cost of 3 tokens. It also implies read-only behavior through 'Retrieve.' Not exhaustive (e.g., no error behavior), but strong for a simple getter.
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?
Four sentences, each serving a purpose: purpose (sentence 1), prerequisite (sentence 2), instance parameter guidance (sentence 3), return summary and cost (sentence 4). Front-loaded, no filler, perfectly 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?
The tool is simple (2 params, 1 required) and has an output schema covering return values. The description supplies all operational context needed: prerequisites, instance selection, returned fields, and cost. There are no gaps in usage 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%, so the baseline is 3. The description adds meaningful context for clerk_instance_id by explaining how to use it (target a specific connection vs. default) and references the prerequisite function. This goes beyond the schema's bare 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 clearly states the action ('Retrieve') and the specific resource ('an in-progress sign-up') by ID. It scopes to 'a connected Clerk application' and distinguishes itself from sibling tools like get_session or get_user by focusing on sign-ups.
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?
Provides a clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to target a specific connection via clerk_instance_id or default behavior. However, it does not explicitly state when not to use this tool or name alternative tools for non-sign-up scenarios, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.get_userAInspect
Retrieve one Clerk user by id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns id, name, primary email, and created_at.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to retrieve. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Requested Clerk user summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It discloses the return fields, the prerequisite call to get_connected_accounts, the default-connection behavior, and even the token cost. It does not mention error behavior for a missing user, but for a simple read operation it is appropriately transparent.
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 four short sentences, front-loaded with the purpose, then usage, output, and cost. Every sentence adds distinct information with no fluff or repetition.
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 having an output schema, the description still lists the specific returned fields, which is helpful. It covers the prerequisite, multi-account targeting, default behavior, and cost. For a straightforward get-by-id tool, the context is complete and no critical gaps are evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description mainly reiterates the schema's explanation of clerk_instance_id ('target a specific connection, or omit it to use the default account'), adding little new semantic detail. The 'call clerk.get_connected_accounts first' instruction is useful but is more of a usage prerequisite than a parameter semantic.
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 opens with 'Retrieve one Clerk user by id,' which clearly specifies the verb and resource. It distinguishes this tool from siblings like list_users (which lists many) and count_users, and the mention of 'one ... user by id' makes the single-record intent unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Call clerk.get_connected_accounts first' and explains how to handle the optional clerk_instance_id—pass it for a specific connection or omit for the default. This goes beyond vague context and gives clear step-by-step instructions for when and how to use the tool correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.invite_waitlist_entryAInspect
Send an invite to the email address on a waitlist entry.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| ignore_existing | No | When true, create an invitation even if one already exists for this email. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| waitlist_entry_id | Yes | Clerk waitlist entry id (wle_...) to operate on. |
Output Schema
| Name | Required | Description |
|---|---|---|
| waitlist_entry | No | Updated Clerk waitlist entry after inviting. |
Tool Definition Quality
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 does disclose the cost (10 tokens) and the default-account fallback behavior. However, it does not elaborate on side effects such as sending duplicate invites (though the ignore_existing parameter implies a check), email delivery mechanics, or failure conditions. It is not misleading but leaves some behavioral aspects to inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, prerequisite/connection targeting, and cost. Each sentence earns its place with no fluff or redundancy. It is front-loaded with the action, then operational guidance, then cost.
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 presence of an output schema, and 100% parameter documentation, the description covers the essential aspects: what it does, the prerequisite call, how to choose the account, and cost. It lacks explicit mention of when not to use this tool versus alternatives, but the name and sibling context make that less critical. This is a solid, complete description for 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%, setting a baseline of 3. The description adds meaningful context for clerk_instance_id by explaining that it targets a specific connection and that omitting it uses the default account, which is not fully explicit in the schema description. It also instructs calling get_connected_accounts first, adding workflow context beyond the static parameter 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 first sentence 'Send an invite to the email address on a waitlist entry' clearly states the action and target resource, distinguishing it from sibling waitlist tools like delete_waitlist_entry and reject_waitlist_entry. The verb 'send invite' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.' This gives explicit prerequisite and parameter-selection guidance. It does not explicitly mention alternatives or when not to use this tool, but the guidance is strong enough for an agent to know how to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_allowlist_identifiersAInspect
List allowlisted identifiers in a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns allowlist identifiers and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of identifiers to return (1–500). | |
| offset | No | Number of identifiers to skip before returning results. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| identifiers | No | Allowlist identifiers returned for the requested page. |
| total_count | No | Total number of allowlist identifiers for the instance. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses return content ('allowlist identifiers and total_count'), a prerequisite, and the cost in tokens. It does not explicitly state read-only safety, but 'List' implies it, and the added context about connections and cost goes 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?
The description is four concise sentences, each adding distinct value: purpose, prerequisite, parameter targeting, and return content. It is front-loaded with the core purpose and avoids 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 list tool with no annotations and an output schema, the description covers the key contextual elements: prerequisite, targeting, return shape, and cost. It could mention pagination behavior explicitly, but the schema covers limit/offset, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the clerk_instance_id parameter's meaning ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account') but adds little beyond the schema. No additional semantics for limit and offset are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the resource ('allowlisted identifiers') with a clear scope ('in a connected Clerk instance'). It distinguishes itself from sibling tools like create_allowlist_identifier and list_blocklist_identifiers by clearly stating it lists allowlist identifiers.
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 clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to target a specific connection versus using the default. It does not explicitly mention when to use this over alternatives, but the context is sufficient for a list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_api_keysAInspect
List API keys in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns api_keys and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of API keys to return (1–500). | |
| query | No | Search query to filter API keys by name. | |
| offset | No | Number of API keys to skip before returning results. | |
| subject | Yes | Subject to list API keys for (user_... or org_...). | |
| key_type | No | Filter by API key type (typically "api_key"). | |
| include_invalid | No | When true, include revoked or expired API keys. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| api_keys | No | API keys matching the request. |
| total_count | No | Total number of API keys matching the filters. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses a prerequisite (get_connected_accounts), the instance selection behavior, returns, and cost. The read-only nature is implicit via 'list.' The cost and prerequisite add useful context beyond the 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?
The description is four short sentences with no redundant content. It front-loads the core purpose, then provides necessary contextual steps, return info, and cost—all without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers prerequisite, instance targeting, return fields, and cost. Output schema exists, so return details are not needed. Minor gaps like pagination behavior are covered by schema params. Overall, sufficiently complete for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The only extra note is 'Pass clerk_instance_id... or omit,' but the schema already includes that detail. No significant additional meaning is added 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 states 'List API keys in a connected Clerk application,' providing a specific verb, resource, and scope. This clearly distinguishes it from related tools like clerk.get_api_key (single key) and clerk.create_api_key (creation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: 'Call clerk.get_connected_accounts first' and explains how to target a specific instance or use the default. It lacks explicit exclusions or named alternatives, but the context is solid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_blocklist_identifiersAInspect
List blocklisted identifiers in a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns blocklist identifiers and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of identifiers to return (1–500). | |
| offset | No | Number of identifiers to skip before returning results. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| identifiers | No | Blocklist identifiers returned for the requested page. |
| total_count | No | Total number of blocklist identifiers for the instance. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the dependency on connected account, the return shape (blocklist identifiers and total_count), and cost in tokens. It implies a read-only list operation; not stating auth/rate limits is acceptable for a simple list.
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?
Four concise sentences, leading with the action, then usage prerequisite, return values, and cost. No filler or redundant detail.
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 straightforward list endpoint with fully documented parameters and an output schema, the description covers prerequisite, instance selection, return contents, and cost. It is complete without unnecessary elaboration.
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 already provides descriptions for all three parameters (100% coverage). The description adds context about how to obtain the clerk_instance_id and the default behavior, but does not significantly extend the schema's explanation of limit/offset.
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 (List) and resource (blocklisted identifiers), clearly distinguishing this from sibling operations like create_blocklist_identifier or list_allowlist_identifiers. The scope ('in a connected Clerk instance') and orientation (lists existing identifiers) are immediately 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?
It provides explicit preface instructions: call clerk.get_connected_accounts first and how to either pass a specific inst_id or use the default. This gives clear usage context without explicitly contrasting against alternatives, but the purpose is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_domainsAInspect
List custom domains configured for a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns custom domain summaries and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domains | No | Custom domains configured for the connected Clerk instance. |
| total_count | No | Total number of domains. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses the return shape ('custom domain summaries and total_count') and the cost (5 tokens), but does not detail pagination, ordering, or any side effects. This is adequate for a read-only list operation but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences, each with a clear purpose: what it does, prerequisite/parameter usage, return values, and cost. No fluff, well front-loaded with the primary action.
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 one parameter and an output schema, the description covers purpose, prerequisite, parameter semantics, return values, and even cost. It is complete for the tool's complexity; no missing critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents clerk_instance_id. The description mostly restates the schema ('Pass clerk_instance_id to target... or omit it'), adding minimal extra meaning beyond the prerequisite connection. 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: 'List custom domains configured for a connected Clerk instance.' This is a specific verb+resource that distinguishes it from other list_* tools, such as list_organization_domains, by focusing on custom domains for a connected Clerk instance.
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?
Provides explicit usage guidance: 'Call clerk.get_connected_accounts first' and explains the clerk_instance_id parameter behavior (pass to target specific, omit for default). This is clear context with a prerequisite, though it does not mention when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_enterprise_connectionsAInspect
List enterprise SSO (SAML/OIDC) connections in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns enterprise_connections summaries plus total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1–500). | |
| active | No | Filter by active status. Omit to return all connections. | |
| offset | No | Number of results to skip before returning. | |
| organization_id | No | Filter connections linked to this Clerk organization id (org_...). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_count | No | Total number of enterprise connections matching the query. |
| enterprise_connections | No | Enterprise SSO connections in the connected Clerk application. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the prerequisite, default account behavior, return contents, and cost (5 tokens), but does not explicitly state that it is read-only, nor does it mention error conditions, rate limits, or other behavioral constraints. This 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 four sentences, front-loaded with the main purpose, and includes a prerequisite and cost. Every sentence earns its place—no wasted words, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are already defined, and the description adds valuable context about prerequisites and targeting. It does not address potential errors or unconfigured connections, but given the tool's simplicity and strong schema, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaningful semantics for clerk_instance_id by explaining how to target a specific connection or fall back to the default, which goes beyond the schema's basic 'Clerk instance id' note. This boosts it to a 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 uses a specific verb ('List'), resource ('enterprise SSO (SAML/OIDC) connections'), and scope ('in a connected Clerk application'). It clearly distinguishes from sibling tools like create_enterprise_connection and get_enterprise_connection by focusing on 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?
Provides explicit usage guidance: calls clerk.get_connected_accounts first, and explains how to target a specific connection via clerk_instance_id or omit for default. However, it does not mention when not to use the tool or name alternative tools, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_enterprise_connection_test_runsAInspect
List SAML or OIDC debug test runs for an enterprise SSO connection.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns test_runs summaries plus total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1–500). | |
| offset | No | Number of results to skip before returning. | |
| status | No | Filter by test run status: "pending", "success", or "failed". | |
| connection_id | Yes | Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| test_runs | No | Enterprise connection SSO test runs. |
| total_count | No | Total number of test runs matching the query. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses the return shape ('Returns test_runs summaries plus total_count'), the cost, and the need to call get_connected_accounts first. It does not mention pagination details or status filter behavior, but these are visible in the schema, and the tool is a simple list 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 four short sentences, each earning its place: purpose, prerequisite, return value, and cost. It is front-loaded with the core action and avoids redundant detail.
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 presence of an output schema and the clear prerequisite, the description is complete enough for a list operation. It could elaborate on interpreting test run statuses, but the schema already documents the status filter, and the return type is stated.
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 5 parameters at 100%, so the baseline is 3. The description adds extra meaning for clerk_instance_id (target a specific connection or default account) but does not enrich the other parameters beyond schema 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 clearly states the tool lists 'SAML or OIDC debug test runs for an enterprise SSO connection', using a specific verb and resource. It is easily distinguished from siblings like list_enterprise_connections (lists connections themselves) and create_enterprise_connection_test_run (creates runs).
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?
Provides an explicit prerequisite: 'Call clerk.get_connected_accounts first.' It also explains when to pass clerk_instance_id versus omit it. Though it doesn't name alternative tools directly, the guidance clarifies the expected calling pattern and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_invitationsAInspect
List application invitations in a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns invitation id, email_address, status, created_at, and revoked for each invitation, plus total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of invitations to return (1–500). | |
| offset | No | Number of invitations to skip before returning results. | |
| status | No | Optional status filter: "pending", "accepted", "revoked", or "expired". | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| invitations | No | Invitations returned for the requested page. |
| total_count | No | Total number of invitations returned on this page. |
Tool Definition Quality
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 transparently discloses return fields (id, email_address, status, created_at, revoked, total_count) and cost. It also reveals the prerequisite dependency. While it doesn't explicitly state it's read-only, the verb 'List' implies non-destructive behavior, and the cost disclosure adds 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 four sentences with no redundant or fluffy content. It front-loads the purpose, then gives prerequisites, return fields, and cost. Every sentence 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's complexity (list operation with filters and a multi-instance context), the description is complete: it covers purpose, prerequisite, targeting a connection, return fields, and cost. The output schema exists, so return values are further documented. It could mention pagination or error handling, but these are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are already described. The description adds a bit of context for clerk_instance_id (calling get_connected_accounts first), but this is also present in the schema. No significant new meaning is added beyond what the schema provides, so the 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 it lists application invitations in a connected Clerk instance, using a specific verb+resource. It distinguishes from siblings like clerk.create_invitations and clerk.list_organization_invitations by specifying 'application' invitations.
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?
Provides explicit prerequisite: 'Call clerk.get_connected_accounts first.' It also explains how to target a specific connection (clerk_instance_id) or use the default. However, it does not mention alternatives like list_organization_invitations, so it lacks explicit when-not/alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_jwt_templatesAInspect
List JWT templates in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns each template's id, name, claims, lifetime, allowed_clock_skew, created_at, updated_at, signing_algorithm, and custom_signing_key, plus total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_count | No | Total number of JWT templates. |
| jwt_templates | No | JWT templates in the connected Clerk application. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing return fields, total_count, and cost in tokens. It also explains the default-account behavior and prerequisite. It does not mention pagination, but for a read-only list tool this is acceptable.
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 and front-loaded, with the purpose stated in the first sentence. Each subsequent sentence adds essential information: prerequisite, parameter usage, return fields, and cost. There is no fluff or repetition; every sentence 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's simplicity (one optional param, output schema exists), the description is thorough. It covers prerequisites, parameter semantics, return data, and cost. No critical information is missing for an agent to select and invoke this 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%, so the baseline is 3. The description adds value beyond the schema by explaining where the clerk_instance_id comes from (get_connected_accounts) and what happens if omitted. This provides meaningful context for how to correctly populate the parameter.
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 lists JWT templates in a connected Clerk application, using a specific verb and resource. It distinguishes itself from the singular get_jwt_template and other list tools by specifying 'in a connected Clerk application' and enumerating the returned fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: call clerk.get_connected_accounts first, and explains how to target a specific connection or default account. It lacks an explicit comparison to alternatives like get_jwt_template, but the context is clear enough for an agent to infer when to use this list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_m2m_tokensAInspect
List M2M tokens for a machine in a connected Clerk instance.
Sensitive — returns token metadata for active machine credentials.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns M2M token summaries plus total_count. JWT-format tokens are not listed.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1–500). | |
| offset | No | Number of results to skip before returning. | |
| expired | No | Include expired tokens (default false). | |
| revoked | No | Include revoked tokens (default false). | |
| subject | Yes | Machine id (mch_...) whose tokens to list. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| m2m_tokens | No | M2M tokens for the requested page. |
| total_count | No | Total number of matching M2M tokens. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the operation is 'Sensitive', returns token metadata for active credentials, notes cost, and states that JWT-format tokens are not listed. This adds meaningful safety and scope context beyond the schema, though it does not mention read-only nature or behavior around expired/revoked defaults (covered by 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?
The description is compact and front-loaded, starting with the purpose. Every sentence contributes: purpose, sensitivity warning, prerequisite, instance targeting, return summary, and cost. No filler or repetition.
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 high schema coverage (100%) and presence of an output schema, the description only needs to cover the operation flow and key caveats. It successfully includes prerequisite (connected accounts), instance selection, a sensitivity note, cost, and a return-value summary. No important context appears missing for an agent to select and 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 six parameters described in the input schema. The description adds only minimal value by reinforcing clerk_instance_id usage ('omit to use the default account') and noting JWT tokens are not returned, but it does not add substantive detail 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 opens with 'List M2M tokens for a machine in a connected Clerk instance,' which is a specific verb+resource+scope. It clearly differentiates from sibling list tools like list_machines or list_users by targeting M2M tokens for a machine and explicitly notes JWT-format tokens are excluded.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit usage context by instructing to call clerk.get_connected_accounts first and explaining how to use clerk_instance_id for targeting a connection or omit it for default. It also mentions a limitation (JWT-format tokens not listed) but does not explicitly name alternatives or state when not to use the tool, so it falls short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_machinesAInspect
List machines in a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns machine summaries plus total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1–500). | |
| query | No | Filter by machine id (exact) or name (partial match). | |
| offset | No | Number of results to skip before returning. | |
| order_by | No | Sort by name or created_at; prefix with - for descending (default -created_at). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| machines | No | Machines for the requested page. |
| total_count | No | Total number of machines in the instance. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the safety/behavior burden. It adds valuable context beyond the schema: prerequisite (call get_connected_accounts), return shape (machine summaries plus total_count), and cost (5 tokens). It does not disclose pagination behavior or authorization, but those are less critical for a read-only list operation and are partially covered by 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?
The description is four short sentences with the core purpose stated first. Each sentence adds useful information: prerequisite, connection targeting, return shape, and cost. 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?
With a 100% schema coverage and an output schema, the description need not explain everything. It covers the key prerequisite (get_connected_accounts), how to target connections, return data shape, and cost, making it complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all five parameters. The description only reiterates clerk_instance_id's semantics ('target a specific connection, or omit to use default'), which adds no new information beyond the schema's own description. Therefore 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 opens with the verb 'list' and a specific resource ('machines in a connected Clerk instance'), clearly distinguishing this from single-machine tools like clerk.get_machine and mutation tools like clerk.create_machine. The scope ('connected Clerk instance') adds context without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call clerk.get_connected_accounts first and explains how to use clerk_instance_id to target a specific connection or omit it for the default. It does not explicitly state when to avoid this tool or name an alternative (e.g., clerk.get_machine for a single machine), but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_oauth_applicationsAInspect
List OAuth applications registered in a connected Clerk application when Clerk acts as an OAuth identity provider.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns each application's id, name, client_id, redirect_uris, scopes, public flag, and related endpoint URLs, plus total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_count | No | Total number of OAuth applications. |
| oauth_applications | No | OAuth applications in the connected Clerk application. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return fields (id, name, client_id, redirect_uris, scopes, public flag, endpoint URLs, total_count) and the token cost (5 tokens), plus the prerequisite call. It does not discuss potential errors or pagination, but for a read-only list operation, this is solid 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?
Four tight sentences: purpose, usage instruction, return values, and cost. No redundancy, front-loaded with the core purpose, and every sentence 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?
The tool has low complexity (one optional param) and an output schema exists, so return values are already specified. The description adds valuable context: the OAuth provider scenario, the prerequisite call, and the cost. Everything needed to invoke and interpret the result is covered.
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 already fully documents clerk_instance_id with the same info ('Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account.'). The description repeats this information without adding new semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'List OAuth applications registered in a connected Clerk application when Clerk acts as an OAuth identity provider.' This specific context differentiates it from sibling tools like list_api_keys or list_organizations, and the plural form makes it distinct from get_oauth_application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit prerequisite ('Call clerk.get_connected_accounts first') and explains how to use the optional parameter ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'). It does not explicitly mention alternatives or when-not to use, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_organization_domainsAInspect
List organization domains across a Clerk instance. Optionally filter to one organization via organization_id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns domain summaries and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1–500). | |
| query | No | Search domains by name or organization id. Values starting with org_ match organization id exactly; otherwise performs a case-insensitive partial match on the domain name. | |
| offset | No | Number of results to skip before returning. | |
| verified | No | Filter by verification status: "true" or "false". | |
| enrollment_mode | No | Filter or set enrollment mode: manual_invitation, automatic_invitation, or automatic_suggestion. | |
| organization_id | No | Filter domains to a specific Clerk organization id (org_...). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domains | No | Organization domains returned for the requested page. |
| total_count | No | Total number of domains matching the filter. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the return format ('domain summaries and total_count'), mentions a prerequisite, and states a token cost. It doesn't explicitly state read-only behavior or rate limits, but 'list' implies read-only and the disclosed cost adds 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 three sentences plus a cost note, front-loaded with the purpose, and contains no filler. Each sentence adds distinct value: purpose, prerequisite/usage, and return/cost.
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 output schema exists and all parameters are described in the schema, the description covers the key non-schema aspects: prerequisite, optional filtering, and return summary. Minor gaps like error handling or sorting behavior are not critical for a straightforward list 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?
The schema already provides 100% parameter description coverage. The description adds contextual meaning for clerk_instance_id by explaining its relationship to get_connected_accounts and the default-account fallback, which is valuable 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 identifies the action ('List') and resource ('organization domains'), specifying scope ('across a Clerk instance') and an optional filter ('via organization_id'). This distinguishes it from sibling tools like list_domains or list_organizations by the specific resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call clerk.get_connected_accounts first and explains how to use clerk_instance_id to target a specific connection or use the default. This provides clear usage context, though it doesn't explicitly discuss when to prefer this over related list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_organization_invitationsAInspect
List organization invitations across a Clerk instance. Optionally filter to one organization via organization_id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns invitation summaries and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1–500). | |
| offset | No | Number of results to skip before returning. | |
| status | No | Filter by invitation status: pending, accepted, revoked, or expired. | |
| organization_id | No | Filter invitations to a specific Clerk organization id (org_...). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| invitations | No | Invitations returned for the requested page. |
| total_count | No | Total number of invitations matching the filter. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It adds context beyond the schema by specifying the prerequisite call, default account behavior, return shape ('invitation summaries and total_count'), and a cost of 5 tokens. It does not detail pagination behavior or deeper side effects, but the read-only nature of 'List' plus the return info is reasonably transparent.
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: three short paragraphs front-load the purpose, then provide usage guidance, then state return and cost. Every sentence conveys useful information without redundancy or filler.
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 an output schema and a fully documented input schema, the description supplies the missing contextual pieces: why to call get_connected_accounts first, how to choose an instance, optional filtering, return summary, and cost. Nothing essential is left unexplained for a list operation with this schema richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema for organization_id ('Optionally filter to one organization') and clerk_instance_id ('Call clerk.get_connected_accounts first... omit to use the default account'), which are the two most context-heavy parameters. This raises the score above 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 uses a specific verb ('List') and resource ('organization invitations'), and clearly scopes the operation 'across a Clerk instance.' It also mentions the optional organization_id filter, which distinguishes this from cluster-wide or user-invitation listing tools like clerk.list_invitations.
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 clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to use clerk_instance_id to target a connection or default to the account. It lacks explicit exclusionary guidance (e.g., 'use list_invitations for user invitations'), but the context is clear enough for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_organization_membershipsAInspect
List members of a Clerk organization.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns membership id, user_id, role, and created_at for each member, plus total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of organization memberships to return (1–500). | |
| offset | No | Number of organization memberships to skip before returning results. | |
| organization_id | Yes | Clerk organization id (org_...) whose members to list. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| memberships | No | Memberships returned for the requested page. |
| total_count | No | Total number of members in the organization. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It adds the prerequisite call, return field list, cost of 5 tokens, and default connection behavior. This is useful context beyond the schema, though it omits details like error handling or rate limits.
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 four short, focused sentences: purpose, prerequisite/usage, return values, and cost. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation, the description covers purpose, prerequisite, return values, and cost. Limit and offset are fully described in the schema, and an output schema exists, so the description is complete enough for an AI agent to select and 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%, so each parameter already has a description. The description adds meaningful context for clerk_instance_id by linking it to clerk.get_connected_accounts and the default account behavior, but adds little beyond schema for limit, offset, or organization_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?
The description opens with 'List members of a Clerk organization,' a specific verb and resource. It lists returned fields and clearly distinguishes this from related tools like clerk.list_user_organization_memberships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit steps: call clerk.get_connected_accounts first, pass clerk_instance_id to target a connection, or omit it to use the default. This gives clear usage context, though it does not explicitly name alternative tools or exclusion scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_organization_permissionsAInspect
List organization permissions in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns permission summaries and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1–500). | |
| query | No | Search by name or key. | |
| offset | No | Number of results to skip before returning. | |
| order_by | No | Sort order with optional + or - prefix (for example -created_at or name). Defaults to -created_at. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_count | No | Total number of organization permissions. |
| organization_permissions | No | Organization permissions in the connected Clerk application. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses the return shape (permission summaries, total_count), the token cost, and the connection targeting behavior. However, it does not explicitly state that this is a read-only operation or describe pagination behavior beyond what the schema already provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose in the first sentence. Each subsequent sentence adds essential operational detail (prerequisite call, parameter targeting, return info, cost) with no unnecessary verbiage.
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 rich input schema (all parameters described) and the presence of an output schema, the description covers the key prerequisites and provides a high-level summary of results. The inclusion of the prerequisite get_connected_accounts call and the token cost makes it contextually complete for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaningful context for clerk_instance_id by explaining its relationship to clerk.get_connected_accounts and the default behavior, exceeding the schema's generic 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 states a specific verb+resource: 'List organization permissions in a connected Clerk application.' This clearly distinguishes it from sibling tools like clerk.list_organization_roles and clerk.list_organizations, which deal with different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context by instructing to call clerk.get_connected_accounts first and explains how to use clerk_instance_id to target a specific connection or omit it for the default. However, it does not explicitly state when not to use this tool or compare it to alternative list operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_organization_rolesAInspect
List organization roles in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns role summaries with nested permissions and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (1–500). | |
| query | No | Search by name or key. | |
| offset | No | Number of results to skip before returning. | |
| order_by | No | Sort order with optional + or - prefix (for example -created_at or name). Defaults to -created_at. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_count | No | Total number of organization roles. |
| organization_roles | No | Organization roles in the connected Clerk application. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the return shape ('Returns role summaries with nested permissions and total_count') and cost ('Cost = 5 tokens'), and clarifies default connection behavior. While it does not explicitly state read-only nature, the verb 'List' implies it, and the response summary adds useful 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 four short, front-loaded sentences: purpose, prerequisite/usage, return summary, and cost. Every sentence earns its place with no redundancy or filler. The structure is scannable and effective.
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 optional params, output schema available), the description covers the prerequisite, connection targeting, return shape, and cost. It might have mentioned the sibling get_organization_role for single-role lookups, but the list-vs-get distinction is obvious. Overall, it is sufficiently 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?
With 100% schema coverage, the baseline is 3. The description adds meaningful semantic value for clerk_instance_id by explaining how to target a specific connection versus the default, which goes beyond the schema's dry description. It does not need to elaborate on the other parameters since the schema already documents them thoroughly.
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 opens with 'List organization roles in a connected Clerk application,' which is a specific verb+resource statement that clearly identifies the tool's function. It inherently distinguishes itself from sibling tools like list_organizations and list_organization_permissions by naming the exact resource (organization roles) and scope (connected Clerk application).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Call clerk.get_connected_accounts first' establishes a prerequisite, and 'Pass clerk_instance_id to target a specific connection, or omit it to use the default account' clarifies when to use the instance parameter. It does not mention alternatives or when not to use the tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_organizationsAInspect
List organizations in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns organization id, name, slug, members_count, and created_at for each organization, plus total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of organizations to return (1–500). | |
| query | No | Optional search string to filter organizations by name or slug. | |
| offset | No | Number of organizations to skip before returning results. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_count | No | Total number of organizations in the Clerk application. |
| organizations | No | Organizations returned for the requested page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return fields (id, name, slug, members_count, created_at, total_count) and the token cost, and implies a read-only operation. However, it does not mention error cases or pagination behavior, which are relevant for a list 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?
Four tight sentences, front-loaded with the purpose, each sentence adds value without redundancy. The description is efficient and easy to scan.
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 output schema exists and all parameters are documented, the description covers prerequisites, return fields, and cost. It is complete enough for an agent to invoke the tool correctly, though it could mention pagination strategies for large result sets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds practical guidance for clerk_instance_id (target specific connection or use default) and mentions the query filter intent, going slightly 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 clearly states the tool lists organizations in a connected Clerk application, using the specific verb 'list' and a clear resource. It distinguishes itself from sibling tools like get_organization and list_organization_memberships by 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?
It explicitly instructs calling clerk.get_connected_accounts first and explains how to use clerk_instance_id to target a specific connection or default. This provides clear context for when to use the tool, though it lacks explicit exclusions or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_redirect_urlsAInspect
List allowed redirect URLs for a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns redirect URL summaries and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of redirect URLs to return (1–500). | |
| offset | No | Number of redirect URLs to skip before returning results. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_count | No | Total number of redirect URLs. |
| redirect_urls | No | Allowed redirect URLs returned for the requested page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses useful behavioral context: the prerequisite call, the ability to target a specific connection or default, the return payload (summaries and total_count), and the token cost. It does not mention pagination details or permissions, but covers key operational aspects.
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?
Four concise sentences: purpose, prerequisite/usage, return value, and cost. Every sentence adds information and the description is front-loaded with the core purpose, making it efficient and easy to scan.
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 an output schema and only three optional parameters, the description covers the essential context: what it lists, how to target the right instance, what it returns, and cost. It omits explicit pagination explanation but the schema covers that, so it is reasonably complete for a simple list 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 coverage is 100%, so baseline is 3. The description adds no new parameter semantics beyond what the schema already provides for clerk_instance_id ('use the default connected account') and does not mention limit/offset at all. The added context in the description mirrors the schema description, offering 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 clearly states 'List allowed redirect URLs for a connected Clerk instance' with a specific verb and resource. It distinguishes itself from sibling tools like get_redirect_url (single URL), create_redirect_url, and delete_redirect_url by focusing on listing all allowed URLs.
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?
Provides explicit prerequisite ('Call clerk.get_connected_accounts first') and usage guidance for the optional clerk_instance_id parameter. It clearly explains how to target a specific connection or use the default, but does not explicitly mention when to prefer this over alternative list tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_sessionsAInspect
List sessions in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns session id, user_id, status, last_active_at, and expire_at for each session.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of sessions to return (1–500). | |
| offset | No | Number of sessions to skip before returning results. | |
| status | No | Filter sessions by status. Accepted values: abandoned, active, ended, expired, removed, replaced, revoked. | |
| user_id | No | Filter sessions to those belonging to this Clerk user id (user_...). Clerk requires user_id or client_id when listing sessions; pass user_id here. | |
| client_id | No | Filter sessions to those belonging to this Clerk client id (client_...). | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sessions | No | Sessions returned for the requested page. |
| total_count | No | Total number of sessions returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It states the return fields (session id, user_id, status, last_active_at, expire_at) and the cost (5 tokens), but it does not mention pagination behavior, error conditions, or any potential side effects. The prerequisite to connect is mentioned, but it is more of a usage guideline than a behavioral trait.
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 four sentences long, front-loaded with the purpose, then the prerequisite, then output fields, and finally cost. Every sentence contributes necessary information without fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high schema coverage and the existence of an output schema, the description is reasonably complete. It covers the prerequisite, the connection targeting, and the returned fields. Minor gaps remain around filtering requirements (e.g., user_id vs client_id), but those are already documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters already have clear descriptions. The tool description adds the note about passing clerk_instance_id to target a connection, but this is also present in the schema. It does not add substantial meaning beyond the schema, earning the baseline score 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 opens with 'List sessions in a connected Clerk application,' which clearly identifies the action (list) and the resource (sessions). It distinguishes itself from siblings like clerk.get_session (single session retrieval) by focusing on the plural listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to target a specific connection via clerk_instance_id or use the default account. This provides useful context for when to use the tool, though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_user_organization_membershipsAInspect
List all organizations a specific Clerk user belongs to.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns membership id, organization_id, role, and timestamps.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of organization memberships to return (1–500). | |
| offset | No | Number of organization memberships to skip before returning results. | |
| user_id | Yes | Clerk user id (user_...) whose memberships to list. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| memberships | No | Organization memberships for the user. |
| total_count | No | Total number of organization memberships for the user. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses return fields ('membership id, organization_id, role, and timestamps') and cost. It also notes the connection prerequisite. Listing is inherently read-only, and no side effects are mentioned, but the description adds useful 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 four short sentences, front-loaded with the core purpose, and includes only necessary details: prerequisite, return fields, and cost. No filler.
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 read-only list tool with a complete schema and output schema, the description covers the main purpose, prerequisite, return contents, and cost. It doesn't need to explain pagination since limit/offset are self-descriptive in the schema.
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 already documents all 4 parameters with descriptions (100% coverage), so the baseline is 3. The description adds value by explaining clerk_instance_id's relationship to get_connected_accounts and the fallback to default account, which supplements 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 'List all organizations a specific Clerk user belongs to' with a specific verb and resource. It distinguishes itself from sibling tools like list_organizations and list_organization_memberships by explicitly scoping to a user's memberships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides an explicit prerequisite: 'Call clerk.get_connected_accounts first' and explains how to target a specific connection via clerk_instance_id. This gives clear context for use, though it doesn't explicitly contrast with alternatives like list_organization_memberships.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_usersAInspect
List users in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns user id, name, primary email, and created_at for each user, plus total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of users to return (1–500). | |
| offset | No | Number of users to skip before returning results. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| users | No | Users returned for the requested page. |
| total_count | No | Total number of users in the Clerk application. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the prerequisite connection, the exact return fields (including total_count), and the token cost. It does not mention pagination or sorting, but for a read-only listing tool this is acceptable, especially since the return shape is described.
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 four sentences, front-loaded with the core purpose, and every sentence adds meaningful context: prerequisite, parameter choice, return payload, and cost. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is quite complete: it explains the connection prerequisite, default behavior, returned fields, and cost. The output schema exists, so return values need no further elaboration. Lacks discussion of pagination edge cases, but that is not a significant gap for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented by the schema. The description adds value by explaining the behavior of clerk_instance_id (target a specific connection or omit for default), which goes beyond the schema's 'omit to use default' note. It does not elaborate on limit/offset, but those 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 states a specific action 'List users' with a clear resource ('connected Clerk application') and explicitly notes it returns user id, name, primary email, and created_at. It distinguishes itself from sibling list_* tools by specifying the resource type (users) and providing connection context.
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 explicitly instructs to call clerk.get_connected_accounts first and explains how to target a connection via clerk_instance_id, which is a clear usage prerequisite. It does not discuss when to choose this over alternatives like clerk.count_users, but it provides enough context to know when to use this tool for listing users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.list_waitlist_entriesAInspect
List waitlist entries in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns waitlist entry summaries and total_count.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of waitlist entries to return (1–500). | |
| query | No | Filter by email address or waitlist entry id. | |
| offset | No | Number of waitlist entries to skip before returning results. | |
| status | No | Optional status filter: "pending", "invited", "rejected", or "completed". | |
| order_by | No | Sort order: created_at, email_address, or invited_at with optional + or - prefix. Defaults to -created_at. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total_count | No | Total number of waitlist entries on this page. |
| waitlist_entries | No | Waitlist entries returned for the requested page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the need for a prior connection call, the return shape ('waitlist entry summaries and total_count'), and even the token cost. It does not mention side effects, but as a list operation none are expected; the connection prerequisite and cost add valuable 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 four short, focused sentences. It front-loads the primary action, then provides prerequisite, parameter guidance, return info, and cost in a logical order. Every sentence adds value with no redundancy or filler.
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?
An output schema exists, so the description need not detail return fields; it still notes the key return components. The description covers the essential operational context (connection prerequisites, instance selection, cost) and relies on the rich input schema for parameter details. It is complete for a list tool, though slightly more detail on pagination could push it higher.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by clarifying the role of clerk_instance_id (target a specific connection or default) and framing all parameters within the context of a connected Clerk application. This extra guidance justifies a score above 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 opens with a clear verb+resource statement: 'List waitlist entries in a connected Clerk application.' This precisely identifies the tool's function and distinguishes it from sibling tools like list_users, create_waitlist_entries, or invite_waitlist_entry. The scope (connected Clerk application) is also made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to choose between instances ('Pass clerk_instance_id... or omit it to use the default account'). It does not explicitly name alternative tools, but for a simple list operation the context is sufficient and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.reject_waitlist_entryAInspect
Reject a waitlist entry in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated waitlist entry.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| waitlist_entry_id | Yes | Clerk waitlist entry id (wle_...) to operate on. |
Output Schema
| Name | Required | Description |
|---|---|---|
| waitlist_entry | No | Updated Clerk waitlist entry after rejection. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides useful behavioral context: it requires a connected account, returns the updated waitlist entry, and states the token cost. However, it omits side-effect details such as whether rejection sends a notification, whether it is reversible, or any permission requirements beyond the connected-account prerequisite.
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 four short sentences, front-loaded with the purpose and including only necessary details: prerequisite, parameter targeting, return value, and cost. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with a full output schema, the description covers the essential ground: purpose, prerequisite, parameter selection, and return behavior. It could be slightly more complete by naming alternatives or side effects, but it is sufficient for an agent to invoke 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%, and the schema already fully describes both parameters, including the clerk_instance_id default behavior. The description restates the targeting logic but adds no new parameter-level guidance 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 opening sentence 'Reject a waitlist entry in a connected Clerk application' uses a specific verb and resource, clearly distinguishing this from related operations like invite_waitlist_entry and delete_waitlist_entry. The target object (waitlist entry) and scope (Clerk application) are immediately explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit prerequisites: 'Call clerk.get_connected_accounts first' and explains how to select a connection via clerk_instance_id or default. It does not compare against sibling waitlist tools, but the context of use is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.replace_user_metadataAInspect
Replace the entire contents of one metadata namespace for a Clerk user.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
The metadata body fully replaces the chosen namespace. Returns the updated user summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) whose metadata to replace. | |
| metadata | Yes | New metadata dict that fully replaces the chosen namespace. Pass an empty object to clear all keys. | |
| metadata_type | Yes | Metadata namespace to replace. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Updated Clerk user object after the metadata replacement. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses that the metadata body fully replaces the namespace, and notes it returns the updated user summary and costs 8 tokens. However, it does not mention permissions, reversibility, or side effects beyond the replacement, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: three short paragraphs covering purpose, prerequisite/parameter guidance, and behavior with cost. Each sentence earns its place, and the most important information is front-loaded in the first sentence.
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, an output schema, and nested objects. The description covers purpose, usage, return value, and cost. It could mention the available metadata namespaces or error conditions, but the output schema handles return structure, so overall it is sufficiently complete for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by clarifying that clerk_instance_id can be omitted for the default account, and emphasizes that the metadata parameter fully replaces the namespace. This supplements the schema descriptions meaningfully.
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 opens with a specific verb and resource: 'Replace the entire contents of one metadata namespace for a Clerk user.' This clearly distinguishes the replace action from the sibling 'update_user_metadata' by emphasizing full replacement. The wording is unambiguous and action-oriented.
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 explicitly instructs to call clerk.get_connected_accounts first and explains how to use clerk_instance_id (pass to target a connection, omit for default). This gives clear contextual guidance, though it does not explicitly contrast with alternative tools like update_user_metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.revoke_actor_tokenAInspect
Revoke an actor token in a connected Clerk application so it can no longer be used for impersonation.
Sensitive — invalidates a high-privilege token.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the revoked actor token object.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| actor_token_id | Yes | Clerk actor token id to revoke. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| actor_token | No | Revoked Clerk actor token object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the sensitive, invalidating nature ('Sensitive — invalidates a high-privilege token'), notes the return value, and even mentions cost. This is good behavioral context, though it could go deeper on irreversibility or permission 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 compact and front-loaded with the main action. Every sentence earns its place: purpose, sensitivity warning, prerequisite/parameter guidance, return value, and cost. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and both parameters are fully documented, the description is complete enough. It covers the high-level effect, the prerequisite workflow, the optional connection targeting, and the return value, making it self-sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the optional/default behavior of clerk_instance_id ('omit it to use the default account') and the prerequisite step to retrieve it, which goes beyond the raw schema 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 uses a specific verb+resource+effect: 'Revoke an actor token in a connected Clerk application so it can no longer be used for impersonation.' This clearly distinguishes it from sibling tools like create_actor_token and other revoke_* 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 gives explicit guidance: 'Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.' This is clear context and prerequisite instruction, though it does not explicitly state when not to use this tool or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.revoke_admin_portal_link_tokenAInspect
Revoke an admin portal link token by id in a connected Clerk instance.
Sensitive — invalidates a single-use deep-link token.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the revoked admin portal link token.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| revocation_reason | No | Optional reason recorded when revoking the link token. | |
| admin_portal_link_token_id | Yes | Admin portal link token id (aplt_...) to revoke. |
Output Schema
| Name | Required | Description |
|---|---|---|
| admin_portal_link_token | No | Revoked admin portal link token from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the token is single-use, that revoking invalidates it, and that the action is 'Sensitive'. It also notes the return value. While irreversibility is implied, the description could be more explicit 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 compact and front-loaded with the action. It efficiently includes the core function, sensitivity warning, prerequisite steps, targeting options, return value, and cost—all without extraneous 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?
Given the tool's moderate complexity (3 params, output schema present), the description covers all necessary aspects: purpose, prerequisites, parameter targeting, and return value. There is no need to explain output structure since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds procedural value beyond the schema by instructing to call clerk.get_connected_accounts first and clarifying how clerk_instance_id selects a connection, which is not fully captured in the 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 clearly states the action ('Revoke'), the resource ('admin portal link token'), and the scope ('by id in a connected Clerk instance'). It distinguishes from sibling tools like clerk.create_admin_portal_link_token and clerk.revoke_actor_token by naming the exact token type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it instructs to call clerk.get_connected_accounts first and explains how to target a specific connection via clerk_instance_id or omit it for the default. It does not explicitly mention alternatives or exclusions, but the usage scenario is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.revoke_api_keyAInspect
Revoke an API key in a connected Clerk application so it can no longer be used.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the revoked API key summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key_id | Yes | Clerk API key id (ak_...) to retrieve, update, delete, or revoke. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| revocation_reason | No | Optional reason recorded when revoking the API key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| api_key | No | Revoked Clerk API key from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the key behavioral outcome (key can no longer be used), the return value (revoked API key summary), the prerequisite call, and default account behavior. It does not detail irreversibility or authorization requirements, but covers more than the bare minimum.
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 four sentences, front-loaded with the core purpose, and each sentence adds necessary context (prerequisite, targeting, return value, cost). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema (which covers return details), the description sufficiently explains prerequisites, parameter targeting, and the result. It is complete for an agent to select and 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 description coverage is 100%, so the input schema already documents all three parameters. The description adds no significant new meaning beyond what the schema provides; it merely restates the clerk_instance_id default behavior, which is already in the schema 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 uses a specific verb ('revoke') plus resource ('API key in a connected Clerk application') and clearly states the effect ('so it can no longer be used'). This distinguishes it from sibling tools like delete_api_key (permanent deletion) and other revoke_* 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?
Provides explicit guidance: 'Call clerk.get_connected_accounts first' and explains the clerk_instance_id parameter's behavior (target specific vs. default account). It does not explicitly mention alternatives when not to use it, but the prerequisite and scoping instructions are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.revoke_invitationAInspect
Revoke a pending application invitation by invitation id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Only pending invitations can be revoked.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| invitation_id | Yes | Clerk application invitation id (inv_...) to revoke. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| invitation | No | Revoked Clerk invitation object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It reveals the prerequisite, the pending-only constraint, and the 5-token cost, but does not state whether revocation is irreversible or what happens for already-revoked invitations, leaving some behavioral ambiguity.
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?
Four short sentences, each earning its place: purpose, prerequisite, target selection, constraint, and cost. It is front-loaded with the action and contains no filler.
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 an output schema present, return values are covered. The description covers purpose, prerequisites, target selection, and a key validity constraint. It omits error handling or irreversibility, but for a simple revoke action with two parameters, it is largely sufficient.
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 already fully describes both parameters, and the description reinforces this by restating the clerk_instance_id default behavior. It adds the explicit call order (get_connected_accounts first), which is extra value 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 states a specific verb and resource: 'Revoke a pending application invitation by invitation id.' It distinguishes from sibling revoke_organization_invitation by specifying 'application invitation' and adds the 'pending' constraint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs to 'Call clerk.get_connected_accounts first' and explains how to use clerk_instance_id, providing clear context for execution. It does not explicitly mention alternatives but the 'Only pending invitations can be revoked' serves as a usage constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.revoke_m2m_tokenAInspect
Revoke an M2M token by id in a connected Clerk instance.
Sensitive — invalidates a machine authentication token.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the revoked M2M token.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| m2m_token_id | Yes | Clerk M2M token id (mt_...) to revoke. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| m2m_token | No | Revoked M2M token from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It explicitly warns 'Sensitive' and explains the consequence: 'invalidates a machine authentication token.' It also discloses the return value ('Returns the revoked M2M token') and default connection behavior, giving a clear behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, warning, usage flow, return, and cost are each covered in short sentences. There is no filler or redundant detail.
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 destructive revoke tool with no annotations, the description covers purpose, side effects, usage flow, and return value. The output schema handles return format details. The only minor omission is explicit mention of irreversibility, but 'invalidates' already implies it.
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 already describes both parameters with 100% coverage, including prefixes and default behavior. The description's parameter-related guidance ('Call clerk.get_connected_accounts first', 'Pass clerk_instance_id... or omit') largely restates schema content, adding only a sequential prerequisite.
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 opens with 'Revoke an M2M token by id in a connected Clerk instance,' using a specific verb and resource. The 'Sensitive' callout and 'invalidates a machine authentication token' further clarify the action, and the structure distinguishes it from other revoke_* siblings by targeting M2M tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states 'Call clerk.get_connected_accounts first' and explains the two modes for targeting a connection ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'). This provides clear context on how to use the tool, though it doesn't explicitly describe exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.revoke_organization_invitationAInspect
Revoke a pending Clerk organization invitation.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Only pending invitations can be revoked. Returns the updated invitation summary with status revoked.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| invitation_id | Yes | Clerk organization invitation id (orginv_...). | |
| organization_id | Yes | Clerk organization id (org_...) to operate on. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| invitation | No | Revoked organization invitation summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that only pending invitations are revocable and that it returns the updated invitation summary with status revoked. These are key behavioral details. It does not mention error handling or side effects beyond the operation, but for a simple revoke tool this is adequate.
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 four short sentences, front-loaded with the main action, then setup steps, then constraints and return value. There is no fluff; every sentence adds essential information, including the token cost, which is useful context.
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 3 parameters and an output schema, the description covers the prerequisite call, account selection, a critical precondition (only pending), and the return value. It does not discuss failure scenarios or permissions, but these are not essential given the simplicity and the existing schema. Slightly more detail on error behavior would push it to 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all three parameters clearly. The description reinforces the use of clerk_instance_id (target a specific connection vs. default), but this adds only marginal value beyond the schema, which already states 'Omit to use the default connected account'. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb 'Revoke' and a specific resource 'pending Clerk organization invitation', clearly stating the action and scope. It distinguishes from the sibling tool clerk.revoke_invitation by specifying 'organization' invitation, so the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit preconditions and steps: call clerk.get_connected_accounts first, and explains how to select a connection via clerk_instance_id (including when to omit). It also notes that only pending invitations can be revoked. However, it does not explicitly name alternative tools for other invitation types (e.g., clerk.revoke_invitation), so it lacks a direct exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.revoke_sessionAInspect
Revoke a session in a connected Clerk application, immediately ending it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the revoked session object with status set to revoked.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Clerk session id (sess_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Clerk session id (sess_...). |
| status | No | Current status of the session. |
| user_id | No | Clerk user id (user_...) that owns this session. |
| client_id | No | Clerk client id associated with this session. |
| expire_at | No | Unix timestamp in milliseconds when this session expires. |
| created_at | No | Unix timestamp in milliseconds when the session was created. |
| updated_at | No | Unix timestamp in milliseconds when the session was last updated. |
| last_active_at | No | Unix timestamp in milliseconds of the last activity on this session. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses the immediate ending effect, the prerequisite call, and the return object with 'status set to revoked.' The 'Cost = 5 tokens' note adds cost transparency. It doesn't discuss permissions or irreversibility, but for a revoke operation this is reasonable.
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?
Four concise sentences cover purpose, prerequisite, targeting, and return value. Every sentence contributes information without 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 revocation tool, the description covers the main operational steps and return. It leverages the output schema for details, while providing the prerequisite call and targeting logic. The main gap is lack of error/edge-case handling, but that's minor for this 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 schema already describes both parameters fully (100% coverage), so the baseline is 3. The description reiterates the clerk_instance_id targeting behavior from the schema and clarifies the session_id is for revocation, but adds little beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Revoke a session in a connected Clerk application, immediately ending it,' which clearly states the verb, resource, and effect. This distinguishes it from sibling tools like get_session or list_sessions, and from other revoke_* tools that target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs 'Call clerk.get_connected_accounts first' and explains how to use clerk_instance_id to target a specific connection or omit it for the default account. This provides clear usage context, though it doesn't mention alternatives or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.revoke_sign_in_tokenAInspect
Revoke a sign-in token in a connected Clerk application so it can no longer be used.
Sensitive — invalidates a high-privilege token.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the revoked sign-in token object.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| sign_in_token_id | Yes | Clerk sign-in token id to revoke. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign_in_token | No | Revoked Clerk sign-in token object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It explicitly warns 'Sensitive — invalidates a high-privilege token', explains the result (so it can no longer be used), and states the return value and cost. This goes well beyond just naming the operation, though it could mention reversibility or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-sentence purpose, a sensitivity warning, a usage note, a return note, and a cost note. Every line provides distinct value, and the most important information is 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 straightforward revocation tool with an output schema and rich parameter schema, the description covers purpose, prerequisite, sensitivity, return value, and cost. It is functionally complete, though it omits potential failure scenarios or what happens if the token is already revoked. These are not critical for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds some context for clerk_instance_id by tying it to get_connected_accounts and 'target a specific connection', but this is largely a restatement of the schema's 'Omit to use the default connected account.' No new meaning is added for sign_in_token_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?
The description starts with a specific verb and resource: 'Revoke a sign-in token in a connected Clerk application so it can no longer be used.' It clearly states the action and the effect, distinguishing this from sibling revoke_* tools by naming the exact token type and 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 gives explicit usage context: call clerk.get_connected_accounts first and either pass clerk_instance_id for a specific connection or omit it for the default. It does not spell out when not to use it or name alternatives, but the prerequisite and parameter choice guidance are clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.rotate_machine_secret_keyAInspect
Rotate the secret key for a machine in a connected Clerk instance.
Sensitive — the response includes the new secret key; do not log or expose it.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the new secret key.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| machine_id | Yes | Clerk machine id (mch_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| previous_token_ttl | Yes | Seconds the previous secret key remains valid after rotation (0–28800). |
Output Schema
| Name | Required | Description |
|---|---|---|
| machine_secret_key | No | Rotated machine secret key payload from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the transparency burden. It prominently flags the response as sensitive and warns against logging or exposing the new key, and discloses the return value and cost. However, it doesn't explicitly mention that the old key remains valid for previous_token_ttl (though the schema covers that) or any required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the main action, then provides a bolded sensitive warning, a prerequisite, return behavior, and cost. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers the core action, sensitivity, prerequisite, instance selection, and return value. Some behavioral details like TTL effect are left to the schema, but overall it's sufficient for 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?
All three parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description adds no extra semantics beyond confirming the optional clerk_instance_id defaults to the connected account, which the schema already states.
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 'rotate' with the resource 'secret key for a machine in a connected Clerk instance,' clearly distinguishing it from sibling tools like get_machine_secret_key (read) and rotate_oauth_application_secret (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs to call clerk.get_connected_accounts first and explains how to target a specific instance or default, providing clear usage context. It doesn't explicitly name alternatives or when-not-to-use, but the prerequisite and targeting logic are well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.rotate_oauth_application_secretAInspect
Rotate the client secret for a confidential OAuth application in a connected Clerk application.
Sensitive — the response includes a new client_secret. Update authorized OAuth clients immediately and do not log the secret.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated OAuth application summary with the new client_secret.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| oauth_application_id | Yes | Clerk OAuth application id (oa_...) to retrieve, update, or delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| oauth_application | No | OAuth application summary with the new client_secret. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the sensitive nature of the response (new client_secret), instructs to update authorized OAuth clients immediately, and warns not to log the secret. These are behavioral traits beyond what structured fields provide.
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 four short sentences plus a cost note. Every sentence earns its place: purpose, sensitivity warning, usage prerequisite, return value, and cost. It is front-loaded with the primary action and contains 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?
The description is complete for the tool's complexity. It covers the sensitivity, prerequisite call, parameter targeting, and return value. The presence of an output schema handles return details, and the description adds the critical 'do not log the secret' guidance. No significant gaps remain.
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. The description adds value by explaining how to obtain clerk_instance_id (via get_connected_accounts), the default behavior when omitted, and clarifies the role of oauth_application_id in the rotation context.
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: 'Rotate the client secret for a confidential OAuth application in a connected Clerk application.' The verb 'rotate' is specific and distinguishes this from sibling tools like create_oauth_application, delete_oauth_application, and get_oauth_application.
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?
Provides clear usage guidance: 'Call clerk.get_connected_accounts first' and explains how to target a connection via clerk_instance_id or default. It does not explicitly mention alternatives or when-not-to-use, but the context is solid enough for an agent to choose this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.unban_usersAInspect
Remove bans from one or more Clerk users, restoring their ability to sign in.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated user summaries and total count.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | Yes | List of one or more Clerk user ids (user_...) to unban. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| users | No | Updated user summaries for all unbanned users. |
| total_count | No | Number of users that were unbanned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the effect (removes bans, restores sign-in), the return value (updated user summaries and total count), and the token cost. Missing details like permissions or error cases, but it remains transparent about the core 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 concise, organized, and front-loaded. The first sentence states the core action, the second provides usage guidance, and the third covers return value and cost. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need not be described, yet they are briefly mentioned. It covers the prerequisite, instance selection, required parameters, return summary, and token cost. For a simple two-parameter tool, this is complete and well-rounded.
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 valuable context beyond the schema by explaining that 'clerk_instance_id' comes from 'clerk.get_connected_accounts' and can be omitted for the default account, which is not evident from the schema alone.
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 opens with a specific verb and resource: 'Remove bans from one or more Clerk users, restoring their ability to sign in.' This clearly distinguishes it from the sibling tool 'ban_users' and plainly states the 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?
Provides concrete usage guidance: 'Call clerk.get_connected_accounts first' and explains how to target a specific connection or use the default account. It does not explicitly contrast with alternatives, but the close sibling is obvious and the prerequisite is clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_api_keyAInspect
Update an API key in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated API key summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| claims | No | Updated custom claims for tokens minted from this API key. | |
| scopes | No | Updated permission scopes for the API key. | |
| subject | No | Updated subject (user_... or org_...). | |
| api_key_id | Yes | Clerk API key id (ak_...) to retrieve, update, delete, or revoke. | |
| description | No | Updated description for the API key. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| seconds_until_expiration | No | Updated seconds until expiration from now. |
Output Schema
| Name | Required | Description |
|---|---|---|
| api_key | No | Updated Clerk API key from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral info. It discloses the return behavior ('Returns the updated API key summary') and the token cost, but does not describe side effects, permission requirements, or how omitted fields are handled. This is adequate but not rich, hence a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact—three short paragraphs plus a cost line—and front-loads the main purpose. Every sentence adds value, with no fluff. Score 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 params and an output schema, so return details are covered. The description covers essential setup (get_connected_accounts) and connection selection. It omits edge cases like overwrite behavior, but given the schema's thoroughness, it is reasonably complete. Score 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces clerk_instance_id semantics, but mostly restates the schema's existing description. No additional parameter details are provided, so it stays at 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 opens with 'Update an API key in a connected Clerk application,' clearly stating the verb and resource. This distinguishes it from sibling tools like create_api_key, revoke_api_key, and delete_api_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear prerequisite: 'Call clerk.get_connected_accounts first.' It also explains how to choose a connection via clerk_instance_id or default. However, it does not explicitly state when not to use this tool or name alternatives, so it is a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_domainAInspect
Update a custom domain on a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated domain.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated domain hostname. | |
| domain_id | Yes | Clerk organization domain id (dmn_...) to update, delete, or verify. | |
| proxy_url | No | Updated proxy URL for a satellite domain. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | No | Updated Clerk domain from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses that this is an update operation, specifies the connection target behavior, and states that it 'Returns the updated domain.' It also mentions cost. However, it does not discuss permissions, error cases, or side effects on existing domain settings, which would be expected for a mutation tool without annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five short sentences, each with a clear purpose: action, prerequisite, targeting instruction, return value, and cost. It is front-loaded with the core verb-resource statement, and no filler or redundant text is present.
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 an output schema exists and the tool has four parameters, the description covers the essential operational context: what it does, prerequisite calls, connection targeting, return value, and cost. It could be more complete by addressing error scenarios or when to choose this tool over alternatives, but it is otherwise sufficient for an agent 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 covers all parameters with descriptions, giving a baseline of 3. The description adds value by explaining the clerk_instance_id parameter's role in targeting a connection and instructing to call clerk.get_connected_accounts first, which clarifies provenance. This goes slightly beyond the schema's own 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 opens with a specific verb and resource: 'Update a custom domain on a connected Clerk instance.' This clearly establishes the tool's function and distinguishes it from related domain operations like add_domain or delete_domain. The subsequent prerequisite and target-selection details further clarify 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?
The description provides clear context for use: 'Call clerk.get_connected_accounts first' and explains how to target a connection via clerk_instance_id or default. However, it does not explicitly contrast this tool with alternatives like clerk.update_organization_domain or specify when not to use it, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_email_addressAInspect
Update a Clerk email address by id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated email address summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| primary | No | When true, set this email as the user's primary email address. | |
| verified | No | When true, mark the email address as verified. | |
| email_address_id | Yes | Clerk email address id (idn_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| email_address | No | Updated Clerk email address summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that the operation returns an updated email address summary and includes a cost of 8 tokens, but it doesn't explain potential side effects (e.g., implications of setting primary or verified) or permission requirements. Some behavioral context is provided, but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only four sentences and every sentence serves a purpose: stating the action, giving a prerequisite, explaining scoping, and noting the return value and cost. It is front-loaded and free of unnecessary detail.
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 100% schema coverage and presence of an output schema, the description adequately round out the tool by adding the prerequisite connection step and return summary. It could mention error scenarios or the exact fields affected, but for a straightforward update tool this is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds a bit of clarity around clerk_instance_id usage, but largely restates what's in the schema. It doesn't add meaning beyond the existing 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 states 'Update a Clerk email address by id' with a specific verb and resource, clearly distinguishing it from siblings like create_email_address, get_email_address, and delete_email_address. The 'by id' qualifier adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by instructing users to 'Call clerk.get_connected_accounts first' and explaining how to use clerk_instance_id to target a specific connection or default. It doesn't explicitly mention alternatives or when-not-to-use, but the prerequisite and scoping guidance are useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_enterprise_connectionAInspect
Update an enterprise SSO connection in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated enterprise_connection summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated display name for the connection. | |
| oidc | No | Updated OIDC client configuration. | |
| saml | No | Updated SAML IdP configuration. | |
| active | No | Whether the connection is active. | |
| domains | No | Updated domain list (replaces existing domains when provided). | |
| connection_id | Yes | Clerk enterprise connection id (entc_...) to retrieve, update, delete, or test. | |
| organization_id | No | Clerk organization id (org_...) to link to this connection. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| custom_attributes | No | Updated custom attribute mappings. | |
| sync_user_attributes | No | Whether to sync user attributes on each sign-in. | |
| allow_organization_account_linking | No | Whether account linking via organization membership is allowed. | |
| disable_additional_identifications | No | Whether to block additional identifications for this connection. |
Output Schema
| Name | Required | Description |
|---|---|---|
| enterprise_connection | No | Updated enterprise SSO connection. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It mentions the return value ('Returns the updated enterprise_connection summary') and a prerequisite, but does not disclose potential side effects (e.g., overwriting existing configs), permission requirements, or reversibility. Adds some context but leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, front-loading the purpose in the first sentence. Each sentence adds value: purpose, prerequisite, targeting, return value, and cost. No filler or repetition.
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 12 parameters with full schema descriptions and an output schema, the description provides sufficient high-level context: what the tool does, how to select the instance, and what it returns. It could be more explicit about partial update behavior, but the schema already implies it via null defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's only param-related note (pass or omit clerk_instance_id) is already present in the schema's description for that parameter, adding no extra semantic value 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 opens with 'Update an enterprise SSO connection in a connected Clerk application,' using a specific verb and resource. This clearly differentiates it from sibling tools like create_enterprise_connection, get_enterprise_connection, and delete_enterprise_connection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs to 'Call clerk.get_connected_accounts first' and explains how to target a specific connection via clerk_instance_id or use the default account. This provides clear context for usage, though it does not explicitly contrast with alternative tools like create or delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_instance_communication_settingsAInspect
Update SMS communication settings for a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated communication settings.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| blocked_country_codes | No | ISO country codes to block from receiving SMS messages (up to 250). |
Output Schema
| Name | Required | Description |
|---|---|---|
| communication_settings | No | Updated Clerk instance communication settings from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses that it updates settings, returns the updated communication settings, and notes a cost of 8 tokens, but lacks details on side effects (e.g., whether existing blocked country codes are replaced or merged) or required permissions.
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?
Four short sentences, front-loaded with the main purpose, and no fluff. Every sentence adds value including the cost and return behavior.
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 an output schema and full parameter coverage, the description is adequate. It includes cost, usage prerequisites, and return behavior, but could mention the effect of omitting blocked_country_codes (e.g., keep existing settings), though the schema already provides defaults.
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 both parameters are already documented. The description adds a small amount of context for clerk_instance_id (omit for default account), but this is also in the schema, so it does not significantly enhance parameter understanding 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 states 'Update SMS communication settings for a connected Clerk instance' using a specific verb and resource, clearly distinguishing it from sibling update_instance_* tools by focusing on communication settings.
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?
Provides explicit usage guidance: 'Call clerk.get_connected_accounts first' and explains how to target a specific connection via clerk_instance_id or use the default account. It does not discuss alternatives or when not to use this tool, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_instance_oauth_settingsAInspect
Update OAuth settings for a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated OAuth settings.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| oauth_jwt_access_tokens | No | Whether OAuth access tokens should be issued as JWTs. | |
| dynamic_oauth_client_registration | No | Whether dynamic OAuth client registration should be enabled. |
Output Schema
| Name | Required | Description |
|---|---|---|
| oauth_settings | No | Updated Clerk instance OAuth settings from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It mentions the prerequisite call, the ability to target specific connections, and that it returns updated settings, plus a cost note. However, it does not disclose potential side effects, permission requirements, or whether the update is reversible, which would be valuable for an update 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 compact—four short sentences, each adding value: the core action, a prerequisite, a targeting rule, and a return/cost note. No filler words or redundant content. Front-loaded with the main 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?
The description covers the essential context: prerequisite, targeting options, and return value. With an output schema present (though not shown), it doesn't need to enumerate return fields. It could be more thorough about side effects or permissions, but given the tool's simple scope (3 optional booleans), this is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description repeats some of the schema's information about `clerk_instance_id` (e.g., 'omit it to use the default account'). It does not add meaningful interpretation beyond the schema for the boolean parameters. Baseline 3 is appropriate since the schema already documents all 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 begins with a specific verb+resource: 'Update OAuth settings for a connected Clerk instance.' This clearly distinguishes it from sibling tools like `clerk.get_instance_oauth_settings` (read-only) and `clerk.update_instance_settings` (broader scope). The phrasing makes the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage prerequisites: 'Call clerk.get_connected_accounts first' and explains how to target a connection vs. using the default account. It does not explicitly state when to avoid this tool or name alternatives, but the context is clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_instance_organization_settingsAInspect
Update organization feature settings for a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated organization settings.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | Whether organizations should be enabled for the instance. | |
| creator_role | No | Default role assigned to the organization creator. | |
| domains_enabled | No | Whether organization domains should be enabled. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| admin_delete_enabled | No | Whether organization admins can delete their organization. | |
| domains_default_role | No | Default role for members who join via a verified organization domain. | |
| initial_role_set_key | No | Initial role set key applied to new organizations. | |
| max_allowed_memberships | No | Maximum organization memberships allowed per user. | |
| domains_enrollment_modes | No | Allowed organization domain enrollment modes: manual_invitation, automatic_invitation, or automatic_suggestion. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization_settings | No | Updated Clerk instance organization settings from the Backend API. |
Tool Definition Quality
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 implies a mutation but does not disclose issues like partial update semantics (what happens to omitted fields), permission requirements, reversibility, or side effects. It only mentions returning updated settings and token cost, which is insufficient behavioral 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 three concise sentences plus a cost note, with the main purpose front-loaded. Every sentence provides necessary information without fluff or repetition.
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 9 optional parameters and no required ones, making the behavior on omitted fields important. The output schema exists, so return handling is covered, but the description does not explain whether null/omitted fields mean 'leave unchanged' or 'set to null'. Adequate but with a clear gap in partial-update semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already described in the schema. The description adds the prerequisite call and targeting guidance, but this overlaps with the schema's description for clerk_instance_id. No significant additional parameter semantics beyond the 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's purpose: 'Update organization feature settings for a connected Clerk instance.' This uses a specific verb ('update') and resource ('organization feature settings'), and distinguishes it from sibling tools like update_instance_settings or update_instance_communication_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Call clerk.get_connected_accounts first' and explains how to target a specific connection with clerk_instance_id or use the default. However, it does not state when not to use the tool or mention alternatives, so it stops short of full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_instance_restrictionsAInspect
Update sign-up and sign-in restriction settings for a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated instance restrictions.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| allowlist | No | Whether the allowlist restriction should be enabled. | |
| blocklist | No | Whether the blocklist restriction should be enabled. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| block_email_subaddresses | No | Whether email subaddresses (plus-addressing) should be blocked. | |
| block_disposable_email_domains | No | Whether disposable email domains should be blocked. | |
| allowlist_blocklist_disabled_on_sign_in | No | Whether allowlist and blocklist checks should be skipped during sign-in. |
Output Schema
| Name | Required | Description |
|---|---|---|
| restrictions | No | Updated Clerk instance restrictions from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the responsibility of disclosing behavior. It identifies the tool as a mutating update, explains the prerequisite and default-account behavior, states that it returns updated restrictions, and includes a token cost. It does not discuss permissions or failure modes, but the provided context is solid for an update 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 concise: three short paragraphs with a clear lead sentence stating the purpose, followed by operational details and return behavior. Every sentence contributes value, and the cost notice is a useful addition without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action, prerequisite, instance selection, and return value. An output schema exists and parameter details are in the schema. A minor gap is not explicitly stating that only provided fields are updated (though defaults imply optionality), but overall the context is sufficient for 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?
The schema already describes all six parameters at 100% coverage, so the baseline is 3. The description adds minimal extra semantics beyond reinforcing the clerk_instance_id behavior already present in the schema. No new meaning is added to other 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 a specific verb-action ('Update sign-up and sign-in restriction settings') against a clear resource ('a connected Clerk instance'). It distinguishes from sibling update_instance_* tools by focusing on restrictions, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear operational guidance: call 'clerk.get_connected_accounts' first and either pass 'clerk_instance_id' or omit it for the default account. However, it does not explicitly state when to choose this tool over other update_instance_* alternatives, so it stops short of full alternative differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_instance_settingsAInspect
Update core settings for a connected Clerk application instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated instance settings.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| hibp | No | Whether Have I Been Pwned password checking should be enabled. | |
| test_mode | No | Whether the instance should run in test mode. | |
| support_email | No | Support email address shown to end users. | |
| allowed_origins | No | Allowed browser origins for the instance. | |
| clerk_js_version | No | Pinned Clerk.js version for the instance. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| development_origin | No | Development origin URL for local testing. | |
| url_based_session_syncing | No | Whether URL-based session syncing should be enabled. | |
| preferred_sign_in_strategy_when_password_required | No | Preferred sign-in strategy when a password is required: "password" or "otp". |
Output Schema
| Name | Required | Description |
|---|---|---|
| instance_settings | No | Updated Clerk instance settings from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries the burden. It discloses mutation ('Update'), return value ('Returns the updated instance settings'), and cost (8 tokens). Missing behavioral details like permissions, partial vs full replacement of settings, or error handling.
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?
Five short, purposeful sentences: purpose, prerequisite, targeting, return value, cost. Front-loaded and free of 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?
For a 9-parameter update tool with an output schema, it covers prerequisite and instance selection, which are the most non-obvious aspects. Missing clarification on whether omitted parameters are left unchanged or reset, but overall adequate.
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 context for clerk_instance_id ('omit to use default') but does not enrich other parameter semantics beyond 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 updates core settings for a connected Clerk instance, using a specific verb and resource. It distinguishes from sibling update_instance_* tools by scoping to 'core settings' rather than communication, OAuth, organization, or restrictions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit prerequisite guidance (call clerk.get_connected_accounts first) and explains how to target a connection via clerk_instance_id or default. However, it does not explicitly contrast with alternative update_instance_* tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_jwt_templateAInspect
Update an existing JWT template in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated template summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional new unique template name. | |
| claims | No | Optional new JWT claims template as a JSON object. | |
| lifetime | No | Optional new token lifetime in seconds (30–315360000). | |
| signing_key | No | Optional custom signing private key. | |
| template_id | Yes | Clerk JWT template id (jtmp_...) to retrieve, update, or delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| signing_algorithm | No | Optional custom signing algorithm. | |
| allowed_clock_skew | No | Optional new allowed clock skew in seconds (0–300). | |
| custom_signing_key | No | Optional flag to enable or disable a custom signing key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jwt_template | No | Updated Clerk JWT template summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return value ('Returns the updated template summary') and cost, and the word 'Update' implies mutation. However, it does not explain whether the update is a patch or full replacement, any side effects on existing claims/signing keys, or permission requirements beyond the prerequisite call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences plus a cost note. It front-loads purpose, then gives a critical prerequisite, return value, and cost—each sentence earns its place with no repetition or 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?
The tool has 9 parameters (1 required) and related create/get/delete siblings. The description covers the prerequisite, target selection, and return value, but omits update semantics (e.g., partial vs full update) and does not reference the output schema. Given the mutation nature and lack of annotations, more context would be needed for a complete picture.
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 already describes all 9 parameters thoroughly (100% coverage), so the baseline is 3. The description adds some value by instructing to call get_connected_accounts first and clarifying the clerk_instance_id targeting behavior, but this largely mirrors the schema and does not compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Update an existing JWT template in a connected Clerk application,' clearly stating the verb and resource. The word 'existing' distinguishes it from create/delete JWT template siblings, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to select a specific connection via clerk_instance_id or fall back to the default. It does not explicitly list alternatives or when-not-to-use, but the context is sufficient for a typical update flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_machineAInspect
Update a machine in a connected Clerk instance.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated machine.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated machine display name. | |
| machine_id | Yes | Clerk machine id (mch_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| default_token_ttl | No | Updated default M2M token lifetime in seconds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| machine | No | Updated machine object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions the cost and that it returns the updated machine, but does not elaborate on mutating side effects, idempotency, or required permissions beyond the update action implied by the tool 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 and front-loaded with the action ('Update a machine'), followed by essential usage guidance and cost. There is no wasted text; every sentence 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?
Given the presence of an output schema and 100% schema description coverage, the description is reasonably complete. It covers the prerequisite, instance selection, and return value, but does not address error conditions or partial-update semantics, which would be useful for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema, repeating the clerk_instance_id behavior already stated in the schema. It provides no additional parameter syntax or format details beyond what the schema already documents.
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 updates a machine in a connected Clerk instance, using the verb 'update' and resource 'machine'. This distinguishes it from sibling tools like clerk.create_machine, clerk.get_machine, and clerk.delete_machine.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to target a specific instance or use the default account. It does not explicitly mention alternatives or when not to use the tool, but the provided context is sufficient for a distinct update operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_oauth_applicationAInspect
Update an OAuth application in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated OAuth application summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New display name for the OAuth application. | |
| public | No | Whether this is a public OAuth client (no client secret; PKCE-capable). | |
| scopes | No | Space-delimited scopes (e.g. profile email public_metadata). | |
| redirect_uris | No | Replacement list of allowed redirect URIs. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| oauth_application_id | Yes | Clerk OAuth application id (oa_...) to retrieve, update, or delete. | |
| consent_screen_enabled | No | Whether to show the OAuth consent screen during authorization. |
Output Schema
| Name | Required | Description |
|---|---|---|
| oauth_application | No | Updated Clerk OAuth application summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It states that the tool returns the updated OAuth application summary and includes cost, but it does not warn about side effects (e.g., replacing redirect URIs) or clarify that unspecified fields remain unchanged. The mutation intent is clear from 'Update,' but richer disclosure would be beneficial.
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?
Four short sentences, front-loaded with purpose. Each sentence provides distinct value: purpose, prerequisite/usage, return type, and cost. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage prerequisite, return value, and cost. An output schema exists, so return details are covered. The main gap is the lack of explicit behavioral notes about partial update semantics or consequences, but given the high schema coverage, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for each parameter (e.g., 'Replacement list of allowed redirect URIs,' 'Space-delimited scopes'). The description adds brief guidance for clerk_instance_id but does not provide much beyond what the schema already states. 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 'Update an OAuth application in a connected Clerk application,' specifying the verb (update), resource (OAuth application), and context (connected Clerk application). This distinguishes it from sibling create/get/delete 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 explicitly instructs the agent to call clerk.get_connected_accounts first and explains how to use clerk_instance_id to target a specific connection or fall back to the default account. This provides clear operational context, though it does not explicitly contrast with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_organizationAInspect
Update fields for a Clerk organization.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated organization summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional new display name for the organization. | |
| slug | No | Optional new URL-friendly slug. | |
| organization_id | Yes | Clerk organization id (org_...) to operate on. | |
| public_metadata | No | Optional public metadata to merge into the organization. | |
| private_metadata | No | Optional private metadata to merge into the organization. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| max_allowed_memberships | No | Optional new maximum number of memberships allowed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization | No | Updated Clerk organization summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior on its own. It notes that it returns the updated organization summary and explains instance targeting. However, it does not mention permissions, partial vs. full updates, potential side effects, or error conditions. It is adequate but not thorough 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 four concise sentences, front-loaded with the purpose, and includes only useful operational notes (prerequisite, targeting, return value, cost). No redundancy or fluff. Every sentence 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?
The description provides essential context (prerequisite call, targeting, return type) but misses differentiation from the sibling update_organization_metadata tool, which overlaps on metadata fields. It does not clarify whether fields are merged or replaced, though the schema hints at merge. Given the output schema and schema param coverage, the description is moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description repeats the guidance for clerk_instance_id that already exists in the schema, adding no new semantic value beyond what the schema provides. Other parameters 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 states 'Update fields for a Clerk organization' with a clear verb and resource. It does not explicitly distinguish from sibling tools like update_organization_metadata, but the scope is understandable. The name and description align, making the purpose reasonably 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?
The description gives explicit usage context: 'Call clerk.get_connected_accounts first' and explains how to target a specific connection or use the default. It lacks explicit alternatives or exclusions (e.g., when to use create_organization instead), but the guidance is actionable and relevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_organization_domainAInspect
Update enrollment mode or verification status for an organization domain.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated domain summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| verified | No | Whether the domain is verified. | |
| domain_id | Yes | Clerk organization domain id (dmn_...) to update, delete, or verify. | |
| enrollment_mode | No | Filter or set enrollment mode: manual_invitation, automatic_invitation, or automatic_suggestion. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | No | Updated organization domain summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool updates fields and returns an updated domain summary, and notes a Cost of 8 tokens. However, it gives no details about side effects, permissions, or consequences of changing verification status, leaving significant behavioral context undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences plus a cost line. The purpose is stated first, followed by a prerequisite and return behavior, with zero filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage and an output schema, the description covers the essential context: what it updates, the prerequisite call, and the return value. It omits details about default behavior when only domain_id is provided, but the structured data fills most gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all four parameters including formats and options. The description adds no new parameter meaning; its note about clerk_instance_id merely echoes the schema 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 uses a specific verb 'Update' and names the resource 'organization domain' with the two updatable aspects: 'enrollment mode or verification status'. This clearly distinguishes it from sibling tools like create_organization_domain, delete_organization_domain, and verify_organization_domain_ownership.
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 explicitly instructs to call clerk.get_connected_accounts first and explains how to target a specific connection via clerk_instance_id or omit it for the default account. This provides clear prerequisite and conditional guidance, though it doesn't mention alternative tools for similar updates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_organization_membershipAInspect
Change the role of a Clerk organization member.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated membership.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | New role for the member (e.g. org:member, org:admin). | |
| user_id | Yes | Clerk user id (user_...) of the member to update. | |
| organization_id | Yes | Clerk organization id (org_...) containing the member. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| membership | No | Updated organization membership. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds useful context about the connection prerequisite and states that it returns the updated membership. However, it does not disclose potential side effects (e.g., overwriting the existing role) or any required permissions, leaving some behavioral ambiguity.
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 and front-loaded, with the purpose in the first sentence. Every sentence serves a function—purpose, prerequisite, return value—though the 'Cost = 8 tokens' line is arguably meta-information that could be omitted from a functional description.
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 role-change tool, the description covers the essential context: purpose, connection prerequisite, parameter usage, and return value. An output schema exists, so return details are not needed in the description. It could mention permissions or side effects, but overall it is sufficiently complete for the tool's complexity.
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 already provides 100% coverage with detailed descriptions for all parameters, including the clerk_instance_id behavior. The description slightly reinforces the clerk_instance_id usage but does not add substantial meaning beyond what the schema already conveys. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Change the role of a Clerk organization member', which is a specific verb+resource statement that clearly distinguishes this tool from siblings like create_organization_membership, delete_organization_membership, and update_organization_membership_metadata. It accurately conveys the tool's core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear prerequisite—'Call clerk.get_connected_accounts first'—and clarifies how to target a specific connection via clerk_instance_id. However, it does not explicitly mention when to use this tool versus alternatives (e.g., creating or deleting memberships), so it lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_organization_membership_metadataAInspect
Merge public or private metadata on a Clerk organization membership.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated membership.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) of the member. | |
| organization_id | Yes | Clerk organization id (org_...) containing the membership. | |
| public_metadata | No | Public metadata to merge into the membership. | |
| private_metadata | No | Private metadata to merge into the membership. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| membership | No | Updated organization membership. |
Tool Definition Quality
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 does state that the operation 'merge's metadata and returns the updated membership, which gives some behavioral context. However, it does not mention that the operation is a mutation that may overwrite existing keys, any required permissions, or potential side effects on the membership record. Since annotations are absent, this is a moderate level of transparency at best.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-sentence purpose, a two-sentence usage note, a return statement, and a cost hint. Each sentence earns its place; there is no redundant or filler content. The structure is easy to scan and immediately gives the agent the 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?
Given the tool's moderate complexity (5 parameters, output schema present), the description covers the key workflow: prerequisite call, how to select the instance, and the result. It does not explain output structure, but that is handled by the output schema. The only missing nuance is what 'merge' means for nested objects, but for a typical metadata update, the description is sufficiently complete for 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 description coverage is 100%, so the baseline is 3. The description adds marginal value by restating the clerk_instance_id usage (target a connection or omit for default), but this duplicates what the schema already says in the parameter description. It does not explain merge semantics for metadata objects (e.g., shallow vs deep merge) beyond the schema's 'additionalProperties: true'. Thus a middle score 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 first sentence uses a specific verb 'Merge' with a clear resource: 'public or private metadata on a Clerk organization membership.' This clearly distinguishes it from sibling tools like update_organization_membership (which likely updates roles/status) and update_organization_metadata or update_user_metadata, as it targets membership-specific metadata. It also scopes the operation to 'public or private metadata', leaving no ambiguity about what the tool modifies.
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 explicitly instructs to call clerk.get_connected_accounts first, and explains how to target a specific connection with clerk_instance_id versus using the default account. This provides clear prerequisite context and usage direction. However, it does not explicitly mention alternatives or exclusions (e.g., when not to use this tool), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_organization_metadataAInspect
Merge metadata into a Clerk organization (deep merge — existing keys are preserved unless overwritten).
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated organization summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes | Clerk organization id (org_...) to operate on. | |
| public_metadata | No | Public metadata to merge into the organization. | |
| private_metadata | No | Private metadata to merge into the organization. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization | No | Updated Clerk organization summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral transparency. It discloses deep merge semantics ('existing keys are preserved unless overwritten'), a prerequisite call ('Call clerk.get_connected_accounts first'), default account behavior, return value ('Returns the updated organization summary'), and cost ('Cost = 8 tokens'). This is exceptionally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, each serving a distinct purpose: function semantics, usage prerequisites, and return/cost. There is no wasted wording, and the most critical information is 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 output schema exists, the description need not explain return values in detail, but it still does ('Returns the updated organization summary'). It covers merge behavior, prerequisite steps, multi-account handling, and cost. For the tool's complexity, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing baseline 3. The description adds value by explaining the deep merge behavior for metadata parameters and clarifying how clerk_instance_id should be used ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'). While it repeats some schema info, the merge semantics go 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's function: 'Merge metadata into a Clerk organization (deep merge — existing keys are preserved unless overwritten).' This is a specific verb ('merge') + resource ('Clerk organization') + a key differentiator (deep merge), distinguishing it from sister tools like update_organization or replace_user_metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'Call clerk.get_connected_accounts first' and explains the clerk_instance_id parameter behavior. It does not explicitly name alternative tools or exclusions, but the purpose is clear enough given the sibling list. A 4 is appropriate for clear context without explicit 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.
clerk.update_organization_permissionAInspect
Update an organization permission in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated permission summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated permission display name. | |
| description | No | Updated permission description. | |
| permission_id | Yes | Clerk organization permission id to update or delete. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization_permission | No | Updated organization permission summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose the prerequisite (get_connected_accounts), the ability to target a connection, and the return value ('Returns the updated permission summary'). However, it does not explain partial update semantics (e.g., which fields are actually updated when omitted) or any potential side effects beyond 'update,' leaving some behavioral ambiguity.
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 four sentences with no redundancy. It front-loads the core purpose, then gives necessary prerequisite and targeting instructions, mentions the return value, and notes the token cost. Every sentence earns its place, making it both concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (4 params, 1 required) and the presence of an output schema, the description covers the essential workflow: prerequisite, connection targeting, and return value. It does not address error cases or validation, but the existing schema and output schema fill in the gaps, making this reasonably complete for its complexity.
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 itself fully documents all four parameters. The description adds marginal value by restating the clerk_instance_id behavior, but it does not enrich the meaning of permission_id, name, or description beyond what the schema already provides. This aligns with the baseline of 3 when the schema handles 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 begins with 'Update an organization permission in a connected Clerk application,' which is a specific verb+resource statement that clearly distinguishes this from sibling tools like create_organization_permission, delete_organization_permission, and list_organization_permissions. It also mentions the return value, further clarifying the tool's 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 gives explicit operational guidance: 'Call clerk.get_connected_accounts first' and 'Pass clerk_instance_id to target a specific connection, or omit it to use the default account.' This provides clear context for how to invoke the tool correctly, though it does not explicitly contrast with when to use alternative tools (e.g., create vs update), making it a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_organization_roleAInspect
Update an organization role in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated role summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Updated role display name. | |
| role_id | Yes | Clerk organization role id to retrieve, update, or delete. | |
| description | No | Updated role description. | |
| permissions | No | Permission keys to assign to the role. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| is_creator_eligible | No | Whether this role may be assigned as organization creator. |
Output Schema
| Name | Required | Description |
|---|---|---|
| organization_role | No | Updated organization role summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden for behavioral disclosure. It mentions prerequisite steps, the return value ('Returns the updated role summary'), and cost, but does not disclose permission requirements, irreversibility, or how unspecified fields are treated during update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: operation statement, prerequisite, return value, and cost. Every sentence earns its place without 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?
Given the tool's moderate complexity, 100% schema parameter coverage, and presence of an output schema, the description adequately covers connection targeting, prerequisites, return value, and cost. It does not discuss edge effects or alternatives, but overall is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful guidance for clerk_instance_id ('Pass clerk_instance_id to target a specific connection, or omit it to use the default account'), going beyond the schema. Other parameters rely on their schema 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 clearly states the action ('Update an organization role') and the resource ('in a connected Clerk application'). It is specific enough to distinguish itself from sibling tools like update_organization or update_organization_permission.
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?
Provides explicit prerequisite guidance: 'Call clerk.get_connected_accounts first' and explains how to target a specific connection versus using the default account with clerk_instance_id. It lacks explicit when-not-to-use or alternative tool comparisons, but offers clear contextual usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_phone_numberAInspect
Update a Clerk phone number by id.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated phone number summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| primary | No | Whether this should be the user's primary phone number. | |
| verified | No | Whether the phone number should be marked verified. | |
| phone_number_id | Yes | Clerk phone number id (idn_... or phn_...) to retrieve or modify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| reserved_for_second_factor | No | Whether to reserve this number for multi-factor authentication. |
Output Schema
| Name | Required | Description |
|---|---|---|
| phone_number | No | Updated Clerk phone number object from the Backend API. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the dependency on get_connected_accounts, the behavior for omitted clerk_instance_id (default account), the return summary, and the token cost. However, it doesn't mention side effects or permission requirements beyond the inherent mutation of 'update'.
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?
Four sentences, each with distinct purpose: action, prerequisite, return, cost. No redundant words, front-loaded with the primary verb.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the prerequisite, connection targeting, return value, and cost. Combined with the complete input schema and output schema, it provides sufficient context for an agent to use the tool correctly, even though it omits explicit error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds context for clerk_instance_id by connecting it to the prerequisite get_connected_accounts call, but most parameter meaning is already 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 opening sentence 'Update a Clerk phone number by id' precisely identifies the action (update), resource (phone number), and method (by id). This clearly distinguishes it from sibling tools like clerk.create_phone_number, clerk.delete_phone_number, and clerk.get_phone_number.
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 explicitly instructs to call clerk.get_connected_accounts first and explains how to target a connection via clerk_instance_id or default. It provides clear prerequisite and usage context, though it doesn't explicitly state when to use this tool over alternatives like update_email_address.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_userAInspect
Update profile fields for a Clerk user.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated user summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) to update. | |
| username | No | Optional username. | |
| last_name | No | Optional last name. | |
| first_name | No | Optional first name. | |
| external_id | No | Optional external id for the user. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Updated Clerk user summary. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return value, cost, and default-account behavior, but does not clarify partial vs. full update semantics (e.g., whether omitted fields are cleared or left unchanged). This is a notable gap 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 brief and front-loaded with the primary purpose, followed by essential usage details and return/cost info. Every sentence is informative with 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?
Given the rich output schema and 100% parameter schema coverage, the description covers key dependencies and return value. However, it omits the critical update behavior (partial vs. full replacement), leaving a clear gap for an agent to act incorrectly.
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 value by explaining clerk_instance_id's role (target specific connection vs. default), which goes beyond the schema. Other parameters are already well-described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update profile fields for a Clerk user,' which specifies the verb and resource. It is distinguishable from siblings like clerk.update_user_metadata by focusing on 'profile fields,' though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by instructing to call clerk.get_connected_accounts first and explaining how to use clerk_instance_id. However, it does not mention when to choose this over alternatives, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.update_user_metadataAInspect
Merge metadata fields for a Clerk user. Only the provided metadata keys are updated.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated user summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Clerk user id (user_...) whose metadata to update. | |
| public_metadata | No | Public metadata fields to merge. Existing keys not listed are preserved. | |
| unsafe_metadata | No | Unsafe metadata fields to merge. Existing keys not listed are preserved. | |
| private_metadata | No | Private metadata fields to merge. Existing keys not listed are preserved. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Updated Clerk user object after the metadata merge. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses the merge semantics (only provided keys updated), the return value (updated user summary), and the instance targeting behavior. While it does not cover permissions or reversibility, it provides meaningful behavioral context beyond the 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?
The description is compact and front-loaded with the primary action and key scope ('Merge metadata fields... Only the provided metadata keys are updated'). Every sentence adds value, including the prerequisite call and the return type, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema fully documents all parameters and an output schema exists, the description covers the essential human-level context: what the tool does, its merge behavior, the instance selection prerequisite, and the return value. It falls slightly short only in not explicitly relating to sibling tools, though that is more a usage-guideline 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?
Schema coverage is 100%, so the baseline is 3. The description only reiterates the clerk_instance_id guidance already present in the schema ('from clerk.get_connected_accounts; omit to use default') and adds no new parameter-level meaning beyond what the property descriptions already provide.
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 a specific verb ('Merge') and resource ('metadata fields for a Clerk user'), and explicitly notes that only the provided keys are updated, distinguishing it from the sibling replace_user_metadata. This makes the tool's purpose immediate and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by instructing to call clerk.get_connected_accounts first and explaining how to use clerk_instance_id versus the default account. However, it does not explicitly name alternatives like clerk.replace_user_metadata or clerk.update_user, nor does it spell out when to choose this tool over them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.upload_oauth_application_logoAInspect
Upload or replace the logo image for an OAuth application in a connected Clerk application.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Returns the updated OAuth application summary.
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | Stored file name from files.list_uploaded_files. Upload with files.upload_file first. | |
| uploader_user_id | No | Clerk user id (user_...) credited with the image upload. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. | |
| oauth_application_id | Yes | Clerk OAuth application id (oa_...) to retrieve, update, or delete. |
Output Schema
| Name | Required | Description |
|---|---|---|
| oauth_application | No | OAuth application summary with updated client_image_url. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It mentions the core behavior (upload/replace), the return value (updated OAuth application summary), and cost. However, it does not explain side effects of replacing an existing logo (e.g., whether the old logo is permanently deleted), permission requirements, or error conditions. This 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 concise and well-structured: a clear one-sentence purpose, a short prerequisite/parameter guidance, a return statement, and cost. Every sentence adds value and there is no redundant filler.
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 (4 params, output schema present) and full schema coverage, the description covers the main workflow: prerequisite connection setup, target selection, and return type. It could improve by noting the dependency on files.upload_file (though the schema does mention it) and any file type/size constraints, but overall it is sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add significant meaning beyond the schema; it reiterates the clerk_instance_id default behavior but does not elaborate on file_name format or uploader_user_id semantics. The provided guidance about 'Call clerk.get_connected_accounts first' is contextual, not parameter-specific.
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 action: 'Upload or replace the logo image for an OAuth application'. This is a specific verb+resource pair that distinguishes it from sibling tools like update_oauth_application (which updates other settings) and create_oauth_application (which creates the app). The scope is further clarified by 'in a connected Clerk application'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear prerequisite: 'Call clerk.get_connected_accounts first' and explains how to target a connection via clerk_instance_id or default to the default account. It does not explicitly mention alternatives or when not to use this tool, but the guidance provided is actionable and sufficient for basic usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clerk.verify_organization_domain_ownershipAInspect
Mark an organization domain's DNS ownership as verified via manual override.
Call clerk.get_connected_accounts first. Pass clerk_instance_id to target a specific connection, or omit it to use the default account.
Idempotent when ownership is already verified. Returns the updated domain summary.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain_id | Yes | Clerk organization domain id (dmn_...) to update, delete, or verify. | |
| clerk_instance_id | No | Clerk instance id (ins_...) from clerk.get_connected_accounts. Omit to use the default connected account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | No | Organization domain summary after ownership verification. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses several behavioral traits: manual override, idempotency when already verified, returns updated summary, and a token cost. With no annotations, this is useful context, but it does not cover reversibility or error conditions, preventing a perfect score.
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 four concise sentences that cover purpose, usage, behavior, and cost. Every sentence adds value and the information is front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers the core aspects: what it does, prerequisites, idempotency, return value, and cost. It lacks explicit alternative guidance and potential side-effect information, but overall it is reasonably complete for an agent to use 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 provides complete descriptions for both parameters (domain_id and clerk_instance_id). The description adds the instruction to call get_connected_accounts first and reiterates the instance-id usage, but this is largely redundant with the schema, so it meets the baseline of 3 without exceeding it.
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: 'Mark an organization domain's DNS ownership as verified via manual override.' This specifies the verb, resource, and method, making it distinct from sibling tools like update_organization_domain or create_organization_domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear prerequisite ('Call clerk.get_connected_accounts first') and explains how to handle the clerk_instance_id parameter for specifying a connection. However, it does not explicitly mention alternatives or when not to use this tool, which would warrant a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.add_dns_hostAInspect
Add one DNS host record to a managed domain without replacing the full zone.
Preserves existing records. The domain must use Namecheap DNS. Call domains.get_dns_hosts afterward if HostIds are needed.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | TTL in seconds (60 to 60000). Defaults to 1800. | |
| domain | Yes | Managed domain name (for example example.com). | |
| address | Yes | Record value (IP, hostname, URL, or TXT content depending on type). | |
| mx_pref | No | MX preference. Required when record_type is MX or MXE. | |
| host_name | Yes | Host label to create, for example @, www, or mail. | |
| record_type | Yes | DNS record type. Supported values: A, AAAA, ALIAS, CAA, CNAME, MX, MXE, NS, TXT, URL, URL301, FRAME. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosts | No | Full DNS host list after the addition. |
| domain | No | Managed domain name. |
| is_using_namecheap_dns | No | Whether the domain currently uses Namecheap DNS. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It notably states 'Preserves existing records,' which is a key non-destructive trait, along with the Namecheap DNS prerequisite, a token cost, and the HostIds follow-up hint. It doesn't cover error handling or side effects, but for a simple add-record operation this is adequate.
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 four sentences, each adding distinct value: the core action, a preservation guarantee, a prerequisite, and follow-up/cost info. It is appropriately front-loaded with the primary purpose in the first sentence and contains no redundant filler.
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 an output schema present and a fully described input schema, the description only needs to cover what is not already structured: purpose, behavior, prerequisites, and follow-up. This description does all of that effectively, making it complete for this tool's complexity.
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% parameter description coverage, so the baseline is 3 even without additional param detail in the tool description. The description does not add any parameter-specific context beyond what the schema already provides, so no higher score is warranted.
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 'Add one DNS host record to a managed domain without replacing the full zone.' This is a specific verb+resource construction that also distinguishes it from a full-zone replacement operation, which is a likely sibling alternative.
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 practical usage context: it contrasts with replacing the full zone, states a prerequisite ('The domain must use Namecheap DNS'), and offers a follow-up action ('Call domains.get_dns_hosts afterward if HostIds are needed'). While it doesn't name a specific alternative tool explicitly, the 'without replacing the full zone' implies a separate path for full-zone edits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.check_availabilityAInspect
Check whether domain names can be registered through Vee3 (Namecheap-backed).
Returns a map of each requested domain name to a boolean: true when the domain is available for purchase through Vee3, false when it is not.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | Domain names to check (maximum 10). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return format (map of domain to boolean), the meaning of true/false, and the token cost. It does not note any side effects (none expected) or limitations (e.g., TLD support), but the core behavior is transparent.
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?
Three sentences, each earning its place: purpose, return behavior, and cost. No redundancy or fluff. The description is well-structured and front-loaded with the primary 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?
The tool is simple with one well-described parameter and an output schema. The description covers purpose, return format, and cost. It lacks mention of edge cases (e.g., invalid domains) but is complete enough for the agent to select and invoke 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% and the parameter is simple (array of domains). The description adds the return semantics but does not add detail about domain name format or constraints beyond what schema already states. 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 a specific action ('Check whether domain names can be registered') and identifies the resource (domain names) and provider (Vee3/Namecheap). It distinguishes from sibling tools like domains.lookup or domains.whois by focusing on registration availability.
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 makes the use case obvious (determining if a domain can be registered through Vee3) and implies this is a precursor to registration. However, it does not explicitly mention alternatives or when not to use it, though the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.dns_recordsAInspect
Fetch DNS records for a domain.
Returns an array of records. Each record includes name, ttl, type (for example A, AAAA, CNAME, MX, NS, SOA, TXT), and data (record value).
Optionally pass subdomain to include records for a host under the domain (for example blog for blog.example.com).
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to look up (for example example.com). | |
| subdomain | No | Optional subdomain label to include (for example www or blog). |
Output Schema
| Name | Required | Description |
|---|---|---|
| records | No | DNS records returned for the domain. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool returns an array of records and includes record types and cost, which adds useful context. However, it does not mention error behavior, rate limits, or prerequisites (e.g., domain ownership), leaving some behavioral opacity.
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 brief and front-loaded with the core purpose, then details output format and optional parameter. Every sentence is informative, including the token cost. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read tool, the description covers the purpose, output shape, optional filtering, and cost. An output schema exists, so return values are further documented. It lacks explicit guidance on when to avoid this tool, but overall it is sufficient.
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 well-defined. The description adds value with a subdomain example but does not introduce new semantics beyond the schema. 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 opens with a specific verb and resource: 'Fetch DNS records for a domain.' It clearly distinguishes this tool from sibling domain tools like whois, rdap, and lookup. The scope (records under a domain) is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the optional subdomain parameter and gives a concrete example (blog.example.com). However, it does not state when to choose this tool over alternatives such as domains.whois or domains.lookup, and no exclusions or alternative suggestions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.get_dns_hostsAInspect
List DNS host records for one domain this Vee3 account manages.
Use for managed Namecheap DNS only. For public DNS lookup of any domain, use domains.dns_records instead.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Managed domain name (for example example.com). |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosts | No | DNS host records. Each item includes host_id, host_name, record_type, address, optional mx_pref, and optional ttl. |
| domain | No | Managed domain name. |
| is_using_namecheap_dns | No | Whether the domain currently uses Namecheap DNS. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the managed-domain scope and the cost of 3 tokens, but does not mention error behavior, read-only nature explicitly, or pagination. These are useful but not comprehensive disclosures.
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?
Three short sentences, front-loaded with the core purpose, followed by usage constraint and cost. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter list tool with an output schema, the description covers purpose, usage, alternative, and domain constraint. It omits minor details like response format, but the output schema compensates, making this fairly 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 schema already covers the single 'domain' parameter with a clear description. The tool description adds value by further narrowing the parameter to 'this Vee3 account manages' and 'managed Namecheap DNS only', which clarifies what domains are valid beyond the schema text.
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 DNS host records for one domain this Vee3 account manages' with a specific verb and resource, and immediately distinguishes itself from the sibling tool domains.dns_records by scoping to managed Namecheap DNS.
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?
Explicitly states 'Use for managed Namecheap DNS only' and 'For public DNS lookup of any domain, use domains.dns_records instead', giving clear when-to-use and when-not-to-use guidance with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.get_managedAInspect
Get full details for one domain this Vee3 account owns or manages.
Returns registration status, expiration, privacy, DNS provider type, and registration metadata.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Managed domain name to look up (for example example.com). |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | No | Managed domain name. |
| status | No | Current domain status in Vee3 inventory. |
| is_owner | No | Whether this Vee3 account is the domain owner. |
| is_locked | No | Whether registrar transfer lock is enabled. |
| created_at | No | When the domain was registered through Vee3. |
| expires_at | No | Domain expiration timestamp. |
| is_premium | No | Whether the domain was registered as a premium name. |
| privacy_enabled | No | Whether WhoisGuard privacy protection is enabled. |
| years_registered | No | Registration term in years at purchase. |
| dns_provider_type | No | DNS provider type configured for the domain. |
| privacy_expired_at | No | When privacy protection expired, if applicable. |
| namecheap_domain_id | No | Namecheap domain identifier for the managed domain. |
| token_cost_at_registration | No | Tokens charged when the domain was registered. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and adds useful behavioral details: it enumerates the returned data categories (registration status, expiration, privacy, DNS provider type, registration metadata) and discloses token cost. It does not explicitly state read-only or error behavior, but the 'Get' verb and output focus make this sufficiently clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short, front-loaded sentences: the core action, the return categories, and the cost. Every sentence provides distinct value with no redundancy or filler.
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 one-parameter lookup with an output schema, the description covers purpose, domain ownership scope, return categories, and cost. It does not mention alternatives or error cases, but those are not critical given the tool's low complexity and schema richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the domain parameter 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema, only reinforcing that the domain must be owned or managed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get full details for one domain this Vee3 account owns or manages,' using a specific verb and clear resource scope. It distinguishes this from listing tools like domains.list_managed and general lookup 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 clearly implies use when needing full details for a single domain owned or managed by the account. It does not explicitly name alternative tools or exclusionary cases, but the context is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.list_managedAInspect
List domains this Vee3 account owns or manages (registered through Vee3).
Returns domain status, registration dates, lock and privacy settings, and paging metadata.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for paginated results. | |
| limit | No | Maximum number of domains to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| paging | No | Pagination metadata for the result set. |
| domains | No | Managed domains for this Vee3 account. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the return contents (domain status, registration dates, lock/privacy settings, paging metadata) and the cost of 2 tokens. It does not explicitly state that the operation is read-only, but 'List' implies it, and the detail provided is solid for a list 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 three concise sentences, front-loaded with the main purpose. Every sentence adds value: scope, return contents, and cost. No filler or repetition.
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 list tool with two self-documenting parameters and an output schema, the description covers purpose, return fields, and cost. It is sufficiently complete given the low complexity and rich schema context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so page and limit are fully documented in the schema. The description adds nothing beyond the schema for parameters, only mentioning 'paging metadata' generically. 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 ('List') and clearly identifies the resource (domains owned or managed by the Vee3 account) and the registration scope ('registered through Vee3'). This distinguishes it from siblings like domains.lookup or clerk.list_domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—'domains this Vee3 account owns or manages'—but does not explicitly mention alternatives or exclusions. It provides clear context for the intended use case but lacks explicit when-not-to-use guidance compared to higher-scoring examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.list_tldsAInspect
List or search top-level domains (TLDs) with registry metadata.
Filter by substring search, availability phase, TLD category, and paginate with limit and page. limit defaults to 100 when omitted. Each result includes the TLD suffix, type, availability phase, WHOIS server, domain counts when known, registry organization details, and created/changed timestamps.
availability values: general-availability (open for normal registration) or sunrise (trademark sunrise period before general availability).
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for paginated results. | |
| limit | No | Maximum number of TLDs to return. Defaults to 100 when omitted. | |
| search | No | Return TLDs whose suffix contains this substring. | |
| tld_type | No | Filter by TLD category: country-code, generic, generic-restricted, infrastructure, or sponsored. | |
| availability | No | Filter by registration phase: general-availability (normal public registration) or sunrise (early trademark-holder period). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tlds | No | Matching top-level domain records. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the default limit of 100, lists exactly what fields appear in each result, and defines the availability phases. This is meaningful behavioral context, though it omits ordering, authentication, and error 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 four sentences with no waste: it states the purpose, lists filters, highlights the default limit, summarizes result fields, and defines availability values. The cost note is extra but useful. Every sentence 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's moderate complexity (5 optional params, no required params) and the presence of an output schema, the description is quite complete. It covers filtering, pagination, defaults, and result contents. It merely lacks an explicit pointer to sibling tools, but that is not essential for basic 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 coverage is 100% and every parameter already has a clear description, so the baseline is 3. The description adds a bit of interpretive value by restating the limit default and defining availability values, but these duplicate schema information rather than providing new semantic depth.
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 opening sentence 'List or search top-level domains (TLDs) with registry metadata' clearly states the action and subject. It distinguishes this from single-TLD lookup tools like domains.tld_details, although it does not explicitly name any 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?
The description explains when to use the tool by outlining its filters (substring, availability, category) and pagination options. However, it never mentions alternatives or says when not to use this tool, leaving the comparison with nearby tools like domains.tld_details or domains.check_availability implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.lookupAInspect
Look up a domain and return normalized registration details.
Combines registry and registrar RDAP and WHOIS sources to return the most accurate normalized fields across TLDs: availability, domain status, created/updated/expiry dates, registrar data, contact records, and nameservers.
Use this when you need registrant-oriented summary data rather than raw WHOIS or RDAP payloads.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to look up (for example example.com). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tld | No | Top-level domain suffix. |
| dates | No | Registration lifecycle dates. |
| domain | No | Looked-up domain name. |
| source | No | Primary data source used for the normalized response. |
| status | No | Normalized EPP status codes. |
| keyword | No | Second-level domain label without the TLD. |
| contacts | No | Registrant, admin, tech, and billing contact records. |
| registrar | No | Registrar summary data. |
| nameservers | No | Authoritative nameserver host names. |
| availability | No | Availability state (for example registered or available). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It explains that the tool combines registry and registrar RDAP/WHOIS sources and normalizes results, adding meaningful behavioral context beyond a simple lookup. It also notes the cost in tokens, which is helpful. However, it does not mention potential limitations like rate limits or TLD coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each earning its place: purpose, source/normalization details, usage guidance, and cost. It is front-loaded and concise without unnecessary 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?
Given the tool's low complexity (one parameter) and the existence of an output schema, the description is complete. It states what data is returned, how it is sourced, when to use it, and the token cost, providing sufficient context for an agent to select and 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 schema already describes the single 'domain' parameter with an example, achieving 100% schema description coverage. The description does not add extra parameter-level details beyond the schema, so the 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 tool looks up a domain and returns normalized registration details, listing specific fields (availability, status, dates, registrar, contacts, nameservers). It distinguishes itself from raw RDAP/WHOIS tools by emphasizing normalized, registrant-oriented summary data, which contrasts with sibling tools like domains.rdap and domains.whois.
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 explicitly says to use this when registrant-oriented summary data is needed rather than raw WHOIS or RDAP payloads. It gives clear context for when this tool is appropriate, though it does not explicitly name the sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.metricsAInspect
Analyze a domain with comprehensive SEO metrics, backlink data, and social signals.
Returns authority metrics (Moz domain/page authority, Ahrefs domain rating, Majestic trust and citation flow), backlink profile counts (total backlinks, referring domains, EDU/GOV links), traffic and keyword estimates (organic traffic, traffic value, organic keywords, Ahrefs rank), social signals (Facebook shares/comments, Pinterest pins, StumbleUpon), and technical data (IP addresses, subnets, topical trust flow categories).
Cost = 40 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to analyze (for example example.com). |
Output Schema
| Name | Required | Description |
|---|---|---|
| mozDA | No | Moz domain authority score (0-100). |
| mozPA | No | Moz page authority score (0-100). |
| domain | No | Analyzed domain name. |
| ahrefsDR | No | Ahrefs domain rating (0-100). |
| stumbles | No | Total StumbleUpon shares. |
| FB_shares | No | Total Facebook shares. |
| ahrefsRank | No | Global website ranking from Ahrefs. |
| majesticCF | No | Majestic citation flow score (0-100). |
| majesticTF | No | Majestic trust flow score (0-100). |
| FB_comments | No | Total Facebook comments. |
| last_updated | No | When the metrics snapshot was last updated. |
| ahrefsTraffic | No | Estimated monthly organic traffic. |
| majesticLinks | No | Total links from the Majestic database. |
| pinterest_pins | No | Total Pinterest saves. |
| ahrefsBacklinks | No | Total number of backlinks from Ahrefs. |
| ahrefsRefDomains | No | Number of unique referring domains from Ahrefs. |
| ahrefsTrafficValue | No | Estimated value of organic traffic. |
| ahrefsOrganicKeywords | No | Number of ranking organic keywords. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It thoroughly discloses what will be returned (authority metrics, backlink counts, traffic estimates, social signals, technical data) and the token cost. It does not mention potential limitations or explicitly state read-only behavior, but the returns-focused language strongly implies a safe analysis 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 text is front-loaded with the core purpose, followed by a structured, detailed list of return categories and a cost note. There is no redundant or filler 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?
For a single-parameter read tool with an output schema, the description provides substantial context: purpose, detailed return categories, and cost. It could be improved by naming alternatives or exclusion cases, but it is otherwise 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 only parameter, domain, is fully described in the schema with an example. The tool description adds no additional parameter semantics beyond the schema's 100% coverage, so the baseline score of 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 opens with a specific action ('Analyze a domain') and enumerates the exact data categories (SEO metrics, backlinks, social signals), clearly distinguishing it from sibling domain tools like domains.whois or domains.dns_records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies use when a broad domain analysis is needed, but does not explicitly contrast with alternative tools (e.g., seo.url_metrics or domains.whois) or state exclusions. The 'comprehensive' framing provides context but no direct when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.rdapAInspect
Look up raw RDAP (Registration Data Access Protocol) data for a domain.
Returns registrar entities, domain status codes, registration and expiration events, nameservers, DNSSEC delegation data, RDAP conformance labels, and registry notices.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to look up (for example example.com). |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | No | Registration, expiration, and last-changed timestamps. |
| status | No | EPP status codes for the domain. |
| ldhName | No | Domain name in LDH form. |
| entities | No | Registrar, registrant, and related RDAP entities. |
| secureDNS | No | DNSSEC delegation and DS record data. |
| nameservers | No | Authoritative nameservers for the domain. |
| objectClassName | No | RDAP object class (for example domain). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses the raw/structured nature of the data and the cost (3 tokens), and the verb 'Look up' implies a safe read operation. However, it does not mention potential error behavior, rate limits, or the fact that this is a read-only operation, though it is reasonably implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the purpose, the second lists return contents, and the third notes cost. Every sentence provides useful information with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, output schema present, no nested objects), the description covers purpose, return data, and cost well. It lacks explicit guidance on tool selection, but the existence of an output schema and the straightforward nature of the lookup make this reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already fully documents the single 'domain' parameter with a clear example ('example.com'). The description adds no extra parameter-level detail beyond what the schema provides, so the 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 ('Look up') with a specific resource ('raw RDAP data for a domain'), clearly distinguishing it from siblings like domains.whois or domains.dns_records. The expanded acronym and the detailed list of returned data (registrar entities, status codes, DNSSEC, etc.) precisely define the tool's 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?
Usage context is implied through the phrase 'raw RDAP data' and the enumerated return fields, which suggests this is for protocol-level registry data rather than human-friendly WHOIS or DNS records. However, there is no explicit 'use this when' guidance or mention of alternative tools like domains.whois, leaving the agent to infer when this is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.registerAInspect
Register a domain through Vee3.
The user or agent passes registrant contact details and expected_token_cost from domains.registration_quote. Use a real registrant email address the domain owner can access; the registrar may send a verification email that must be completed to keep the domain in good standing. Charges the quoted token cost on success.
Cost = 200 tokens + domain registration price in tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | Registration term in years. | |
| domain | Yes | Domain name to register (for example example.com). | |
| contact | Yes | Registrant contact used for Registrant, Admin, Tech, and AuxBilling roles. Object with first_name, last_name, address1, city, state_province, postal_code, country (two-letter code), phone (format +NNN.NNNNNNNNNN), and email_address (a real inbox the registrant can access; the registrar may send a verification email that must be completed). Optional fields: address2 and organization_name. | |
| enable_privacy | No | Whether to enable free WhoisGuard privacy protection when available. | |
| expected_token_cost | Yes | Token cost from a fresh domains.registration_quote response. Required to prevent surprise charges. |
Output Schema
| Name | Required | Description |
|---|---|---|
| years | No | Registration term in years. |
| domain | No | Registered domain name. |
| order_id | No | Namecheap order identifier for the registration purchase. |
| expires_at | No | Domain expiration timestamp when known. |
| registered | No | Whether registration completed successfully. |
| token_cost | No | Tokens charged for this registration (200 service tokens plus the domain price in tokens). |
| privacy_enabled | No | Whether WhoisGuard privacy protection is enabled. |
| namecheap_domain_id | No | Namecheap domain identifier for the managed domain. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the token cost formula and the fact that a verification email may be sent that must be completed. Since no annotations are provided, this carries the full burden and covers key behavioral outcomes. It does not mention reversibility or other side effects, but the most important behaviors are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded. The first sentence states the purpose, the second gives actionable workflow, and the final formula is unambiguous. Every sentence earns its place with 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?
The description covers the prerequisite (registration_quote), the expected inputs, the cost, and the verification requirement. With a full output schema present, this is sufficient for correct use. It does not need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that expected_token_cost comes from a fresh domains.registration_quote response, adding meaning beyond the schema's generic description. It also ties the contact details to registrant roles, augmenting the schema. With 100% schema coverage, this adds valuable context beyond the 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 'Register a domain through Vee3' with a specific verb and resource. It distinguishes itself from sibling tools like domains.renew and domains.registration_quote by indicating it performs the actual registration, not a quote or renewal.
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 explicitly instructs the user to pass registrant contact details and expected_token_cost from domains.registration_quote, establishing a clear prerequisite workflow. It also advises using a real email address and notes the verification requirement, giving contextual usage guidance. However, it does not explicitly state when not to use the tool (e.g., for renewals).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.registration_quoteAInspect
Quote registration cost in tokens for one domain and year count.
Quoted cost is 200 service tokens plus the domain registration price in tokens. Token conversion depends on the account billing plan. Use before domains.register.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | Registration term in years. | |
| domain | Yes | Domain name to quote (for example example.com). |
Output Schema
| Name | Required | Description |
|---|---|---|
| years | No | Registration term in years. |
| domain | No | Quoted domain name. |
| available | No | Whether the domain can be registered through Vee3. |
| is_premium | No | Whether the domain is priced as a premium name. |
| token_cost | No | Token cost to register this domain for the quoted term on the account billing plan (200 service tokens plus the domain price). |
| unavailable_reason | No | Reason the domain cannot be registered, when available is false. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the pricing formula ('200 service tokens plus the domain registration price'), dependency on billing plan, and the tool's own cost ('Cost = 5 tokens'). This goes beyond a simple read-only hint, though it does not explicitly state 'no side effects' or describe error 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 front-loaded with the core purpose and remains brief. Each sentence adds value, including the cost formula and the 'Use before domains.register' guidance. The final 'Cost = 5 tokens.' is a distinct tool-cost disclosure, though it could be mistaken for the quoted cost without careful reading.
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 an output schema and fully documented parameters, so the description does not need to explain return values. It explains the cost structure, usage timing, and external dependency (billing plan), making it complete for a simple quote tool. Minor gaps include lack of edge-case handling (e.g., invalid domain), but the output schema likely covers those.
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 already includes descriptions for both parameters (domain and years) with constraints, achieving 100% coverage. The description adds the cost formula context but does not substantially clarify parameter semantics beyond what the schema provides. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Quote registration cost in tokens for one domain and year count.' It clearly distinguishes this from sibling tools like domains.renewal_quote by explicitly saying 'registration cost' and 'Use before domains.register.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool: 'Use before domains.register.' This provides a clear usage context and names a direct alternative (domains.register) in the sibling list. The phrase 'for one domain and year count' further clarifies scoping, though it does not explicitly exclude renewal quotes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.remove_dns_hostAInspect
Remove one DNS host record from a managed domain by host_id.
Preserves all other records. Get host_id from domains.get_dns_hosts. The domain must use Namecheap DNS.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Managed domain name (for example example.com). | |
| host_id | Yes | Host record id from domains.get_dns_hosts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hosts | No | Full DNS host list after the removal. |
| domain | No | Managed domain name. |
| is_using_namecheap_dns | No | Whether the domain currently uses Namecheap DNS. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and delivers: 'Preserves all other records' (non-destructive behavior), a domain constraint, and a token cost. It does not describe failure modes or irreversibility, but covers key safety 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?
Three concise sentences, front-loaded with the primary action. No wasted words; each sentence carries useful information (action, safety, prerequisite, cost).
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 two-parameter delete tool with full schema coverage and an output schema, the description covers the essential context: what it does, how to obtain host_id, the Namecheap requirement, token cost, and preservation guarantee. It is complete for agent selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description reinforces the host_id source ('Get host_id from domains.get_dns_hosts') and adds the Namecheap constraint, but adds no new parameter-level syntax or format 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 opens with a specific verb ('Remove'), the exact resource ('DNS host record'), and the scope ('from a managed domain by host_id'). This clearly distinguishes it from sibling tools like domains.add_dns_host and domains.get_dns_hosts.
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?
Provides clear context on prerequisites: 'Get host_id from domains.get_dns_hosts' and 'The domain must use Namecheap DNS.' It does not explicitly mention alternatives or when not to use, but the workflow is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.renewAInspect
Renew a domain already managed through this Vee3 account.
The user or agent passes expected_token_cost from domains.renewal_quote. Charges the quoted token cost on success. Premium domains can only be renewed for 1 year at a time.
Cost = 100 tokens + domain renewal price in tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | Renewal term in years. Premium domains support 1 year only. | |
| domain | Yes | Managed domain name to renew (for example example.com). | |
| expected_token_cost | Yes | Token cost from a fresh domains.renewal_quote response. Required to prevent surprise charges. |
Output Schema
| Name | Required | Description |
|---|---|---|
| years | No | Renewal term in years. |
| domain | No | Renewed domain name. |
| renewed | No | Whether renewal completed successfully. |
| order_id | No | Namecheap order identifier for the renewal purchase. |
| expires_at | No | Updated domain expiration timestamp when known. |
| token_cost | No | Tokens charged for this renewal (100 service tokens plus the domain renewal price in tokens). |
| namecheap_domain_id | No | Namecheap domain identifier for the managed domain. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility. It discloses the exact cost formula (100 tokens + renewal price), that charges occur only on success, and the premium renewal constraint. This is critical behavioral context beyond the input schema and informs the agent of financial consequences.
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 highly concise: three sentences and a cost formula line. Every sentence adds necessary information—purpose, prerequisite workflow, premium limitation, and cost. It is front-loaded with the core action and contains no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a transactional tool with cost and constraints, the description thoroughly covers the workflow, cost structure, and premium domain behavior. The output schema exists to document return values, and the input schema already documents all parameters, so no critical operational detail is missing.
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%, giving a baseline of 3. The description adds value by explaining that expected_token_cost comes from a fresh domains.renewal_quote response and is used to prevent surprise charges, and reinforces the years constraint for premium domains. This deepens understanding beyond the schema's own 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 clearly states 'Renew a domain already managed through this Vee3 account', which specifies the exact action and resource scope. It distinguishes itself from sibling tools like domains.register (for new domains) and domains.renewal_quote (for quoting) by emphasizing 'already managed'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit guidance to pass expected_token_cost from domains.renewal_quote, establishing a clear prerequisite workflow. It also notes the premium domain 1-year limitation. However, it does not explicitly state when not to use the tool (e.g., unmanaged domains), though that is implied by 'already managed'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.renewal_quoteAInspect
Quote renewal cost in tokens for one managed domain and year count.
Only works for domains already managed by this Vee3 account. Quoted cost is 100 service tokens plus the domain renewal price in tokens. Token conversion depends on the account billing plan. Use before domains.renew. Premium domains can only be renewed for 1 year at a time.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| years | No | Renewal term in years. Premium domains support 1 year only. | |
| domain | Yes | Managed domain name to quote for renewal (for example example.com). |
Output Schema
| Name | Required | Description |
|---|---|---|
| years | No | Renewal term in years. |
| domain | No | Quoted domain name. |
| available | No | Whether the domain can be renewed through Vee3 for the quoted term. |
| is_premium | No | Whether the domain is priced as a premium name. |
| token_cost | No | Token cost to renew this domain for the quoted term on the account billing plan (100 service tokens plus the domain price). |
| unavailable_reason | No | Reason the domain cannot be renewed, when available is false. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses key behavioral details: cost composition (100 service tokens + renewal price), dependency on billing plan, and premium domain limitations. However, the trailing 'Cost = 5 tokens' is ambiguous and could confuse rather than clarify.
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 first sentence is clear and front-loaded, but the final 'Cost = 5 tokens.' is cryptic, unnecessary, and disrupts the flow. It appears to be a stray note that detracts from overall 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 covers prerequisites, cost calculation, and usage context. An output schema exists so return values need not be described. However, it omits error behavior (e.g., unmanaged domains) and contains the confusing 'Cost = 5 tokens' line, slightly reducing 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%, so both parameters are fully described. The description adds no new meaning beyond echoing 'managed domain and year count'; the premium domain restriction is already present in the years parameter's schema 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 'Quote renewal cost in tokens for one managed domain and year count' with a specific verb and resource. It also distinguishes itself from sibling tools like domains.renew and domains.registration_quote by explicitly limiting to managed domains and recommending use before renewal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states 'Only works for domains already managed by this Vee3 account' and 'Use before domains.renew', providing clear when-to-use and an explicit alternative integration. The premium domain 1-year constraint is also highlighted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.tld_detailsAInspect
Look up detailed registry information for a single top-level domain (TLD).
Returns status, TLD type, availability phase, WHOIS and RDAP servers, registry URL, domain counts, delegation dates, registry organization, administrative/technical contacts, and remarks.
Pass the TLD suffix without a leading dot (for example io or com).
Cost = 1 token.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | Yes | TLD suffix to look up without a leading dot (for example io). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tld | No | TLD suffix without a leading dot. |
| type | No | TLD category (for example country-code or generic). |
| level | No | TLD level (1 for standard TLDs). |
| status | No | Delegation status (for example ACTIVE). |
| changed | No | TLD record last changed timestamp. |
| created | No | TLD delegation created timestamp. |
| remarks | No | Additional registry notes or links. |
| contacts | No | Registry contact records. |
| rdap_server | No | Authoritative RDAP server URL. |
| availability | No | Registration phase for the TLD. |
| organization | No | Registry operator contact details. |
| registry_url | No | Registry web site URL. |
| whois_server | No | Authoritative WHOIS server host name. |
| domains_count | No | Approximate registered domain count when reported by the registry. |
Tool Definition Quality
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 does well by enumerating the exact output fields (status, TLD type, WHOIS/RDAP servers, etc.) and adding the 'Cost = 1 token' note. It does not mention auth requirements or rate limits, but for a read-only lookup this is acceptable. The description adds substantial behavioral context beyond the 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?
The description is perfectly sized and front-loaded. The first sentence states the purpose, followed by a compact list of return fields, an input rule, and a cost note. Every sentence earns its place; no filler or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple one-parameter tool with an output schema and full schema coverage, the description covers the essentials: what it returns, how to format the input, and the cost. It lacks explicit mentions of error conditions or data availability, but these are not critical for a single-TLD lookup and are unlikely to impede selection or invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the parameter meaning ('without a leading dot') and adds one more example ('com'), but this is redundant with the schema's own description. No significant additional meaning is provided beyond what the schema already says.
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 ('Look up') and a precise resource ('detailed registry information for a single top-level domain'). It clearly distinguishes this tool from siblings by emphasizing 'single TLD' and 'detailed registry information', which separates it from domains.whois or domains.rdap. The tool's scope is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when you need comprehensive registry details for a single TLD. It also gives an explicit input rule ('without a leading dot'). However, it does not explicitly compare with alternatives like domains.whois or domains.rdap, so it lacks explicit exclusions or when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
domains.whoisAInspect
Fetch WHOIS registration data for a domain.
Returns a JSON object keyed by WHOIS server host name. Each value contains parsed fields such as Domain Name, registrar details, dates, name servers, domain status, DNSSEC data, and raw text lines.
Set include_registrar to true to query registry and registrar servers (slower, more complete). Default false queries the registry server only.
Cost = 4 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to look up (for example example.com). | |
| include_registrar | No | When true, query registry and registrar WHOIS servers for more complete data. When false (default), query the registry server only. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains the return format (JSON keyed by WHOIS server), the fields included (Domain Name, registrar details, dates, etc.), the default behavior (registry server only), and the trade-off of include_registrar (slower but more complete). It also discloses cost. It does not mention error handling or rate limits, but for a read-only lookup this is a solid, transparent 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 four sentences, front-loaded with the primary purpose, followed by output structure, parameter guidance, and cost. Every sentence earns its place; there is no redundancy or fluff. It is appropriately sized for a simple two-parameter 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?
The tool has a simple two-parameter schema, an output schema, and no annotations. The description explains the return format, the keying by server, the parsed fields, and the parameter behavior. It is complete for the tool's complexity. It could mention what happens on invalid domains or network errors, but the output schema and parameter descriptions already cover the essentials.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The input schema already fully describes both parameters (domain with example, include_registrar with explanation of true/false behavior). The description adds no new parameter-level meaning beyond what the schema provides, just restates the include_registrar behavior and adds cost/output context.
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 opens with a specific verb+resource: 'Fetch WHOIS registration data for a domain.' It clearly identifies the tool's function and differentiates it from siblings like domains.rdap, domains.dns_records, and domains.lookup by focusing on WHOIS-specific data and the response structure keyed by WHOIS server host.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance on the include_registrar parameter (when to use true vs false), but it does not explicitly state when to prefer this tool over siblings like domains.rdap or domains.lookup. The usage context is implied by the 'WHOIS' focus, but there is no direct 'use this instead of X' guidance, so it falls at the 'implied usage' level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files.delete_fileAInspect
Permanently delete a file from the authenticated account's upload storage.
Pass file_name from files.list_uploaded_files. The file is removed from storage and any linked upload session is marked expired.
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | Relative file name or path to delete. Use files.list_uploaded_files to see available names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| file_name | No | Deleted file name. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description effectively carries the transparency burden. It explicitly states the action is permanent, that the file is removed from storage, and that linked upload sessions are marked expired. It also notes the cost is 0 tokens. This is strong disclosure of side effects and irreversibility, though it doesn't cover error cases or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, each adding distinct value: purpose, source of file_name, and side effects/cost. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool with an output schema and no annotations, the description covers the essential context: what the tool does, where to get the input, what happens to the file and session, and cost. It omits error handling details, but these are not required for basic use, and the output schema handles return formats.
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 the single required parameter, providing the format and source. The tool description reinforces this by telling the agent to pass file_name from files.list_uploaded_files, adding actionable guidance on where to retrieve the value. This exceeds the baseline for fully documented schemas.
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 opens with a specific verb+resource: 'Permanently delete a file from the authenticated account's upload storage.' This clearly distinguishes it from sibling file tools (download, extend, list, move, upload) by its destructive and 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?
The description provides clear usage context: it instructs the agent to pass file_name from files.list_uploaded_files, establishing a prerequisite and source for the parameter. It does not explicitly mention alternatives or when-not-to-use, but the purpose is clear enough, so it earns a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files.download_fileAInspect
Reserve a direct download for a previously uploaded file.
Pass the file_name from files.list_uploaded_files (paths such as folder/subfolder/name.ext are supported). Vee3 returns a download_code.
Install the Vee3 CLI once with npm install -g @vee3/cli (requires Node 18+), then run vee3-get-file {download_code} ./path/to/save in the terminal. The CLI does not need an API key.
If installation fails with a TLS or certificate error (common on networks that inspect HTTPS traffic), use Node 22.15 or newer and run with NODE_OPTIONS=--use-system-ca, or configure npm to trust your network's root certificate.
Download codes can be resolved within 60 minutes of reserve.
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | Relative file name or path to download. Use files.list_uploaded_files to see available names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | No | Suggested terminal command for downloading to a local path. |
| file_name | No | Stored file name. |
| expires_at | No | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). |
| size_bytes | No | Object size in bytes when known. |
| download_id | No | Stable identifier for the reserved download. |
| content_type | No | MIME type on the stored object when known. |
| download_code | No | Short code to pass to the @vee3/get-file CLI. |
| install_command | No | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| troubleshooting | No | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the behavioral workflow: it returns a download_code, requires the Vee3 CLI to actually retrieve the file, describes the 60-minute expiration, Node.js requirements, cost, and even troubleshooting for TLS/certificate errors. This is exemplary 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 moderately long but well-structured, with each sentence serving a purpose: purpose, parameter guidance, CLI usage, troubleshooting, expiration, and cost. The troubleshooting section adds length but is genuinely useful, so it 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?
The description covers the entire workflow: reserving the download, obtaining the code, using the CLI to save the file, the 60-minute validity, prerequisites (Node 18+), cost, and common failure modes. Even with an output schema, all necessary contextual guidance is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already defines file_name as a relative path. The description adds value by explicitly pointing to files.list_uploaded_files for available names and clarifies that paths like folder/subfolder/name.ext are supported, reinforcing and slightly expanding the schema semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Reserve a direct download for a previously uploaded file.' It uses a specific verb and resource, and the reference to files.list_uploaded_files differentiates it from siblings like upload_file, delete_file, and move_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly implies when to use (for previously uploaded files) and instructs to get the file name from files.list_uploaded_files. It doesn't explicitly list exclusions or alternatives, but the usage context is strong enough to avoid confusion with sibling file tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files.extend_fileAInspect
Extend retention for a file that was uploaded with files.upload_file and appears in files.list_uploaded_files with retained_until.
Adds additional_retention_days to the current schedule (or from now if retention already expired). Only files with a completed upload session and retention metadata can be extended.
Cost = max(1, ceil(size_gibibytes * additional_retention_days * 2)) tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | Relative file name or path to extend. Use files.list_uploaded_files and choose a file that includes retained_until. | |
| additional_retention_days | Yes | Days to add to the file's retention schedule. |
Output Schema
| Name | Required | Description |
|---|---|---|
| file_name | No | Extended file name. |
| size_bytes | No | File size in bytes used for billing. |
| token_cost | No | Tokens billed for this extension. |
| retained_until | No | ISO 8601 timestamp when the file is now scheduled to be removed. |
| additional_retention_days | No | Days added in this request. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral disclosure burden. It explains the exact operation (adds additional_retention_days to the current schedule or from now if expired), eligibility constraints, and includes a cost formula. This is rich, specific, and non-tautological.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each contributing essential information: purpose and source, behavioral rules, and cost. It is front-loaded with the tool's primary function and contains no filler or redundant wording.
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 no annotations and an output schema, the description covers all necessary guidance: what it does, which files qualify, how retention is calculated, constraints, and cost. The output schema handles return details, so no further explanation 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?
The schema already describes both parameters clearly, but the description adds valuable context by explaining how additional_retention_days interacts with the current schedule and the cost formula based on file size. This goes beyond the schema's simple 'days to add' and 'file name' 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 uses a specific verb and resource ('Extend retention for a file') and clearly identifies the applicable file source (files.upload_file and files.list_uploaded_files with retained_until). This distinguishes it from sibling file tools like delete, download, move, and upload.
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 states clear prerequisites: the file must have been uploaded via files.upload_file, appear in files.list_uploaded_files with retained_until, and have a completed upload session plus retention metadata. It does not explicitly name alternatives or exclusions, but the context makes the intended use case unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files.list_uploaded_filesAInspect
List files currently stored for the authenticated Vee3 account.
Returns file_name (including any folders), content_type, size_bytes, uploaded_at, and retained_until when known. Use file_name to reference a file in other capabilities.
Optional folder limits results to that folder path and its subfolders (for example media/clips).
retained_until is when the file will be removed (based on retention_days at upload).
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Optional folder path (for example media/clips). When set, only files under that folder (including nested subfolders) are returned. Do not use '..' or absolute paths. |
Output Schema
| Name | Required | Description |
|---|---|---|
| files | No | Files currently stored for the authenticated account, newest first. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses return fields, explains retained_until semantics, describes folder filtering behavior, and notes zero token cost. It doesn't discuss pagination or error handling, but for a simple list operation it provides substantial 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 compact and front-loaded with the primary action, followed by return fields, optional parameter behavior, retention context, and cost—each sentence adds distinct value without 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?
Given the simple tool complexity (one optional parameter, output schema present), the description covers the tool's purpose, return values, parameter behavior, and retention semantics. The only minor omission is explicit pagination details, but the description overall is complete 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 coverage is 100%; the folder parameter's constraints are fully described in both the schema and the description. The description's mention of folder path and subfolders mirrors the schema, adding no new 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 opens with a specific verb+resource: 'List files currently stored for the authenticated Vee3 account.' It clearly distinguishes itself from sibling file tools (delete, download, extend, move, upload) by describing a read-only listing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says 'Use file_name to reference a file in other capabilities,' which tells the agent when to use this tool (to obtain file references for later operations). It doesn't explicitly mention what it's not for, but the context of sibling tools and the listing nature make the alternative usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files.move_fileAInspect
Move a stored file to a new account-relative path.
Pass source_file_name from files.list_uploaded_files and the desired destination_file_name. The file is copied to the new path and the source is removed. Any linked upload session is updated to the new path.
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| source_file_name | Yes | Current relative file name or path. Use files.list_uploaded_files to see available names. | |
| destination_file_name | Yes | New relative file name or path. Must not already exist in account storage. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source_file_name | No | Previous file name. |
| destination_file_name | No | New file name after the move. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the operation is actually a copy+delete ('file is copied to the new path and the source is removed'), that linked upload sessions are updated, and that the cost is 0 tokens. These are significant behavioral details beyond the basic 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 concise, front-loaded with the primary action, and every sentence provides useful information—purpose, how to obtain source, behavior (copy+remove, session update), and cost. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple move tool with two well-documented parameters, an output schema present, and no nested objects or enums, the description covers all necessary context: source retrieval, destination constraints (implied by schema), side effects, and cost. It is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already well-described in the schema. The description adds minimal extra meaning beyond reinforcing that source_file_name comes from files.list_uploaded_files, 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 explicitly states the tool 'Move a stored file to a new account-relative path', which clearly identifies the action and resource. This distinguishes it from sibling tools like files.upload_file, files.delete_file, and files.download_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context by instructing to pass source_file_name from files.list_uploaded_files and destination_file_name, and explains the move semantics. However, it does not explicitly mention when not to use this tool or name alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
files.upload_fileAInspect
Reserve a direct upload slot for a local file.
Pass the desired file_name. To place a file in folders, use a path in file_name (folder/subfolder/.../name). Optionally pass retention_days (default 7, minimum 1). The name may omit an extension. Vee3 returns an upload_code.
Install the Vee3 CLI once with npm install -g @vee3/cli (requires Node 18+), then run vee3-upload {upload_code} {file_path} in the terminal. The CLI resolves the code to a signed upload URL, streams the local file to Vee3 storage, and prints the stored file_name after the upload finishes. Use that file_name in files.list_uploaded_files and other capabilities. The CLI does not need an API key.
If installation fails with a TLS or certificate error (common on networks that inspect HTTPS traffic), use Node 22.15 or newer and run with NODE_OPTIONS=--use-system-ca, or configure npm to trust your network's root certificate.
Files can be up to 2 GB. Retention is chosen at reserve time (default 7 days). After the upload is detected, Vee3 bills max(1, ceil(size_gibibytes * retention_days * 2)) tokens. Upload codes can be resolved within 60 minutes of reserve.
Use files.list_uploaded_files to list stored uploads for follow-up work.
Cost = 0 tokens to reserve. After upload completes, billing is max(1, ceil(size_gibibytes * retention_days * 2)) tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | Desired file name or path for the uploaded file. Use folder/subfolder/.../file_name to organize files in folders. Extension is optional and is replaced based on detected file type. Do not use '..' or absolute paths. | |
| retention_days | No | How many days to keep the file after upload completes. Default 7. Billing uses size and this retention. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | No | Suggested terminal command for uploading the local file. |
| max_bytes | No | Maximum allowed file size in bytes. |
| upload_id | No | Stable identifier for the reserved upload. |
| expires_at | No | ISO 8601 timestamp when the upload code can no longer be resolved (60 minutes after reserve). |
| upload_code | No | Short code to pass to the @vee3/upload CLI. |
| retention_days | No | Days the file will be retained after upload completes. |
| install_command | No | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| troubleshooting | No | What to do if installation or uploading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It thoroughly discloses that the tool is only a reservation step, requires an external CLI, has a 2 GB file size limit, expires upload codes after 60 minutes, and details a non-obvious token billing formula. This goes far beyond 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?
The description is long (~250 words) but dense and structured into logical sections: purpose, usage steps, CLI setup, troubleshooting, limits, and billing. Every sentence adds relevant operational detail. It is front-loaded with the core purpose and action required, and while it could be tightened slightly, the length is justified by the multi-step workflow.
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?
This tool has a moderately complex workflow involving an external CLI, auth-free execution, billing, and time limits. The description covers the entire lifecycle: reservation, CLI installation, upload execution, result handling, expiration, and cost. It also points to a sibling tool for subsequent steps. The output schema exists, so not detailing return fields is acceptable, but it still names the returned upload_code.
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 already covers both parameters with detailed descriptions (100% coverage), so the baseline is 3. The description adds practical context beyond the schema by explaining how folder paths work, noting that extensions are optional, connecting retention_days to the billing formula, and clarifying the purpose of each parameter in the overall upload flow.
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 opens with a specific verb+resource: 'Reserve a direct upload slot for a local file.' It clearly distinguishes this from sibling tools like files.download_file, files.delete_file, and files.move_file. It also clarifies that this tool only reserves a slot, with the actual upload handled by a CLI, which is an important distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: pass file_name, optionally set retention_days, then use the returned upload_code with a CLI command. It explicitly points to files.list_uploaded_files as a follow-up tool, and includes installation instructions, system requirements, and troubleshooting for TLS errors. This is a complete 'how and when to use' guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-maps.languagesAInspect
List supported language codes for Google Maps place endpoints.
Returns languages as a map of language names to codes (for example English: en). Use these codes with the language parameter on place detail, review, and photo calls.
Cost = 1 token.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| languages | No | Map of language names to language codes for Google Maps place endpoints (for example English: en). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return format (a map of language names to codes), gives an example (English: en), and states the cost (1 token), which is useful behavioral context beyond the schema. It does not mention errors or rate limits, but for a simple read-only list, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the verb 'List'. Every sentence earns its place: purpose, return format, usage guidance, and cost. 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?
For a tool with zero parameters and an output schema, this description is complete. It covers what the tool does, what it returns, how to use it with related calls, and the cost. There is no missing information that would hinder an agent from selecting and invoking 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?
There are zero parameters, so the baseline is 4. The description adds context about the return map structure, which is relevant for using the output, but there are no parameter semantics to clarify.
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 'List' and clearly identifies the resource as 'supported language codes for Google Maps place endpoints', distinguishing it from google-search.languages and other sibling tools. It also specifies the format of the return value, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to use this tool: to obtain language codes for the language parameter on place detail, review, and photo calls. It does not mention when not to use it or alternatives, but the guidance is sufficient for the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-maps.nearby_searchAInspect
Search for places near a latitude and longitude.
Required: location. Optional: radius (defaults to 1000 meters when sort_by is Relevance), keyword, place_type, open_now, min_price, max_price, language, region, and cursor. When sort_by is Distance, omit radius and provide keyword or place_type. Pass cursor from a previous cursor_next to fetch the next page.
Returns matching places in places. Use place_id with place detail, review, and photo endpoints.
cursor_next and cursor_previous appear only when pagination cursors are available. Additional upstream fields may appear.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor from cursor_next on a previous response. | |
| radius | No | Search radius in meters (default 1000). | |
| region | No | Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data. | |
| keyword | No | Keyword to match nearby places (for example restaurant). | |
| sort_by | No | Result ordering: "Relevance" (default) or "Distance". | |
| language | No | Language code for results (for example en). | |
| location | Yes | Latitude and longitude of the search point (for example 40,-110). | |
| open_now | No | When true, return only places open for business at query time. | |
| max_price | No | Maximum price level (0–4, inclusive). | |
| min_price | No | Minimum price level (0–4, inclusive). | |
| place_type | No | Restrict results to a single Google Maps place type (for example restaurant). |
Output Schema
| Name | Required | Description |
|---|---|---|
| places | No | Nearby places matching the search criteria. Additional upstream fields may appear. |
| cursor_next | No | Cursor for the next page when more results are available. |
| cursor_previous | No | Cursor for the previous page when available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes on the burden of behavioral disclosure. It goes beyond the schema by explaining default radius behavior dependent on sort_by, when pagination cursors appear, and the token cost. It does not discuss authentication or rate limits, but for a search tool this is acceptable.
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 paragraph with clear sections: purpose, required/optional, usage rule, output, and cost. It is front-loaded with the main purpose and avoids unnecessary filler. Slight redundancy with schema (e.g., default radius) but earns its place with the conditional logic.
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 presence of an output schema, return values are covered there. The description adds critical context about pagination, the 'places' response key, and downstream use of place_id. It does not mention page size limits or explicitly differentiate from google-maps.search, but overall it is comprehensive for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful cross-parameter constraints (sort_by/radius/keyword interactions) and clarifies how to use cursor, which the schema does not state. This elevates it above the 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 starts with 'Search for places near a latitude and longitude,' which is a specific verb-resource-scope pairing. It clearly distinguishes from sibling tools like google-maps.search (likely text-based) by anchoring on the lat/lng requirement.
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 explicitly lists required and optional parameters, provides a conditional rule ('When sort_by is Distance, omit radius and provide keyword or place_type'), and explains cursor-based pagination. However, it does not explicitly name an alternative tool for text-based searches, so it stops short of full when-to-use vs. when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-maps.place_detailsAInspect
Get detailed information for a Google Maps place.
Provide place_id from search results. The identifier also accepts the business identifier form (0x...:0x...). Optional region and language are supported.
Returns a flat place object with fields such as name, full_address, location, hours, status, rating, review_count, website, phone_number, and types when available. Additional upstream fields may appear.
Cost = 4 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data. | |
| language | No | Language code for results (for example en). | |
| place_id | Yes | Google Maps place identifier (for example ChIJk_grnPDq9EcRE7gOH9gAPZA). Also accepts the business identifier form (for example 0x47f4eb87e91f866d:0x9629fabb993eb66). |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | Place display name. |
| hours | No | Opening hours when available. |
| types | No | Place type labels when available. |
| rating | No | Average user rating when available. |
| status | No | Human-readable open/closed status when available. |
| website | No | Place website when available. |
| location | No | Place coordinates when available. |
| full_address | No | Full formatted address when available. |
| phone_number | No | Place phone number when available. |
| review_count | No | Total number of reviews when available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return shape ('flat place object'), lists example fields ('name, full_address, location, hours...'), warns that 'Additional upstream fields may appear,' and states the cost ('Cost = 4 tokens'). This gives a good sense of what to expect, though it does not explicitly mention auth requirements 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?
The description is concise and front-loaded: the first sentence states the purpose, the second gives usage instructions, the third describes the return value, and the fourth mentions cost. Every sentence adds value with no redundancy or padding.
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 relatively simple tool with one required and two optional parameters, the description covers the necessary context: how to obtain the ID, what the output looks like, and the cost. Since an output schema is present, the description does not need to fully detail every return field, but it still provides a helpful preview. This is complete for practical 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 the baseline is 3. The description does add the useful hint that place_id comes from search results, but otherwise repeats what the schema already states about the business identifier form and optional region/language parameters. It does not significantly enhance the parameter understanding 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 opens with 'Get detailed information for a Google Maps place,' which clearly states the verb and resource. It distinguishes itself from sibling tools like google-maps.search or google-maps.place_photos by specifying that it returns detailed place information for a given place_id.
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 says 'Provide place_id from search results,' which clearly indicates the typical workflow: perform a search first, then use the returned place_id to fetch details. It also notes the optional region and language parameters, implying their use for localization. However, it doesn't explicitly mention when not to use this tool or mention sibling alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-maps.place_photosAInspect
Get photos for a Google Maps place.
Provide place_id from search results. The identifier also accepts the business identifier form (0x...:0x...). Optional cursor, region, and language are supported. Pass cursor from a previous cursor_next to fetch the next page.
Returns place metadata and a photos array. Each photo has photo_url and description when available. cursor_next appears only when a pagination cursor is available. Additional upstream fields may appear.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor from cursor_next on a previous response. | |
| region | No | Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data. | |
| language | No | Language code for results (for example en). | |
| place_id | Yes | Google Maps place identifier (for example ChIJk_grnPDq9EcRE7gOH9gAPZA). Also accepts the business identifier form (for example 0x47f4eb87e91f866d:0x9629fabb993eb66). |
Output Schema
| Name | Required | Description |
|---|---|---|
| place | No | Place metadata for the photo listing. |
| photos | No | Place photos. |
| cursor_next | No | Cursor for the next page when more results are available. |
Tool Definition Quality
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 details the return structure (place metadata and photos array), photo fields (photo_url, description), pagination behavior (cursor_next appears when available), and warns that additional upstream fields may appear. It also states the token cost, providing complete transparency for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact (four sentences plus cost line) and front-loaded with the core purpose. Each sentence contributes meaningful information: input source, optional parameters, pagination, output shape, and cost. There is no redundancy or filler.
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 4 parameters and an existing output schema, the description covers all necessary context: required input origin, optional parameters, pagination behavior, expected output structure, and cost. The presence of an output schema means detailed field-level return descriptions are unnecessary, and the description is therefore complete for its complexity.
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 already covers all parameters with descriptions (100% coverage), so the baseline is 3. The description adds value by explicitly instructing to obtain place_id from search results and explaining how to use the cursor from a previous cursor_next for pagination, which goes beyond the schema's generic 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 opens with 'Get photos for a Google Maps place,' which clearly identifies the action (retrieving photos) and the resource (a Google Maps place). This distinguishes it from sibling tools like place_details, place_reviews, and search, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context by instructing users to provide place_id from search results, and explains pagination via cursor_next. However, it does not explicitly mention alternatives or when not to use this tool, though the singular purpose (photos) makes that less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-maps.place_reviewsAInspect
Get reviews for a Google Maps place.
Provide place_id from search results. The identifier also accepts the business identifier form (0x...:0x...). Optional sort_by (Relevant, Lowest, Highest, Newest), cursor, region, and language are supported. Pass cursor from a previous cursor_next to fetch the next page.
Returns place metadata and a reviews array. Each review includes fields such as review_id, review_text, rating, and user_name. cursor_next appears only when a pagination cursor is available. Additional upstream fields may appear.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor from cursor_next on a previous response. | |
| region | No | Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data. | |
| sort_by | No | Review sort order: "Relevant" (default), "Lowest", "Highest", or "Newest". | |
| language | No | Language code for results (for example en). | |
| place_id | Yes | Google Maps place identifier (for example ChIJk_grnPDq9EcRE7gOH9gAPZA). Also accepts the business identifier form (for example 0x47f4eb87e91f866d:0x9629fabb993eb66). |
Output Schema
| Name | Required | Description |
|---|---|---|
| place | No | Place metadata for the reviewed location. |
| reviews | No | Place reviews. |
| cursor_next | No | Cursor for the next page when more results are available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses pagination behavior (cursor_next appears only when available), return fields (review_id, review_text, rating, user_name), and cost (3 tokens). It also notes that additional upstream fields may appear, setting expectations. It stops short of covering error handling or rate limits, but for a read-only retrieval tool this is solid 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?
The description is well-structured and front-loaded: purpose, input sourcing, optional parameters, pagination, return overview, and cost. Every sentence contributes useful information, with no filler or redundancy. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential aspects: what it does, input requirements, optional parameters, pagination, return data, and cost. An output schema exists, so deep return-field documentation is delegated. It does not mention error cases or rate limits, but given the tool's read-only nature and the presence of an output schema, the description is sufficiently complete for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes each parameter well. The description adds value by explaining the workflow ('Provide place_id from search results', 'Pass cursor from a previous cursor_next to fetch the next page') and by listing sort_by options. This goes beyond the schema's field-level descriptions, earning a score above 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 opens with 'Get reviews for a Google Maps place,' using a specific verb and resource. It clearly distinguishes this from sibling tools like google-maps.place_details (metadata) and google-maps.place_photos (photos), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by stating 'Provide place_id from search results' and explaining optional parameters and pagination flow. It does not explicitly name alternatives, but the prerequisite and parameter usage are well-defined, giving the agent enough guidance to invoke the tool correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-maps.place_typesAInspect
List supported Google Maps place type values for search filters.
Returns place_types as a string array. Use a value with place_type on google-maps.search or google-maps.nearby_search.
Cost = 1 token.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| place_types | No | Supported Google Maps place type string values. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It states the return type ('Returns place_types as a string array') and cost ('Cost = 1 token'), which is useful. However, it does not mention potential limitations such as whether the list is exhaustive or sorted, but for a simple list tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the main purpose, and every sentence earns its place. It covers purpose, return type, usage, and cost without any filler.
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, zero-parameter tool with an output schema, the description is complete. It explains what the tool does, what it returns, how to use the results, and the cost. No further information 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?
The tool has zero parameters, so the baseline is 4. The description adds no parameter details because none exist, but it explains how the returned values will be used as parameters in other tools (place_type), which adds practical value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'List supported Google Maps place type values for search filters.' It uses a specific verb (List) and resource (Google Maps place type values), distinguishing it from sibling search tools like google-maps.search and google-maps.nearby_search.
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 explicitly says when to use the tool: 'Use a value with place_type on google-maps.search or google-maps.nearby_search.' This direct guidance tells the agent exactly how to apply the results, which is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-maps.review_detailsAInspect
Get details for one Google Maps review.
Provide review_id from a place reviews response. Returns one review object at the top level with fields such as review_id, review_text, rating, and user_name when available. Additional upstream fields may appear.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| review_id | Yes | Google Maps review identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rating | No | Star rating for the review. |
| review_id | No | Review identifier. |
| user_name | No | Reviewer display name when available. |
| review_text | No | Review body text. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the return type ('Returns one review object at the top level'), enumerates possible fields ('review_id, review_text, rating, and user_name when available'), and warns about 'Additional upstream fields may appear.' It also notes the cost of 2 tokens. While it doesn't explicitly state read-only behavior, 'Get' implies it, and the disclosed details are solid.
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 four brief sentences, each providing essential information: purpose, prerequisite, return shape, and cost. It is front-loaded with the main verb and resource, and every sentence earns its place with zero 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?
For a simple one-parameter lookup with an output schema, this description covers all necessary aspects: what it does, how to obtain the input, what the output looks like, and even the token cost. The output schema handles return-field details, so no additional explanation 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 coverage is 100% (review_id has a description), so baseline is 3. The description adds significant semantic value by explaining where the ID comes from: 'from a place reviews response.' This goes beyond the schema's generic 'Google Maps review identifier' and helps the agent correctly source the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get details for one Google Maps review.' It specifies the resource (Google Maps review) and the action (get details). It also differentiates from siblings like place_reviews and place_details by requiring a review_id from a place reviews response, making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Provide review_id from a place reviews response.' This tells the agent when to use this tool (after fetching place reviews) and where to obtain the necessary input. It doesn't explicitly name alternatives or exclusions, but for a simple lookup tool the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-maps.searchAInspect
Search Google Maps by text query.
Optional filters include location, radius (defaults to 1000 meters), open_now, min_price, max_price, place_type, language, and region. Pass cursor from a previous cursor_next to fetch the next page.
Returns matching places in places with names, full_address, place_id, ratings, and location. Use place_id with place detail, review, and photo endpoints.
cursor_next and cursor_previous appear only when pagination cursors are available. Additional upstream fields may appear.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for places (for example restaurants in Paris). | |
| cursor | No | Pagination cursor from cursor_next on a previous response. | |
| radius | No | Search radius in meters (default 1000). | |
| region | No | Two-character region code (for example us). On search endpoints this biases results by ccTLD. On place endpoints this selects regional place data. | |
| language | No | Language code for results (for example en). | |
| location | No | Optional latitude and longitude bias point (for example 40,-110). A location embedded in the query may override this. | |
| open_now | No | When true, return only places open for business at query time. | |
| max_price | No | Maximum price level (0–4, inclusive). | |
| min_price | No | Minimum price level (0–4, inclusive). | |
| place_type | No | Restrict results to a single Google Maps place type (for example restaurant). |
Output Schema
| Name | Required | Description |
|---|---|---|
| places | No | Matching places from the text search. Additional upstream fields may appear. |
| cursor_next | No | Cursor for the next page when more results are available. |
| cursor_previous | No | Cursor for the previous page when available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the default radius, pagination cursor behavior, presence of cursor fields, possibility of additional upstream fields, and token cost. It does not mention error handling or rate limits, but for a read-only search tool, it provides solid behavioral coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose first, then filters, return data, pagination, and cost. Every sentence contributes useful information, with no fluff or redundancy. It is appropriately sized for a tool with 10 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?
Despite having an output schema, the description still summarizes return fields and cross-references place_id with related endpoints. It covers pagination, default radius, filters, and cost. It is sufficiently complete for an agent to select and 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 description coverage is 100%, so baseline is 3. The description lists all optional filters and repeats the default radius and cursor usage, but these details are already present in the schema. It adds a convenient summary but no new semantic 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 opens with a specific verb and resource: 'Search Google Maps by text query.' It clearly states the tool searches for places and lists return fields, distinguishing it from sibling tools like nearby_search, which likely focuses on location-based search. It also explicitly ties place_id to other endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on how to use the tool: text query, optional filters, pagination via cursor, and downstream use with place endpoints. However, it does not explicitly mention when to use this tool instead of nearby_search or other alternatives, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-search.autocompleteAInspect
Get Google Search autocomplete suggestions for a partial query.
Returns the normalized query and an array of suggested search phrases.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Partial search keywords or phrase. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | No | Normalized query echoed from the request. |
| suggestions | No | Suggested search phrases for the query. |
Tool Definition Quality
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 adds the return structure and the token cost (5 tokens), which is helpful, but it does not cover potential errors, authentication requirements, or rate limits. For a simple read-only autocomplete tool, this is acceptable 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?
Three concise sentences: the first states the purpose, the second the return value, and the third the cost. Every sentence earns its place with no fluff, and the most important information is 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 low complexity (one parameter, output schema present), the description is sufficient. It covers purpose, input, output, and cost. It could add an example or explain 'normalized query', but the output schema likely fills that gap, making the description complete enough.
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 already provides 100% coverage for the only parameter 'query', describing it as 'Partial search keywords or phrase.' The description reinforces the 'partial query' aspect but does not add substantial meaning beyond the schema, so the baseline score of 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 it retrieves Google Search autocomplete suggestions for a partial query, distinguishing it from other search tools like keyword_traffic_insights or url_traffic_insights. It also specifies the return format (normalized query and an array of suggested phrases), making the purpose unmistakable.
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 indicates the tool is for partial queries and lists what it returns, giving clear context for when to use it. However, it does not explicitly mention when not to use it or reference alternative tools like YouTube's search_autocomplete, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-search.keyword_traffic_insightsAInspect
Get Google keyword traffic insights and related keyword suggestions for a seed keyword.
Returns an array of keyword suggestions. Each item includes text, monthly search volume, competition_level, competition_index, low_bid, high_bid, and trend.
Required: keyword and language (for example en). Optional: location (for example US) for country-specific data; omit location for global results (default). Optional: mode (exact or all, default all), min_search_volume (default 0), and intent (informational, navigational, commercial, or transactional).
Cost = 20 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Keyword suggestion filter: exact returns only suggestions that exactly match the seed keyword; all returns all suggestions (default). | all |
| intent | No | Filter by search intent: informational, navigational, commercial, or transactional. | |
| keyword | Yes | Seed keyword to get traffic insights and suggestions for. | |
| language | Yes | Language code for the search market (for example en). | |
| location | No | Optional country or region code for localized traffic (for example US). Omit for global keyword insights. | |
| min_search_volume | No | Minimum monthly search volume; only keywords at or above this threshold are returned. |
Output Schema
| Name | Required | Description |
|---|---|---|
| keyword_suggestions | No | Keyword suggestions with traffic and competition metrics. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses the return array structure with field names, notes the token cost, and explains default modes and location behavior. It doesn't discuss error handling or rate limits, but for a read-only 'Get' tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized: purpose sentence, return-format sentence, parameter requirements, and cost. Every sentence adds useful information without 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?
With an output schema present, the description doesn't need to fully enumerate return fields, but it still summarizes them. It covers the essential operational aspects: required parameters, optional filters, and cost. It could add more about response size or errors, but overall it's appropriately comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents all six parameters. The description summarizes required and optional parameters but adds little beyond the schema—it repeats defaults already in the schema, such as location's default global behavior and mode's default 'all'.
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 first sentence clearly identifies the resource (Google keyword traffic insights) and the specific verb (Get), with 'for a seed keyword' clarifying the scope. It distinguishes from sibling url_traffic_insights by focusing on keyword-based search rather than URL-based.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on required vs optional parameters and gives examples (language 'en', location 'US') and explains the default behavior for location omission. However, it doesn't explicitly name alternatives or state when not to use this tool relative to siblings like url_traffic_insights.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-search.languagesAInspect
List languages you can pass as language on google-search.keyword_traffic_insights and google-search.url_traffic_insights.
Returns an array of entries with language_name and language_code (for example en, de). Maps to upstream lang on the provider API. No request parameters.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| languages | No | Supported languages for the language request parameter. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that there are no request parameters, the return format (array with language_name and language_code), the mapping to upstream 'lang', and even the token cost. This is substantial transparency for a zero-parameter tool, though it could mention sorting or caching but that's minor.
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 four sentences, each with a specific purpose: stating the function, describing the return, noting the mapping, and giving the cost. It is front-loaded with the most important information and contains no filler.
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 list tool with an output schema, the description is complete. It explains what the tool returns, how it maps to the upstream API, its cost, and its intended use with sibling tools. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the description explicitly confirms 'No request parameters,' aligning with the schema. Since there are no parameters to document, the baseline of 4 is appropriate, and the description adds value by explaining the output codes' purpose.
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 lists valid languages for use as the 'language' parameter in google-search.keyword_traffic_insights and google-search.url_traffic_insights, using a specific verb and resource. It distinguishes itself from sibling tools by naming the exact tools it serves, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly indicates when to use this tool: to retrieve language codes for the two named traffic insight tools. It provides clear context but does not mention alternatives or exclusion scenarios, which is acceptable for a simple lookup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-search.locationsAInspect
List countries and region codes you can pass as location on google-search.keyword_traffic_insights and google-search.url_traffic_insights.
Returns an array of entries with country_name and country_code (for example US, GB). No request parameters.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| locations | No | Supported countries for the location request parameter. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return format ('array of entries with country_name and country_code'), gives concrete examples (US, GB), and notes the cost. It does not mention pagination or error behavior, but for a simple no-parameter list tool this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, followed by return details and cost. Every sentence is informative and no words are wasted.
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, an output schema (covering return values), and the description explains purpose, target consumers, and expected output format, it is fully complete for its simple reference-list nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description reinforces that there are no request parameters and explains the conceptual meaning of the data (usable as location values), adding value beyond the empty 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 a specific verb ('List') and resource ('countries and region codes'), and explicitly ties the tool to two consuming functions (google-search.keyword_traffic_insights and google-search.url_traffic_insights). This distinguishes it from other list-type tools like google-search.languages or google-trends.regions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the two tools that accept the returned location codes, giving clear context for when to use this tool. It does not explicitly state when not to use it or mention alternatives, but the purpose is specific enough that no exclusions are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-search.url_traffic_insightsAInspect
Get Google keyword traffic insights and related keyword suggestions for a URL.
Returns an array of keyword suggestions. Each item includes text, monthly search volume, competition_level, competition_index, low_bid, high_bid, and trend.
Required: url and language (for example en). Optional: location (for example US) for country-specific data; omit location for global results (default). Optional: min_search_volume (default 0) and intent (informational, navigational, commercial, or transactional).
Cost = 20 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http or https URL to get traffic insights and suggestions for. | |
| intent | No | Filter by search intent: informational, navigational, commercial, or transactional. | |
| language | Yes | Language code for the search market (for example en). | |
| location | No | Optional country or region code for localized traffic (for example US). Omit for global URL keyword insights. | |
| min_search_volume | No | Minimum monthly search volume; only keywords at or above this threshold are returned. |
Output Schema
| Name | Required | Description |
|---|---|---|
| keyword_suggestions | No | Keyword suggestions with traffic and competition metrics. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It discloses the return structure (array of keyword suggestions with fields), token cost, and parameter defaults. It omits failure modes/rate limits, but for a read-only insights tool this is adequate.
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?
Four short, information-dense sentences; front-loaded with purpose, then output, then parameters, then cost. No filler.
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 a comprehensive input schema and output schema, the description still adds valuable context: cost, default behavior for location, and output fields. Ample for the tool's complexity.
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 3. The description restates parameter requirements and adds language/country examples, but no new semantic info 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?
Description opens with 'Get Google keyword traffic insights and related keyword suggestions for a URL' – a specific verb and resource. It clearly distinguishes from sibling `google-search.keyword_traffic_insights` by anchoring on URL.
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?
Explicitly lists required parameters (url, language) and optional ones (location, min_search_volume, intent) with examples. It does not name sibling alternatives, but the URL-anchored purpose makes the use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-trends.categoriesAInspect
List all Google Trends category and subcategory labels you can pass to other Google Trends tools in the category field.
Returns cat (array of category names, including All categories) and msg. Use this before interest-over-time or interest-by-region calls when filtering by category.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| cat | No | Category and subcategory names accepted by the category field. |
| msg | No | Status or informational message from the upstream API (often empty). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses return shape ('Returns cat ... and msg'), the inclusion of 'All categories', and the token cost. It does not explicitly state read-only behavior, but 'List' implies a safe read operation and the disclosed return fields provide adequate transparency for a simple taxonomy fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with the main purpose front-loaded, followed by return details, usage guidance, and cost. Every sentence contributes value without 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 zero-parameter list tool with an output schema, the description fully covers purpose, usage timing, return structure, and cost. It is complete and well-suited for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds useful context by explaining how the returned labels are used in other tools' 'category field', which is more meaningful than the empty schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action: 'List all Google Trends category and subcategory labels you can pass to other Google Trends tools in the category field.' This clearly distinguishes it from sibling tools like interest_over_time or regions by focusing on the category taxonomy.
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?
Explicit guidance is given: 'Use this before interest-over-time or interest-by-region calls when filtering by category.' This names the exact alternative tools and the precondition, making it easy for an agent to know when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-trends.interest_by_regionAInspect
Fetch Google Trends interest-by-region breakdowns for one to five keywords.
Returns a JSON object whose top-level keys are your keywords. Each value maps location names (countries or subregions) to interest scores (0–100).
Requires start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100). Optional end defaults to now. country defaults to global; region requires a valid country. category and gprop default to all when omitted or empty. resolution is COUNTRY (default) or REGION.
Cost = 40 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Range end in datetime-with-timezone form. Defaults to now. | |
| gprop | No | Google property filter (for example images, news, youtube, froogle). Defaults to all. | |
| start | Yes | Range start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100). | |
| region | No | Region within country. Requires country when set. | |
| country | No | Country name for geo filtering. Defaults to global. | |
| category | No | Trends category or subcategory. Defaults to all. | |
| keywords | Yes | Up to five keywords to compare. | |
| resolution | No | Geographic resolution: COUNTRY (default) or REGION. | COUNTRY |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the return structure (top-level keys as keywords, values as location-to-score maps), parameter defaults, and cost in tokens. It does not mention error handling or rate limits, but for a read-only fetch tool, this is sufficient behavioral insight.
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 organized with purpose first, then return format, then parameter constraints, and a cost note. Every sentence is informative, though the parameter section is slightly dense. No extraneous text, but it could be more streamlined.
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 8 parameters, no annotations, and an existing output schema, the description covers return format, defaults, and cost. It lacks explicit sibling differentiation and error handling, but for a moderately complex tool, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents all parameters. The description paraphrases these details and adds the 'region requires a valid country' constraint, which is also present in the schema. It adds marginal value 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 tool's function: 'Fetch Google Trends interest-by-region breakdowns for one to five keywords.' It specifies the resource (interest-by-region), the verb (Fetch), and scope (one to five keywords), effectively distinguishing it from sibling tools like interest_over_time and related_queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on return format and parameter defaults, including the relationship between country and region. However, it does not explicitly contrast with sibling tools like interest_over_time or related_queries, so it lacks explicit when-to-use vs. alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-trends.interest_over_timeAInspect
Fetch Google Trends interest-over-time series for one to five keywords.
Returns a JSON object whose top-level keys are your keywords. Each value maps timestamps to interest scores (0–100). Granularity depends on the requested date range (from about one minute to monthly buckets).
Requires start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100). Optional end defaults to now. country defaults to global; region requires a valid country. category and gprop default to all when omitted or empty.
Cost = 40 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Range end in datetime-with-timezone form. Defaults to now. | |
| gprop | No | Google property filter (for example images, news, youtube, froogle). Defaults to all. | |
| start | Yes | Range start in datetime-with-timezone form (for example 2020-05-01T00:43:37+0100). | |
| region | No | Region within country. Requires country when set. | |
| country | No | Country name for geo filtering. Defaults to global. | |
| category | No | Trends category or subcategory. Defaults to all. | |
| keywords | Yes | Up to five keywords to compare. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
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 reveals return structure (JSON object keyed by keywords), value semantics (timestamps to 0–100 scores), granularity behavior (depends on date range), and defaults for optional parameters. It does not address errors or rate limits, but for a read-only data fetch tool this is robust.
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 four sentences with each sentence carrying information: purpose, output shape, granularity, parameter constraints, and cost. It is front-loaded and free of fluff, though it slightly redundantly repeats schema notes about start and defaults.
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 presence of an output schema and full parameter descriptions, the description adds the crucial output mapping (keywords to timestamp-score pairs), granularity dependency, and token cost. It covers the tool's essentials well, but could add a note about when to prefer sibling tools for regional or related-query analysis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters already have descriptive text. The description repeats some of this (e.g., start format, defaults) and adds output mapping context, but does not introduce new parameter-level semantics beyond what the schema provides. 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 opens with 'Fetch Google Trends interest-over-time series for one to five keywords,' which is a specific verb+resource statement. It clearly distinguishes this tool from siblings like interest_by_region, related_queries, and suggestions by naming the exact time-series output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (time-series analysis over a date range) but does not explicitly state when to use this tool instead of alternatives, nor does it mention any exclusions. It offers parameter prerequisites (e.g., requires start in datetime-with-timezone form) but no direct comparison to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-trends.regionsAInspect
List all countries and subregions you can pass to other Google Trends tools in the country and region fields.
Returns geo.countries: each country name maps to country (label) and regions (array of subregion names). Also returns msg.
Use this before interest-over-time or interest-by-region calls when filtering by geography. Pair with google-trends.categories when filtering by category.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| geo | No | Geographic options keyed by country name. |
| msg | No | Status or informational message (often empty). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It details the return structure ('geo.countries: each country name maps to country (label) and regions (array of subregion names). Also returns msg.') and mentions a token cost. However, it does not explain what 'msg' contains, and while read-only behavior is implied, it is not stated explicitly. This is a minor gap given the tool's simplicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with a clear opening sentence stating the purpose, a structured explanation of the return value, and specific usage guidance. Every sentence adds value, including the note about token cost, with no redundant or overly verbose 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?
For a zero-parameter lookup tool, the description covers all necessary aspects: what it lists, the exact output format, and how to use it in a broader workflow (with interest-over-time/interest-by-region). The presence of an output schema further backs return type details, so the description is fully sufficient for the AI agent to use 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?
There are zero parameters, so schema coverage is trivially 100%. The description adds value by explaining what the returned data is used for (e.g., passing to other Google Trends tools) rather than focusing on parameters, which is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List all countries and subregions you can pass to other Google Trends tools in the country and region fields.' It uses a specific verb (list) and identifies the resource (geographic regions), while distinguishing itself from sibling tools by mentioning the use case for other Google Trends calls and contrasting with google-trends.categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly provides usage context: 'Use this before interest-over-time or interest-by-region calls when filtering by geography. Pair with google-trends.categories when filtering by category.' This tells the agent when to invoke the tool and how it relates to alternatives, satisfying the criterion for clear when/when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google-trends.suggestionsAInspect
Get Google Trends suggestions for a single keyword.
Returns result: an array of suggested topics and entities, each with mid (topic id), title (display name), and type (for example Topic, Software, Book).
Use this to refine keywords before interest-over-time, interest-by-region, or related-queries calls.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | Keyword or phrase to get suggestions for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | Suggested topics and entities for the keyword. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the exact output format (array with mid, title, type), that it works for a single keyword, and includes the token cost. It does not discuss error behavior or rate limits, but for a simple read operation this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose in the first sentence, followed by return format, usage guidance, and cost. Every sentence contributes useful information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, output structure, and its place in the keyword-research workflow. It also references sibling tools (interest-over-time, interest-by-region, related-queries), providing strong context. It omits edge-case behavior (e.g., empty results, invalid keywords), but given the simple nature and output schema, it is sufficiently 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 schema already covers the single keyword parameter with a clear description ('Keyword or phrase to get suggestions for'), giving 100% schema coverage. The description reinforces 'single keyword' but adds no new semantic details beyond what the schema provides, so the baseline score of 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 'Get Google Trends suggestions for a single keyword,' specifying the exact action and resource. It also details the return structure (array of topics/entities with mid, title, type), which distinguishes it from sibling tools like google-trends.interest_over_time or google-search.autocomplete.
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 explicitly advises using this tool 'to refine keywords before interest-over-time, interest-by-region, or related-queries calls,' giving clear context for when to use it. It does not explicitly mention alternatives or when not to use it, but the workflow guidance is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta-tools.describeAInspect
Describe a single Vee3 capability.
Pass the MCP tool name (for example website-screenshots.capture) or capability id (for example website-screenshot). Use this after meta-tools.list_group_tools when you need parameter names, defaults, response fields, examples, and token cost before calling a tool
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_name | Yes | MCP tool name (for example `x-twitter.create_post`) or capability id (for example `create-x-post`). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | Full capability detail including fields, examples, and bindings. |
| capability_id | No | Described capability id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the operation costs 0 tokens and that it returns parameter names, defaults, response fields, examples, and token cost. It is clearly a read-only informational tool, though it does not describe error behavior or what happens with invalid names.
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 short and well-structured, leading with the purpose, then providing examples of accepted inputs, usage timing, and cost. Every sentence adds useful information with no filler, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, an output schema exists, and the description covers when to use it and what information it returns, the context is mostly complete. It assumes prior knowledge of Vee3 capabilities, but this is reasonable given the sibling tool set and the tool's meta-purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema description for 'tool_name' already explains it accepts an MCP tool name or capability id. The description repeats this but adds no additional semantic meaning beyond giving more examples, so it meets the baseline without elevating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Describe a single Vee3 capability' with a specific verb and resource, and further clarifies it takes a tool name or capability id. This clearly distinguishes it from sibling tools like meta-tools.list_group_tools by focusing on a single capability and the detailed information it returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to use this tool 'after meta-tools.list_group_tools when you need parameter names, defaults, response fields, examples, and token cost before calling a tool.' This gives a clear context and trigger, though it does not explicitly mention when not to use it or name alternatives beyond the sequential reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta-tools.list_allAInspect
List all live Vee3 agent tools.
Use this when you need to discover which tools exist and what they are called in MCP. Each entry includes mcp_tool_name, group_id, and summary. Use meta-tools.describe for full request/response schemas and token costs
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tools | No | Live tool summaries for every capability exposed to agents. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses 'Cost = 0 tokens,' which is a useful behavioral detail. However, it doesn't mention other behaviors like rate limits, pagination, or whether the list is cached. The read-only nature is implied by 'List,' but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five short, focused sentences, each adding value: purpose, when to use, output contents, pointer to alternative, and cost. It is front-loaded with the primary purpose and contains no filler.
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 zero-parameter tool, the description is fully complete. It states what it lists, what each entry contains, when to use it, and points to the sibling tool for more detailed information. The existence of an output schema means return structure needn't be detailed further, but the description still adds relevant 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?
The tool has 0 parameters, and with 100% schema coverage (empty schema), the baseline is 4. The description doesn't need to explain any parameters and doesn't attempt to, which is appropriate for a parameter-less tool.
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 begins with 'List all live Vee3 agent tools,' which is a specific verb+resource+scope. It clearly identifies the tool's function and differentiates it from siblings by explicitly directing users to meta-tools.describe for schemas and costs, while also implying a comprehensive catalog of all 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?
Provides explicit when-to-use guidance: 'Use this when you need to discover which tools exist and what they are called in MCP.' It also names an alternative tool (meta-tools.describe) for full schemas and token costs, giving clear context for when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta-tools.list_groupsAInspect
List all Vee3 capability groups.
Use this to see how tools are organized (for example website-screenshots or meta-tools) before listing tools in a specific group
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| groups | No | Capability groups with live tool counts. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It adds 'Cost = 0 tokens,' a useful behavioral detail, but even for a simple list operation it does not disclose return format, pagination, or required auth. The read-only nature is implied by 'List,' and the cost disclosure is a plus, but beyond that the description 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?
Three short sentences, each serving a clear purpose: the first states the core action, the second gives usage workflow context, and the third notes pricing. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, this description is complete. It covers what it does, when to use it, gives examples, and notes the token cost. The output schema handles return value details, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is fully self-documenting. The baseline for no parameters is 4, and the description correctly avoids inventing parameter details. It provides no parameter semantics because there are none to explain.
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 opens with 'List all Vee3 capability groups,' providing a specific verb and resource. It immediately distinguishes this from sibling tools like meta-tools.list_group_tools by giving examples of groups (website-screenshots, meta-tools) and clarifying it lists groups, not tools within a group.
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?
Explicitly states the intended use case: 'Use this to see how tools are organized... before listing tools in a specific group.' This positions the tool relative to a workflow and implies an alternative (list_group_tools), though it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta-tools.list_group_toolsAInspect
List live tools belonging to a single capability group.
Use group_id from meta-tools.list_groups (for example website-screenshots). Returns name and summary for each live tool in the group
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Group id to list tools for (for example website-screenshots). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tools | No | Live tool summaries in the requested group. |
| group_id | No | Requested group id. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool returns name and summary for each live tool, and mentions 'Cost = 0 tokens.' It also implies read-only behavior and dynamic availability ('live tools'). This is useful behavioral context, though it omits details like pagination or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: purpose, usage instruction, and output/cost. It is front-loaded with the primary function and contains no filler or repetition.
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, output schema present), the description is complete. It covers what the tool does, how to get the input, what the output contains, and the cost. No critical information is missing 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 schema already covers the parameter with a description and example, so the baseline is 3. The description adds value by instructing to source group_id from meta-tools.list_groups, which is not in the schema. This extra provenance guidance enriches the 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 tool's function: 'List live tools belonging to a single capability group.' This specifies the verb (list), the resource (live tools), and the scope (single capability group), distinguishing it from sibling tools like list_groups and list_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 description provides clear context by instructing to 'Use group_id from meta-tools.list_groups' with an example. This tells the agent how to obtain the parameter value. However, it does not explicitly contrast with alternatives like list_all or search, so it lacks explicit when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta-tools.report_bugAInspect
Report a bug, error, or anything that did not work as expected while using Vee3.
Use this when a capability fails unexpectedly, returns wrong data, or behaves inconsistently. Include what you tried, what happened, and any error output
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Short title describing the issue. | |
| description | Yes | Detailed explanation of what went wrong, what was expected, and steps to reproduce if known. | |
| error_details | No | Raw error message, stack trace, or API response that shows the failure. | |
| related_capability_id | No | MCP tool name or capability id involved in the issue, if applicable. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | Submission status. Always "received" on success. |
| report_id | No | Unique identifier for the submitted bug report. |
| created_at | No | ISO 8601 timestamp when the report was recorded. |
Tool Definition Quality
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 adds useful context like 'Cost = 0 tokens' and instructs what to include, but it does not disclose side effects, data handling, or what happens after submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with the purpose front-loaded. Every sentence contributes: what it does, when to use it, and what to include. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and an output schema is present (per context signals), so the description doesn't need to explain return values. It gives sufficient context for an agent to know when and how to invoke it, and clearly differentiates from siblings like request_feature by nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The main description adds a reminder to include what was tried and error output, but this largely duplicates the schema's descriptions for the 'description' and 'error_details' parameters, adding little new 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 opens with a specific verb 'Report' and resource 'bug, error, or anything that did not work as expected while using Vee3'. It clearly distinguishes this from sibling meta-tools like request_feature by focusing on failures rather than feature requests.
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?
Provides explicit when-to-use triggers: 'when a capability fails unexpectedly, returns wrong data, or behaves inconsistently.' It does not mention when-not-to-use or name alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta-tools.request_featureAInspect
Request a new capability or feature that Vee3 does not offer yet.
Use this when you need something that is not available in the catalog — a missing integration, data source, workflow, or enhancement to an existing capability. Describe what you need, why you cannot accomplish it today, and how you would use it
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Short title describing the requested capability or feature. | |
| use_case | No | Example workflow or scenario where this feature would be used. | |
| description | Yes | Detailed explanation of what is needed, why it cannot be done with existing tools, and how it would help. | |
| related_capability_id | No | Capability id this request extends or relates to, if applicable. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | Submission status. Always "received" on success. |
| created_at | No | ISO 8601 timestamp when the request was recorded. |
| request_id | No | Unique identifier for the submitted feature request. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for disclosing behavior. It adds the useful fact that 'Cost = 0 tokens' and implies the tool is a submission mechanism, but it does not describe what happens after the request (e.g., confirmation, asynchronous handling, or response format). This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise and front-loaded. The first sentence states the core purpose, followed by a clear usage condition, what to include, and cost. Every sentence earns its place with no redundancy or 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?
For a simple request tool with an output schema, the description is largely complete: it covers purpose, when to use, what to provide, and cost. The only minor gap is the lack of detail about post-submission behavior, but the output schema presumably covers the return value, so this is not a significant omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters already have clear descriptions. The tool description adds some guidance on what to include in the text fields ('Describe what you need, why you cannot accomplish it today, and how you would use it'), but this mostly paraphrases the schema. It does not meaningfully enhance parameter understanding 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's purpose: 'Request a new capability or feature that Vee3 does not offer yet.' It uses a specific verb ('request') and resource ('new capability or feature'), and further clarifies scope by mentioning 'missing integration, data source, workflow, or enhancement.' This distinguishes it from sibling meta-tools like report_bug and search.
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 explicitly says 'Use this when you need something that is not available in the catalog' and lists example use cases. It also tells the user what to include in the request. However, it does not explicitly state exclusions or name alternative tools (e.g., 'if the capability exists, use it directly'), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta-tools.searchAInspect
Search live Vee3 agent tools by keyword or short task description.
Call this first when you are unsure which tool to use. Returns ranked matches with tool_name, summary, and cost for each hit. Use meta-tools.describe on the best match for full request and response schemas.
Optional group_id narrows results to one capability group. limit defaults to 8 (maximum 20).
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results to return (1–20). | |
| query | Yes | Keywords or short task description (for example `tiktok video comments` or `domain availability`). | |
| group_id | No | Optional group id to narrow results (for example `x-twitter`). |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | No | Normalized search query that was executed. |
| results | No | Ranked capability matches visible to the caller. |
Tool Definition Quality
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 and does so well. It states the return shape (ranked matches with tool_name, summary, cost per hit), the default/maximum limit, the optional group_id narrowing, and that the cost is 0 tokens. This gives the agent accurate expectations for a non-mutating search 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 compact and front-loaded with the core purpose. Every sentence adds value: usage timing, return fields, follow-up tool, parameter behavior, and cost. There is no redundant or filler text.
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 complete for a discovery/search tool. It explains what the tool does, when to call it, what results look like, how parameters affect behavior, and what to do next. The presence of an output schema relieves the need to enumerate return fields in detail, and the description complements it with practical usage guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds meaning beyond the schema by explaining that group_id 'narrows results to one capability group' and that 'limit defaults to 8 (maximum 20)'. The query semantics are already well documented in the schema, so the description enhances rather than repeats.
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 'Search live Vee3 agent tools by keyword or short task description', providing a specific verb, resource, and scope. It distinguishes itself from sibling tools like list_all and describe by focusing on ranked keyword-based discovery and explicitly pointing to describe for full schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: 'Call this first when you are unsure which tool to use.' It also directs the agent to meta-tools.describe for full schemas, which is a clear next-step alternative. This is strong usage guidance for a discovery tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta-tools.token_balanceAInspect
Get the current API token balance for the authenticated account.
Returns tokens used, tokens remaining, monthly allowance, billing plan, and when the allowance resets (billing_period_end). Use this before expensive calls or when you receive a 402 insufficient_tokens response
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tokens_used | No | Tokens consumed in the current billing period. |
| billing_plan | No | Current billing plan id (free, starter, pro, scale). |
| tokens_remaining | No | Tokens left before quota is exhausted. |
| billing_period_end | No | ISO 8601 end of the current billing period. |
| billing_period_start | No | ISO 8601 start of the current billing period. |
| monthly_token_allowance | No | Total tokens included in the current billing period. |
| billing_period_resets_at | No | ISO 8601 timestamp when the token allowance resets (same as period end). |
Tool Definition Quality
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 details return fields (tokens used, remaining, monthly allowance, billing plan, reset time) and explicitly states the cost is 0 tokens. This goes beyond a simple read operation and gives the agent clear expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three terse, front-loaded sentences. The first sentence states the core action, the second lists key return values, and the third provides actionable usage guidance and cost. Every sentence earns its place with no filler.
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 zero-parameter tool, this description is fully complete. It covers what the tool does, what it returns, when to use it, and the associated cost. The output schema is not shown but the description sufficiently documents the return fields, making the tool's behavior fully understood.
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, so there are no parameter semantics to explain. Per the baseline for zero-parameter tools, a score of 4 is appropriate. The description adds meaning by specifying the payload of returned data, even though it doesn't clarify parameter usage since none exist.
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 the current API token balance for the authenticated account.' This is a specific verb+resource combination that precisely defines the tool's function. It distinguishes itself from all sibling tools, none of which relate to token balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this before expensive calls or when you receive a 402 insufficient_tokens response.' It also notes that the tool costs 0 tokens, which is critical for cost-aware decision-making. No sibling tool serves the same purpose, so no alternatives are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.celebrity_detailsAInspect
Look up a celebrity on Rotten Tomatoes by slug (for example morgan-freeman).
Returns name, bio, birth date and place, profile image, and filmography lists for movies and TV with scores and years.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| celebrity_slug | Yes | Celebrity slug (for example morgan-freeman). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tv | No | TV credits with title, slug, year, and score. |
| name | No | Celebrity name. |
| slug | No | Celebrity slug. |
| movies | No | Movie credits with title, slug, year, and score. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden and does well by listing the exact return fields (name, bio, birth date/place, profile image, filmography) and noting the token cost. It does not mention potential errors or rate limits, but as a read-only lookup, the provided information is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences: purpose, return data, and cost. It is front-loaded with the main action and avoids any unnecessary details. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema present, the description is complete: it states what is returned and the cost. It could optionally mention using the search tool to find a slug, but that is not essential. The description covers the key aspects needed for 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?
The schema already fully describes the parameter with a 100% coverage, including an example. The description repeats the example but does not add new semantic meaning beyond what the schema provides. 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 ('Look up') with a clear resource ('celebrity on Rotten Tomatoes') and the input method ('by slug'). It distinguishes itself from sibling tools like movie_details or search by focusing on celebrity-specific details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a celebrity slug and need detailed biographical/filmography information. It does not explicitly mention alternatives or when not to use, though the context of having a slug is clear. Missing direct comparison to sibling tools like rotten-tomatoes.search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.movie_cast_and_crewAInspect
List cast and crew credits for a movie by slug (for example shawshank-redemption).
Returns cast and crew members with names, roles, character names, and profile links where available.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| movie_slug | Yes | Movie slug (for example shawshank-redemption). |
Output Schema
| Name | Required | Description |
|---|---|---|
| cast | No | Cast and crew credits for the movie. |
| slug | No | Movie slug. |
Tool Definition Quality
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 disclose the return content (names, roles, character names, profile links) and the token cost, but it lacks any mention of access requirements, error handling, pagination, or side effects. Since the tool is read-only, that is implied but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured. It opens with the primary purpose, outlines the return data, and includes a cost note. There is no wasted words or redundant filler.
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 low complexity (one parameter) and the presence of an output schema, the description is complete enough. It explains what is returned and the cost, and its return-value details are explicitly specified. No additional information is necessary for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter (movie_slug), and the schema already includes the same example ('shawshank-redemption'). The description repeats this example but adds no additional semantic 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 clearly states the tool's function with a specific verb ('List'), a specific resource ('cast and crew credits'), and a qualification ('for a movie by slug'). It also distinguishes from the sibling tool rotten-tomatoes.tv_show_cast_and_crew by explicitly noting it's for movies.
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 makes the context clear: use this tool to fetch movie cast and crew by providing a movie slug. It provides an example slug ('shawshank-redemption'). However, it does not explicitly mention alternatives or when not to use it (e.g., for TV shows, use the sibling tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.movie_detailsAInspect
Look up a movie on Rotten Tomatoes by slug (for example shawshank-redemption).
Returns title, year, rating, runtime, genres, description, poster and hero images, Tomatometer and Popcornmeter scores, cast highlights, and where to watch links.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| movie_slug | Yes | Movie slug (for example shawshank-redemption). |
Output Schema
| Name | Required | Description |
|---|---|---|
| cast | No | Featured cast with name, slug, and imageUrl. |
| slug | No | Movie slug. |
| year | No | Release year. |
| title | No | Movie title. |
| tomatometer | No | Critic Tomatometer score and metadata. |
| popcornmeter | No | Audience Popcornmeter score and metadata. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the operation is a read-only lookup ('Look up'), lists the exact output fields, and even notes the token cost. It does not mention error handling or rate limits, but for a simple read tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states the purpose with an example, second lists the return fields and cost. Every sentence adds value, front-loaded with the core action, and there is no redundant or filler 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?
For a simple one-parameter read tool, the description is complete. It specifies the input format (slug), provides an example, lists all major output categories, and states the cost. An output schema exists, so detailed return values are not required, and the description exceeds that requirement.
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% because the movie_slug property is fully described with the same example as in the top-level description. The description adds no new meaning beyond the schema, so the 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 uses a specific verb ('Look up a movie') and identifies the resource (Rotten Tomatoes movie by slug) with a clear example. It distinguishes itself from sibling tools like tv_show_details and celebrity_details by explicitly stating 'movie'.
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 clearly states when to use the tool (when you need movie details by slug) and provides context for how to specify the movie. It does not explicitly name alternatives or exclusion criteria, but the sibling tool names (e.g., tv_show_details) imply the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.movie_reviewsAInspect
Load reviews for a movie by slug (for example shawshank-redemption).
Returns review quotes, sentiment, publication, critic details, and pageInfo for pagination. Use cursor from pageInfo.endCursor for the next page. Optionally set type to critic for critic reviews only.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of review pages to return (1–50, default 20). | |
| cursor | No | Pagination cursor from a previous response pageInfo.endCursor field. | |
| movie_slug | Yes | Movie slug (for example shawshank-redemption). | |
| review_type | No | Review filter. Use critic for critic reviews; omit for the default set. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | Movie slug. |
| type | No | Review set type (for example critic). |
| reviews | No | Review entries with quote, sentiment, critic, and publication. |
| pageInfo | No | Pagination metadata for review listings. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: it returns review quotes, sentiment, publication, critic details, and pageInfo, and mentions pagination via endCursor. It also states the token cost. It does not describe error cases or rate limits, but covers the essential 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 concise and front-loaded: it states the core purpose in the first sentence, then covers returns, pagination, filtering, and cost in three short sentences. No filler or 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 straightforward with only four parameters and an output schema present. The description fully covers purpose, pagination mechanics, filtering, and cost, which is sufficient given the low complexity and rich schema 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?
All four parameters are already well-documented in the schema (100% coverage). The description adds some context for review_type (critic filter) and cursor (from pageInfo.endCursor), but these mostly echo the schema. It does not add substantive new 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 tool loads reviews for a movie by slug, with a concrete example. It distinguishes itself from sibling tools like movie_details and search by focusing specifically on reviews.
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?
Provides clear guidance on pagination using the cursor and the optional review_type filter for critic-only reviews. It implies when to use this tool (when reviews are needed) but does not explicitly mention alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.searchAInspect
Search Rotten Tomatoes by title or name.
Returns matching movies, TV series, and celebrities with slugs, scores, poster URLs, release years, and top-billed cast where available.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of search results to return (1–50, default 20). | |
| query | Yes | Search query for movies, TV series, or celebrities. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | No | Echo of the search query. |
| movies | No | Search hits (movies, TV series, or celebrities). Each entry includes type, slug, title, url, posterUrl, score, and cast when available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses the type of results, the fields available, the 'where available' caveat, and the token cost, giving the agent a solid understanding of what to expect. It does not mention error cases or ordering, but for a simple read-only search this is adequate.
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 and front-loaded, with a clear purpose sentence, a summary of returned data, and a token cost note. All sentences add value and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only two parameters, one required, and an output schema is present, so return values are already specified. The description adds the search scope, return categories, and cost, making it complete for 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?
The schema already covers 100% of the parameters with detailed descriptions, so the baseline is 3. The description's phrase 'by title or name' adds slight context to the query parameter, but the schema already states 'Search query for movies, TV series, or celebrities,' so the description contributes minimal additional semantic 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 clearly states the tool's function: 'Search Rotten Tomatoes by title or name.' It specifies what is returned (movies, TV series, celebrities) and includes key fields (slugs, scores, poster URLs), distinguishing it from sibling detail tools like movie_details or tv_show_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for discovery, especially since it returns slugs that could be used with other Rotten Tomatoes detail tools. However, it does not explicitly state when to use it versus alternatives or mention any exclusions, so the usage guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.tv_show_cast_and_crewAInspect
List cast and crew credits for a TV series by slug (for example breaking-bad).
Returns cast and crew members with names, roles, character names, and profile links where available.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| tv_show_slug | Yes | TV series slug (for example breaking-bad). |
Output Schema
| Name | Required | Description |
|---|---|---|
| cast | No | Cast and crew credits for the series. |
| slug | No | TV series slug. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses what is returned (cast/crew names, roles, character names, profile links) and even notes the token cost. It does not mention rate limits, errors, or read-only status, but for a simple list operation this is adequate.
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?
Three concise sentences, each adding value: purpose, return contents, and cost. Front-loaded with the main action and no redundant phrasing.
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 one-parameter tool with an output schema, the description fully covers purpose, usage, return contents, and cost. It is self-sufficient and doesn't require additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains 'tv_show_slug' with the same example (breaking-bad). The description adds no new parameter semantics 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 precisely states the action: 'List cast and crew credits for a TV series by slug'. It names the specific resource (TV series cast and crew) and distinguishes from sibling tools like movie_cast_and_crew by explicitly limiting to TV series.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this for TV series cast/crew by providing a slug. It doesn't explicitly mention alternatives or exclusions, but the TV-series qualifier makes the intended use evident. No 'when not to use' is stated, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.tv_show_detailsAInspect
Look up a TV series on Rotten Tomatoes by slug (for example breaking-bad).
Returns title, years on air, TV rating, season count, genres, description, poster and hero images, Tomatometer and Popcornmeter scores, and creator/cast highlights.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| tv_show_slug | Yes | TV series slug (for example breaking-bad). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | TV series slug. |
| year | No | Years on air (for example 2008 - 2013). |
| title | No | Series title. |
| tomatometer | No | Average Tomatometer score and metadata. |
| popcornmeter | No | Average Popcornmeter score and metadata. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the disclosure burden. It implies a read-only lookup via 'look up' and discloses a 'Cost = 5 tokens' behavioral trait. However, it does not mention potential error cases (e.g., invalid slug), authentication requirements, or rate limits, leaving some behavioral aspects implicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, followed by a concise list of return data and a cost note. Every sentence provides useful information without redundancy or fluff. It is highly efficient for agent consumption.
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 complete for a simple lookup tool: it states the input (slug), the output fields, and the cost. An output schema exists, so return values are already documented. It could be enriched by mentioning that search can be used to find slugs, but this is a minor omission given the tool's simplicity.
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 already provides a description for tv_show_slug with an example (breaking-bad). The tool description repeats the slug example but does not add additional meaning, such as how to obtain a slug (e.g., via search) or any format constraints beyond what the schema states. Schema coverage is 100%, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Look up a TV series on Rotten Tomatoes by slug' with a concrete example, clearly identifying the operation and resource. It distinguishes from sibling tools like movie_details and tv_show_cast_and_crew by focusing on overall TV details. The verb 'look up' and resource naming are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use: whenever a user needs comprehensive TV series details (years, ratings, genres, scores, etc.) from Rotten Tomatoes. It does not explicitly mention alternatives or exclusions, such as using rotten-tomatoes.tv_show_cast_and_crew for full cast information, but the scope is well understood from the listed return fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.tv_show_episodeAInspect
Load a single episode by TV series slug (for example breaking-bad), season number, and episode number.
Returns episode title, air date, description, and episode Tomatometer score when available.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| tv_show_slug | Yes | TV series slug (for example breaking-bad). | |
| season_number | Yes | Season number as one or two digits (for example 1 or 01). | |
| episode_number | Yes | Episode number as one or two digits (for example 1 or 01). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | TV series slug. |
| title | No | Episode title. |
| season | No | Season number. |
| episode | No | Episode number. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return payload (episode title, air date, description, Tomatometer score when available) and the cost (5 tokens). It also notes the 'when available' caveat, which is useful. It doesn't discuss error handling or rate limits, but for a read-only load tool this is adequate.
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: three short sentences that front-load the action. Every sentence adds useful information: what the tool loads, what it returns, and its cost. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple, well-scoped tool with a complete input schema and an output schema (per context signals). The description covers the core functionality and return fields. It doesn't discuss edge cases or comparisons with sibling tools, but for a single-episode lookup, it is sufficiently 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 already provides 100% coverage with descriptions for all three parameters, including an example slug. The description recaps the parameters but adds minimal extra meaning beyond what the schema provides. Per the baseline rule, 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool loads a single episode, using a specific TV series slug, season number, and episode number. It uses a specific verb ('Load') and resource ('single episode'), and its specificity distinguishes it from sibling tools like tv_show_season or tv_show_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you need a specific episode's data by series, season, and episode number. It does not explicitly name alternatives or exclusions, but the context is clear. The absence of alternative guidance keeps it from a 5, but it is sufficient for a simple lookup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.tv_show_seasonAInspect
Load season-level details for a TV series by slug (for example breaking-bad) and season number.
Returns season title, episode list summaries, and season Tomatometer scores when available.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| tv_show_slug | Yes | TV series slug (for example breaking-bad). | |
| season_number | Yes | Season number as one or two digits (for example 1 or 01). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | TV series slug. |
| season | No | Season identifier. |
| episodes | No | Episodes in the season when listed. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It discloses the return contents (season title, episode list summaries, Tomatometer scores when available) and the token cost, adding value beyond just 'load'. It implies a non-destructive read operation, though it does not explicitly state side-effect freedom or error behavior. Given the tool's simplicity, this is solid coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: the first sentence states the primary purpose, the second summarizes key return data, and the third notes the cost. No unnecessary fluff, and the most important information is 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 tool with only two parameters and no nested objects, the description is complete: it states the inputs, the type of data returned, and the cost. An output schema is present, so not explaining the full return structure is acceptable. The description is sufficient for an agent to select and call 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 description coverage is 100%, with both parameters already well-described in the input schema. The description adds minimal extra meaning beyond reinforcing the slug example and season format; it mostly restates what the schema provides. Baseline 3 is appropriate because the schema handles the heavy lifting and the description does not compensate beyond that.
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 'Load' and clearly identifies the resource (season-level details for a TV series) and inputs (slug and season number). It distinguishes from sibling tools like tv_show_details and tv_show_episode by explicitly focusing on season-level data, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use: when you need season-level details for a TV series, identified by slug and season number. It does not explicitly name alternatives or exclusions, but the season-level scope implicitly differentiates it from show, episode, and review tools. No when-not-to-use guidance is given, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotten-tomatoes.tv_show_season_reviewsAInspect
Load reviews for a TV season by series slug (for example breaking-bad) and season number.
Returns review quotes, sentiment, publication, critic details, and pageInfo for pagination. Use cursor from pageInfo.endCursor for the next page. Optionally set type to critic for critic reviews only.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of review pages to return (1–50, default 20). | |
| cursor | No | Pagination cursor from a previous response pageInfo.endCursor field. | |
| review_type | No | Review filter. Use critic for critic reviews; omit for the default set. | |
| tv_show_slug | Yes | TV series slug (for example breaking-bad). | |
| season_number | Yes | Season number as one or two digits (for example 1 or 01). |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | TV series slug. |
| season | No | Season number. |
| reviews | No | Review entries with quote, sentiment, critic, and publication. |
| pageInfo | No | Pagination metadata for review listings. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the return fields (quotes, sentiment, publication, critic details), pagination mechanics via pageInfo.endCursor, and cost. This is sufficient for a read-only load operation, though it omits rate limits or error 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 compact and front-loaded: the first sentence states the primary function, followed by return details, pagination, optional filter, and cost. Every sentence adds useful information without 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?
Given the presence of an output schema and comprehensive parameter schema, the description covers the essential behavioral aspects: what is returned, how to paginate, and the optional critic filter. It does not explain default limit behavior in text, but the schema already provides that, making this sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds semantic value by giving a concrete example for tv_show_slug, explaining how cursor pagination works, and clarifying the review_type filter. This goes beyond merely listing parameter names.
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 loads reviews for a TV season using a series slug and season number, with examples. It distinguishes itself from sibling tools like movie_reviews and tv_show_details by specifying season-level granularity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on input format (e.g., series slug like 'breaking-bad') and optionally restricting to critic reviews. It does not explicitly mention when to avoid this tool, but the use case is unambiguous enough for agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo.backlinksAInspect
Find backlinks pointing to a website URL.
Returns an overview (domain rating, URL rating, backlink counts, referring domains, dofollow breakdown) and a list of individual backlinks with anchor text, source and target URLs, domain rating, and redirect chains.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public website URL to check for backlinks. | |
| include_subdomains | No | When true (default), include backlinks to the domain and its subdomains. When false, analyze only the exact URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| overview | No | Aggregate backlink statistics for the target. |
| backlinks | No | Individual backlink records with anchor text and source URLs. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return structure and token cost, but it does not explicitly state that it is a read-only operation or explain error handling. The cost disclosure adds value, but more context could be given about 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?
The description is three sentences: purpose, return details, and cost. It is front-loaded with the main action, contains no redundancy, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides purpose, output structure, and cost, which is sufficient for a simple read-only tool with a well-covered schema. It lacks explicit sibling differentiation, but overall it is complete for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions for 'url' and 'include_subdomains'. The description does not add further meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Find backlinks pointing to a website URL' with a specific verb and resource, and details the return content (overview and individual backlinks). This distinctly differentiates it from sibling SEO tools like seo.basic_metrics and seo.url_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?
Usage is implied by the tool's name and clear purpose, but there is no explicit when-to-use guidance or mention of alternatives. It does not contrast with similar SEO tools or provide exclusions, so it falls short of a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo.basic_metricsAInspect
Get Ahrefs domain authority signals for a website URL.
Returns domainRating (0–100 Ahrefs authority score) and ahRank (global Ahrefs website rank). Useful for comparing site strength and prioritizing outreach or competitive research.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public website URL to analyze (for example https://example.com). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ahRank | No | Global website rank (lower is stronger). |
| domainRating | No | Domain authority score from 0 to 100. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the data source (Ahrefs), the exact outputs, and the token cost. For a simple read-only metrics tool, this is adequate transparency, though it could mention rate limits or authorization if relevant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences plus a cost note, with the primary action front-loaded. Every sentence adds value—what it does, what it returns, and when to use it—with no wasteful filler.
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 one-parameter tool with a rich output schema, the description fully covers the purpose, outputs, and use cases. The cost disclosure is an extra helpful detail. No major information gaps remain.
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 fully documents the single 'url' parameter with a clear description and example. The tool description adds general context but no additional parameter-level detail, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('Ahrefs domain authority signals for a website URL'), and concretely lists the returned fields (domainRating, ahRank). This clearly distinguishes it from sibling SEO tools like seo.backlinks or seo.keyword_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?
It states explicit use cases: 'comparing site strength and prioritizing outreach or competitive research.' While it doesn't mention when not to use the tool or name alternatives, the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo.country_codesAInspect
List country codes you can pass as country on seo.keyword_metrics.
Returns an array of 2-letter ISO country codes (for example us, gb, de).
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| country_codes | No | Supported ISO country codes for keyword metrics. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses the return type (array of 2-letter ISO codes) and the operational cost (0 tokens). It doesn't mention side effects, but for a list operation none are expected, and the description covers the essential behavioral facts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no fluff. It front-loads the primary purpose, then covers return format and cost, with each sentence earning 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?
For a zero-parameter list tool with an output schema, the description is complete. It explains what the tool returns, how to use it, and the cost implication. No gaps remain for this simple 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 zero parameters, so the baseline is 4. The description adds value beyond the schema by explaining the output format and providing examples, which is useful for an agent planning to use the returned codes.
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 lists country codes, specifying the exact use case: passing as the 'country' parameter to seo.keyword_metrics. The verb 'list' and resource 'country codes' are specific, and it distinguishes itself from sibling tools by tying directly to a related SEO tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the codes are for use with seo.keyword_metrics, providing clear context on when to invoke this tool. It doesn't mention alternatives, but none exist for this specific purpose, and it adds a practical note about zero token cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo.keyword_metricsAInspect
Get SEO metrics for a search keyword in a specific country market.
Returns keyword, searchVolume, clicks, cpc, difficulty, globalSearchVolume, and trafficPotential.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | 2-letter ISO country code for the target market (default us). Use seo.country_codes for supported values. | us |
| keyword | Yes | Search keyword or phrase to analyze. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cpc | No | Estimated cost per click in paid search. |
| clicks | No | Estimated monthly clicks from organic search. |
| keyword | No | Analyzed keyword. |
| difficulty | No | Keyword difficulty score (higher is harder to rank). |
| searchVolume | No | Estimated monthly search volume in the selected country. |
| trafficPotential | No | Estimated traffic potential if ranking well. |
| globalSearchVolume | No | Estimated global monthly search volume. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It adds cost (10 tokens) and lists return fields, but does not explicitly state that the operation is read-only or mention any side effects, rate limits, or error conditions. It provides some transparency but leaves room for more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences: purpose, return fields, and cost. Every sentence adds value, and the most important information is front-loaded. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema, the description covers the essential context: what it does, what it returns, and its cost. The schema already documents country code guidance via seo.country_codes. It is complete for practical selection and invocation, though it could mention any rate limits or the read-only nature explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces that the tool analyzes a keyword in a country market, matching the schema's parameter descriptions. However, it adds no extra detail 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 a specific verb ('Get') and resource ('SEO metrics for a search keyword') and explicitly scopes to 'a specific country market'. This clearly distinguishes it from sibling tools like seo.url_metrics (URL metrics) and seo.basic_metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the use case: obtaining SEO metrics for a keyword in a country market. It implies when to use it but does not explicitly mention alternatives or when not to use it. The context is unambiguous, but exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
seo.url_metricsAInspect
Get detailed Ahrefs SEO metrics for a specific URL.
Returns two sections:
page: backlinks, referring domains, estimated traffic, traffic value, organic keywords, URL rating, and word count on the page
domain: domain rating, rank, backlinks, referring domains, traffic, traffic value, and organic keywords
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public page URL to analyze. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | No | Metrics for the requested page URL. |
| domain | No | Metrics for the parent domain. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds a cost note ('Cost = 10 tokens') and describes the output structure transparently, but it doesn't explicitly state that the operation is read-only or has no side effects, though 'Get' implies this.
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 tightly written with no redundant words, uses a clear two-section breakdown, and the cost line is useful. Four sentences deliver high information density without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, output structure, and cost. Given the tool has only one parameter and an output schema exists, this is nearly complete; it omits only explicit usage alternatives and edge cases, but those don't impede initial 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% with the url parameter described as 'Public page URL to analyze.' The description adds little beyond that, merely referring to 'specific URL' without clarifying required format, protocol, or edge cases, so the 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 detailed Ahrefs SEO metrics for a specific URL' and lists the page and domain sections, making the tool's purpose unambiguous. However, it doesn't explicitly contrast with sibling SEO tools like seo.basic_metrics, so it stops short of a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you need comprehensive SEO metrics for a URL but doesn't provide explicit guidance on when to choose this over alternatives like seo.basic_metrics or seo.backlinks, nor does it state any exclusions. The usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.comment_repliesAInspect
List replies to a TikTok comment. Requires video_id and comment_id. Pass cursor from a previous response to fetch the next page.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of replies to return (max 40). | |
| cursor | No | Pagination cursor from a previous response. | |
| video_id | Yes | TikTok video id. | |
| comment_id | Yes | TikTok comment id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that this is a listing operation, spells out required inputs, mentions pagination via cursor, and adds the non-obvious cost of 2 tokens. It could also state that it's read-only, but 'List' already implies that.
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?
Three short sentences, each directly informative: purpose, required params, pagination, and cost. No wasted words, properly 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 list tool with full schema coverage and an output schema, the description covers all essential aspects: what it does, required inputs, pagination behavior, and cost. There are no notable gaps given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema documents all parameters. The description only repeats what the schema already says about cursor and required parameters, adding no new semantics or syntax details beyond the structured data.
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 ('List') and resource ('replies to a TikTok comment'), clearly distinguishing it from sibling tools like tiktok.video_comments. It also names the two required parameters, making the tool's scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it requires video_id and comment_id, and explains cursor-based pagination for fetching subsequent pages. However, it does not explicitly mention alternatives or when not to use the tool, so it misses the 'when-not/exclusions' part for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.download_musicAInspect
Download a TikTok music track so the user or agent can save and reuse it.
Provide either music_id or music_url, not both. The file is saved to account file storage. The response includes file_url for API users and download_code for agents to run vee3-get-file.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| music_id | No | TikTok music id. | |
| file_name | No | Optional account-relative storage path for the music file. If omitted, the file is stored under downloads/ with a generated name. | |
| music_url | No | TikTok music page URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | No | Suggested terminal command for downloading to a local path. |
| file_url | No | Signed download URL from account file storage. |
| file_name | No | Account-relative path where the file was stored. |
| expires_at | No | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). |
| download_id | No | Stable identifier for the reserved agent download session. |
| content_type | No | MIME type of the music file. |
| download_code | No | Short code to pass to the @vee3/cli `vee3-get-file` command. |
| retained_until | No | ISO 8601 timestamp when account storage retention expires. |
| file_size_bytes | No | Music file size in bytes. |
| install_command | No | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| troubleshooting | No | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
| tiktok_download_id | No | Unique TikTok download operation identifier, prefix td_. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosure. It reveals important behavioral traits: the file is saved to account storage, the response format includes file_url and download_code, and the cost is 10 tokens. This goes beyond a simple statement of purpose, though it doesn't cover potential errors or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the purpose, followed by parameter constraint, then output/cost details. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description need not detail return values, but it still mentions key outputs (file_url, download_code). It covers parameter constraints, side effects (file storage), and cost. It doesn't address when to prefer this over download_music_from_video, but the core context is sufficient for a download tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds critical param semantics not in the schema: 'Provide either music_id or music_url, not both.' This mutual exclusivity constraint is essential for correct invocation and is absent from the individual 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 clearly states the tool's function: 'Download a TikTok music track so the user or agent can save and reuse it.' The verb 'download' and resource 'TikTok music track' are specific, and the mention of accepting music_id or music_url distinguishes it from sibling tools like download_video and download_music_from_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: 'Provide either music_id or music_url, not both.' It also explains the outcome (file saved to account file storage, response contains file_url/download_code). However, it does not explicitly mention alternative tools or when not to use this tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.download_music_from_videoAInspect
Download music from a TikTok video so the user or agent can save and reuse it.
Provide either video_id or video_url, not both. The file is saved to account file storage. The response includes file_url for API users and download_code for agents to run vee3-get-file.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | No | TikTok video id. | |
| file_name | No | Optional account-relative storage path for the music file. If omitted, the file is stored under downloads/ with a generated name. | |
| video_url | No | TikTok video URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | No | Suggested terminal command for downloading to a local path. |
| file_url | No | Signed download URL from account file storage. |
| file_name | No | Account-relative path where the file was stored. |
| expires_at | No | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). |
| download_id | No | Stable identifier for the reserved agent download session. |
| content_type | No | MIME type of the music file. |
| download_code | No | Short code to pass to the @vee3/cli `vee3-get-file` command. |
| retained_until | No | ISO 8601 timestamp when account storage retention expires. |
| file_size_bytes | No | Music file size in bytes. |
| install_command | No | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| troubleshooting | No | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
| tiktok_download_id | No | Unique TikTok download operation identifier, prefix td_. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the file is saved to account file storage, the response includes file_url for API users and download_code for agents, and the cost is 10 tokens. It does not mention failure modes or auth requirements, but for a download tool this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three short sentences that cover purpose, parameter constraint, storage behavior, response format, and cost. Every sentence earns its place with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 optional parameters, an output schema, and is relatively simple. The description covers purpose, input constraints, side effects, response format, and cost. It lacks explicit comparison to siblings, but overall it is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description adds meaningful semantic value by enforcing mutual exclusivity ('Provide either video_id or video_url, not both') which is not encoded in the schema. This goes beyond simple restatement.
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 'Download music from a TikTok video', using a specific verb and resource. It distinguishes itself from sibling tools like tiktok.download_video (which downloads the video) and tiktok.download_music (which likely downloads by music ID) by explicitly scoping to music from a video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear input usage guidance ('Provide either video_id or video_url, not both') and states the intent ('so the user or agent can save and reuse it'). However, it does not explicitly name alternatives or contrast with download_music/download_video, though the purpose makes the use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.download_videoAInspect
Download a TikTok video so the user or agent can save and reuse it.
Provide either video_id or video_url, not both. The file is saved to account file storage. The response includes file_url for API users and download_code for agents to run vee3-get-file.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| quality | No | Video quality to download. 'standard' is default quality; 'hd' is high definition. Only one selected quality is downloaded. | standard |
| video_id | No | TikTok video id. | |
| file_name | No | Optional account-relative storage path for the video. If omitted, the file is stored under downloads/ with a generated name. | |
| video_url | No | TikTok video URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| command | No | Suggested terminal command for downloading to a local path. |
| quality | No | Echo of the requested video quality (standard or hd). |
| file_url | No | Signed download URL from account file storage. |
| file_name | No | Account-relative path where the file was stored. |
| expires_at | No | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). |
| download_id | No | Stable identifier for the reserved agent download session. |
| content_type | No | MIME type of the downloaded file. |
| download_code | No | Short code to pass to the @vee3/cli `vee3-get-file` command. |
| retained_until | No | ISO 8601 timestamp when account storage retention expires. |
| file_size_bytes | No | Downloaded file size in bytes. |
| install_command | No | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| troubleshooting | No | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
| tiktok_download_id | No | Unique TikTok download operation identifier, prefix td_. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: the file is saved to account file storage, the response includes file_url and download_code, and the cost is 10 tokens. It also notes the either/or constraint. This provides meaningful behavioral transparency beyond the tool name, though it omits details like error handling or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with four sentences covering purpose, parameter usage, storage, and cost. Every sentence adds useful information with no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a download tool with an existing output schema, the description provides sufficient context: it explains storage behavior, response fields, and the either-or requirement. It does not detail error cases or prerequisites, but these are minor given the schema and output schema richness. Sibling tiktok tools help disambiguate scope.
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 four parameters. The description adds the important mutual-exclusivity rule for video_id and video_url, which is not in the schema. It also explains the purpose of the output (file_url/download_code) relative to how the downloaded file is used.
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 'Download a TikTok video so the user or agent can save and reuse it' with a specific verb and resource, and the purpose of saving/reuse. It distinguishes itself from sibling tools like tiktok.download_music by focusing on video downloads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: download for saving/reuse, and explicitly instructs 'Provide either video_id or video_url, not both,' which is a strong usage guideline. However, it does not mention alternatives or when not to use it, such as for music downloads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.for_you_feedBInspect
Fetch for-you feed videos for a region. Requires region.
Cost = 4 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of videos to return (max 20). | |
| region | Yes | Region code (for example us, jp, kr). |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | For-you feed videos from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of behavioral disclosure. It only adds 'Cost = 4 tokens' and 'Requires region', which are about usage parameters rather than behavioral traits like response format, pagination, or rate limits. The description lacks transparency about what the tool returns or how it behaves.
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 concise at two sentences and front-loads the primary purpose. However, the second sentence mixes in cost information that is not a core part of the tool's function, and 'Requires region' is somewhat redundant with the schema. Slightly trimmed wording would earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, output schema present), the description covers the essential purpose and a key requirement. It does not explain the notion of 'for-you feed' or regional nuances, but the output schema likely covers return values. The description is mostly complete for a straightforward fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no new meaning beyond the schema; 'Requires region' is redundant with the required field, and 'Cost = 4 tokens' is unrelated to parameter semantics. No additional context is provided for the 'count' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Fetch'), a resource ('for-you feed videos'), and a scope ('for a region'). It distinguishes itself from sibling tools like tiktok.search_videos or tiktok.user_videos by focusing on the regional for-you feed.
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 mentions 'Requires region' but does not provide any guidance on when to use this tool versus alternatives, nor does it explain any exclusions or prerequisites beyond the parameter requirement. No alternative tools are referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.music_detailsAInspect
Look up metadata for a TikTok music track. Provide either music_id or music_url, not both.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| music_id | No | TikTok music id. | |
| music_url | No | TikTok music page URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It communicates the mutual-exclusion constraint and the token cost, which is helpful. However, it does not describe any additional behavior such as error conditions, rate limits, or the exact nature of returned metadata, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core purpose in the first sentence and a clear usage constraint in the second. The cost line is additional but short. Every sentence serves a purpose, with no 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?
Given the simple parameter set, the presence of an output schema, and the low complexity of the tool, the description is adequately complete. It covers the primary behavior and the crucial input constraint. It could be slightly richer by naming alternatives, but that is not necessary for basic 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?
The input schema already describes each parameter with 100% coverage, providing a baseline of 3. The description adds valuable semantic context by stating that music_id and music_url are mutually exclusive alternatives, which is not captured in the schema itself.
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 starts with a clear verb-resource pair: 'Look up metadata for a TikTok music track.' This specifies exactly what the tool does and distinguishes it from sibling tools like tiktok.download_music or tiktok.music_videos, both of which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit operational guidance: 'Provide either music_id or music_url, not both.' This clarifies the key usage constraint. It does not explicitly name alternative tools or state when not to use this tool, but the context is clear enough for a metadata lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.music_videosAInspect
List videos that use a TikTok music track. Requires music_id. Pass cursor from a previous response to fetch the next page.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of items to return (max 30). | |
| cursor | No | Pagination cursor from a previous response. | |
| music_id | Yes | TikTok music id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It mentions pagination behavior and the cost in tokens, which is helpful, but does not discuss rate limits, authentication, or return format specifics. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: three sentences, front-loaded with the main purpose, followed by essential usage details and cost. Every sentence earns its place, with no redundancy or filler.
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 and the presence of an output schema, the description covers the key aspects: purpose, required parameter, and pagination. It lacks caveats about edge cases or rate limits, but these are not critical for a well-defined list endpoint. Overall, it is complete enough for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents parameters. The description adds minimal value beyond noting 'Requires music_id' and 'Pass cursor from a previous response,' which mostly restates schema information. 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 tool's function with a specific verb and resource: 'List videos that use a TikTok music track.' This distinguishes it from siblings like tiktok.music_details (which retrieves music metadata) and tiktok.search_videos (general search), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on usage: requires music_id and explains pagination via cursor. However, it does not explicitly mention alternatives or when not to use this tool, so it falls short of a 5 but is better than vague guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.search_photosAInspect
Search TikTok photo posts by keyword. Requires query. Pass cursor from a previous response to fetch the next page.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of items to return (max 30). | |
| query | Yes | Search keywords. | |
| cursor | No | Pagination cursor from a previous response. | |
| region | No | Region code (for example us, jp, kr). |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral burden. It discloses pagination behavior ('Pass cursor from a previous response to fetch the next page') and cost ('Cost = 5 tokens'), but does not mention authentication, side effects, or explicitly confirm read-only 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?
Description is three short sentences: purpose, usage requirement, and cost. Every sentence adds value and key facts are front-loaded with no filler.
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?
Output schema is present, so return values are covered elsewhere. The description covers required query, pagination, and cost, making it sufficient for an agent to invoke the tool and page through results, though it omits count/region customization (already in schema).
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 query, count, cursor, and region are already documented. The description adds 'Requires query' and cursor usage, but these mostly reinforce the schema rather than adding new 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?
Description states exactly 'Search TikTok photo posts by keyword', naming the specific action, platform, and content type. This clearly distinguishes it from siblings like tiktok.search_videos and tiktok.search_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?
Description gives clear context: searching photo posts by keyword, with query required and pagination via cursor. It does not explicitly name alternatives or exclusions, but the specific content type makes the appropriate use obvious next to video/user search siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.search_usersAInspect
Search TikTok users by keyword. Requires query. Pass cursor from a previous response to fetch the next page.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of items to return (max 30). | |
| query | Yes | Search keywords. | |
| cursor | No | Pagination cursor from a previous response. | |
| follower_count | No | Follower count filter: 0-4. | 0 |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
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 does mention pagination ('Pass cursor from a previous response to fetch the next page') and token cost, which adds value. But it doesn't discuss rate limits, authentication, or the meaning of the follower_count filter beyond the schema. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences plus a cost line. It front-loads the core purpose and includes only essential operational details (query requirement and pagination). 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?
The presence of an output schema covers return values, and the description effectively communicates the search intent and pagination. However, the follower_count parameter is ambiguous ('0-4' is unclear as to whether it's a range, code, or filter tier), which slightly detracts from completeness. Overall, it's solid for a simple search tool with a well-described schema.
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% for all four parameters, with each having a description in the input schema. The description itself only repeats query and cursor without adding new details. Per the baseline for high schema coverage, this scores a 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 states a specific action and resource: 'Search TikTok users by keyword.' This clearly distinguishes it from sibling tools like search_videos and search_photos, which target different content types. The scope (by keyword) is immediately 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?
The description provides clear usage context: it requires a query and explains pagination via cursor. This gives an agent enough to invoke the tool correctly. However, it does not explicitly mention alternatives or when not to use this tool, so it's a step below the highest tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.search_videosAInspect
Search TikTok videos by keyword. Requires query. Pass cursor from a previous response to fetch the next page.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of items to return (max 30). | |
| query | Yes | Search keywords. | |
| cursor | No | Pagination cursor from a previous response. | |
| region | No | Region code (for example us, jp, kr). | |
| sort_by | No | Sort order: relevance, like_count, or date_posted. | relevance |
| publish_time | No | Publish time filter: 0, 1, 7, 30, 90, or 180. |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral information. It discloses pagination behavior and token cost, which is helpful. However, it does not explicitly state that this is a read-only operation, nor does it detail rate limits or other side effects. Given the search nature, a 3 is appropriate for partial behavioral 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 four short sentences, front-loaded with the core purpose. Each sentence adds a distinct piece of information: purpose, required parameter, pagination, and cost. There is no wasted text.
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 that an output schema exists and all parameters are documented in the schema, the description provides sufficient operational detail: keyword search, required query, pagination, and cost. It lacks explicit guidance on when not to use it, but the simplicity of the tool and schema coverage make it reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description only repeats that query is required and cursor is for pagination, which matches the schema. It adds minimal extra meaning beyond the schema, earning the baseline 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 uses a specific verb and resource: 'Search TikTok videos by keyword.' This clearly distinguishes it from sibling tools like tiktok.search_photos and tiktok.search_users, and the 'by keyword' qualifier specifies the search mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for usage: it requires a query and explains how to paginate using a cursor. It does not explicitly exclude alternatives, but the focus on keyword search implicitly differentiates it from related tools like tiktok.for_you_feed. The cost disclosure is a useful practical guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.user_followersAInspect
List followers for a TikTok user. Requires user_id. Pass cursor from a previous response to fetch the next page.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of items to return (max 200). | |
| cursor | No | Pagination cursor from a previous response. | |
| user_id | Yes | TikTok numeric user id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It adds useful context about pagination and the token cost, but it does not mention rate limits, authentication requirements, or the structure of the response (though an output schema exists).
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 exceptionally concise: two sentences plus a cost note. It front-loads the core purpose in the first sentence and includes only necessary information about requirements and pagination.
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 list tool with an output schema, the description provides essential guidance (required param and pagination) plus cost. It lacks explicit notes about authorization or error handling, but these are not critical for the basic use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description reinforces the need for user_id and the pagination role of cursor, but does not add substantially new meaning beyond the schema 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 clearly states the action ('List followers') and the resource ('a TikTok user'), using a specific verb and noun. It distinguishes itself from sibling tools like tiktok.user_following by explicitly mentioning 'followers' rather than 'following'.
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 states that user_id is required and explains how to paginate using cursor from a previous response. It implies the tool is for retrieving follower lists but does not explicitly contrast with alternatives like user_following or provide conditions for when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.user_followingAInspect
List accounts a TikTok user follows. Requires user_id. Pass cursor from a previous response to fetch the next page.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of items to return (max 200). | |
| cursor | No | Pagination cursor from a previous response. | |
| user_id | Yes | TikTok numeric user id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses pagination behavior and cost, but does not mention rate limits, auth requirements, or what 'accounts' includes in the response. It's adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences plus a cost line. Front-loaded with the core purpose, and every sentence serves a purpose: what, required param, pagination, cost. 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?
The tool is simple, has an output schema (so return values are covered), and the description covers the essential usage details (pagination, cost). It could mention rate limits or clarifying the 'accounts' type, but it's reasonably complete for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters. The description adds 'Requires user_id' and reiterates cursor usage, which adds marginal value but does not go beyond the schema—hence the baseline score 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 states a specific verb and resource: 'List accounts a TikTok user follows.' This clearly distinguishes it from sibling tools like user_followers (which lists followers) and user_info (which gets a user's own info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: requires user_id and explains pagination via cursor. It does not explicitly name alternatives, but the phrase 'a user follows' makes the use case unambiguous compared to sibling tools like tiktok.user_followers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.user_infoAInspect
Look up a TikTok user profile. Provide either user_id or unique_id, not both.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | No | TikTok numeric user id. | |
| unique_id | No | TikTok unique id (username). |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses the cost (2 tokens) and the mutual exclusivity of parameters. However, it doesn't specify what happens if both or neither parameter is provided, or error behavior for invalid IDs. This is a simple read operation, so the disclosure is adequate but not rich, hence a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that immediately state the purpose and the key parameter constraint. It is front-loaded and contains zero wasted words. Every sentence 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?
For a low-complexity lookup tool with an output schema and fully described parameters, the description is largely complete. It includes the essential context (profile lookup, parameter constraint, cost). It doesn't cover return values, but the output schema handles that. A small gap is lack of error case behavior, but this doesn't significantly impact completeness for this simple 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 schema already fully describes both parameters (user_id and unique_id) with descriptions. The description adds meaningful semantics beyond the schema by introducing the mutual exclusion constraint ('not both'), which is not captured in the schema. This raises the baseline from 3 to 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 function: 'Look up a TikTok user profile.' This is a specific action with a clear resource, and it distinguishes this tool from sibling TikTok tools (e.g., user_videos, user_followers) by focusing on profile data. The action verb 'look up' and resource 'profile' are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool is for profile lookups and includes the important usage constraint 'Provide either user_id or unique_id, not both.' This implies when to use it (for profile info) and provides parameter-level guidance. It doesn't explicitly mention alternatives or when-not-to-use, but the context is clear enough for an agent to differentiate from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.user_repostsAInspect
List reposts for a TikTok user. Provide either user_id or unique_id, not both. Pass cursor from a previous response to fetch the next page.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of items to return (max 30). | |
| cursor | No | Pagination cursor from a previous response. | |
| user_id | No | TikTok numeric user id. | |
| unique_id | No | TikTok unique id (username). |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses pagination behavior via cursor and token cost ('Cost = 3 tokens'), which is useful. However, it does not mention authentication requirements, rate limits, or any other safety-relevant traits beyond what is already obvious from the read-only nature of listing.
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 highly concise: two sentences and a cost note. Every sentence adds value—purpose, parameter constraints, and pagination—with no redundant or extraneous 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?
Given the tool's simplicity, the presence of an output schema, and full schema parameter descriptions, the description covers the essential usage points: resource, identifier requirements, and pagination. It could arguably mention the count parameter's behavior or potential errors, but those are adequately covered by the schema and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema by specifying the exclusive-or relationship between user_id and unique_id, and by explaining the role of cursor for pagination. This enhances understanding of how the parameters relate.
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 opens with 'List reposts for a TikTok user,' which uses a specific verb ('List') and resource ('reposts'), clearly distinguishing it from sibling tools like tiktok.user_videos or tiktok.user_followers. It unambiguously states the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear parameter usage guidance: 'Provide either user_id or unique_id, not both' and 'Pass cursor from a previous response to fetch the next page.' It provides practical context for invocation but does not explicitly mention alternatives or when not to use this tool relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.user_videosAInspect
List videos posted by a TikTok user. Provide either user_id or unique_id, not both. Set latest to true for newest posts or false for top posts. Pass cursor from a previous response to fetch the next page.
Cost = 3 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of items to return (max 30). | |
| cursor | No | Pagination cursor from a previous response. | |
| latest | No | When true, return latest videos. When false, return top videos. | |
| user_id | No | TikTok numeric user id. | |
| unique_id | No | TikTok unique id (username). |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It reveals key behaviors: mutual exclusivity of user_id/unique_id, the latest/top mode switch, pagination via cursor, and the cost of 3 tokens. It does not mention rate limits or authorization requirements, but for a read-only list operation, it is fairly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a clear opening sentence, followed by three concise usage instructions, and a cost note. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description adequately covers the essential usage: how to specify the user, choose between latest/top, and paginate. It omits mention of the count parameter, but that is documented in the schema, and the main usage paths are all covered.
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 each parameter described, so the baseline is 3. The description adds value by explicitly stating 'not both' for user_id and unique_id, which is a constraint not captured in the schema. The rest of the parameter hints (latest, cursor) largely repeat schema descriptions but are still helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function as 'List videos posted by a TikTok user' with a specific verb and resource. It distinguishes from sibling tools like tiktok.user_followers, tiktok.user_info, and tiktok.user_reposts by focusing specifically on the user's video feed.
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?
Provides clear usage context: instructs to provide either user_id or unique_id (not both), explains latest vs. top posts, and mentions cursor for pagination. However, it does not explicitly mention alternative tools or when not to use this tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.video_commentsAInspect
List comments on a TikTok video. Provide either video_id or video_url, not both. Pass cursor from a previous response to fetch the next page.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of comments to return (max 50). | |
| cursor | No | Pagination cursor from a previous response. | |
| video_id | No | TikTok video id. | |
| video_url | No | TikTok video URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses cost (2 tokens) and pagination behavior, but does not mention potential errors, default behavior when no identifier is given, or auth requirements. Missing edge-case context makes it not fully transparent.
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 and well-structured: two sentences plus cost, all front-loaded. Every sentence adds value—purpose, critical parameter constraint, and pagination note—with 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?
The output schema covers return format, and the description provides essential usage details (one-of constraint, pagination, cost). It doesn't explain edge cases like what happens if both or neither identifiers are provided, but overall it is sufficient for 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%, and the description adds important semantics beyond it: mutual exclusivity of video_id and video_url, and the meaning of cursor from a previous response. This compensates for the schema's minimal per-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 clearly states the tool lists comments on a TikTok video, using specific verbs and resource. It does not explicitly differentiate from sibling tools like tiktok.comment_replies, but the name and description make the distinction apparent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on parameter usage: 'Provide either video_id or video_url, not both' and pagination via cursor. It does not mention alternatives or exclusions relative to other TikTok tools, but gives clear operational context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tiktok.video_detailsAInspect
Look up metadata for a TikTok video. Provide either video_id or video_url, not both.
Cost = 1 token.
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | No | TikTok video id. | |
| video_url | No | TikTok video URL. |
Output Schema
| Name | Required | Description |
|---|---|---|
| msg | No | Upstream status message. |
| code | No | Upstream status code (0 = success). |
| data | No | Capability-specific payload from the upstream provider. |
| processed_time | No | Upstream processing time in seconds. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It adds behavioral context by stating 'Cost = 1 token' and the either/or constraint, but does not mention read-only status, error conditions, or what happens if both parameters are provided. This is partially transparent but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with purpose, then constraints, then cost. Every sentence provides value with no filler. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with an output schema present, so return values are covered. The description covers the essential input constraint (either/or) and cost, which is sufficient for a metadata lookup tool. It lacks nothing critical, though it could mention potential errors or rate limits, but that is beyond the minimum for this complexity.
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 video_id and video_url, so the baseline is 3. The description adds crucial semantics by explicitly stating 'not both,' which is not enforced by the schema. This goes beyond the schema's anyOf-null structure and clarifies the exclusivity requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Look up') and resource ('metadata for a TikTok video'). It distinguishes itself from sibling tools like tiktok.download_video and tiktok.video_comments by focusing on metadata retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Provide either video_id or video_url, not both.' This clarifies the input constraint, but it does not mention when to choose this over alternatives (e.g., no other tool retrieves video metadata, so no alternative is needed). It gives clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
website-screenshots.captureAInspect
Capture a screenshot of a public website so the user or agent can inspect its layout, content, and UI.
The image is saved to account file storage. The response includes screenshot_url for API users and download_code for agents to run vee3-get-file.
Cost = 20 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http or https URL to capture. Private, localhost, and internal network addresses are blocked. | |
| format | No | Output image format. 'png' preserves lossless quality (default). 'jpeg' produces smaller files. | png |
| quality | No | JPEG compression quality from 0 (smallest) to 100 (best). Only applies when format is 'jpeg'; ignored for PNG. | |
| dark_mode | No | When true, emulate prefers-color-scheme: dark so sites with dark-mode CSS render in dark mode. Has no effect on sites without dark-mode styling. | |
| file_name | No | Optional account-relative storage path for the screenshot. If omitted, the file is stored under downloads/ with a generated name. | |
| full_page | No | Capture the full scrollable page. When false, only the viewport area is captured. | |
| wait_until | No | When to take the screenshot: 'load' (load event), 'domcontentloaded' (DOM ready, faster; use with post_load_wait to let the page settle), or 'networkidle' (no network activity for 500ms; can time out on pages with ongoing requests). | domcontentloaded |
| post_load_wait | No | Extra seconds to wait after wait_until before capturing. Only valid when wait_until is domcontentloaded. Use this instead of networkidle when pages keep network activity. | |
| viewport_width | No | Browser viewport width in pixels. | |
| timeout_seconds | No | Maximum seconds to wait for the page to load before failing. | |
| viewport_height | No | Browser viewport height in pixels. | |
| block_cookie_banners | No | When true, attempt to dismiss common cookie consent banners and overlays before capture. Best-effort - custom or first-party banners may remain. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | Echo of requested URL. |
| format | No | Echo of the requested output format (png or jpeg). |
| status | No | Always "completed" for synchronous capture. |
| command | No | Suggested terminal command for downloading to a local path. |
| quality | No | Echo of JPEG quality used when format is jpeg. |
| dark_mode | No | Echo of whether dark color scheme emulation was used. |
| file_name | No | Account-relative path where the screenshot was stored. |
| full_page | No | Whether full page was captured. |
| created_at | No | ISO 8601 timestamp. |
| expires_at | No | ISO 8601 timestamp when the download code can no longer be resolved (60 minutes after reserve). |
| download_id | No | Stable identifier for the reserved download. |
| download_code | No | Short code to pass to the @vee3/cli `vee3-get-file` command. |
| screenshot_id | No | Unique identifier, prefix ss_. |
| retained_until | No | ISO 8601 timestamp when account storage retention expires. |
| screenshot_url | No | Signed download URL from account file storage. |
| viewport_width | No | Actual viewport width used. |
| file_size_bytes | No | Image file size in bytes. |
| install_command | No | One-time command to install the Vee3 CLI (`npm install -g @vee3/cli`). On networks that inspect HTTPS, install may require Node 22.15+ with NODE_OPTIONS=--use-system-ca. |
| troubleshooting | No | What to do if installation or downloading fails: re-read this tool's description via meta-tools.describe for setup and troubleshooting steps. |
| viewport_height | No | Actual viewport height used. |
| block_cookie_banners | No | Echo of whether cookie banner dismissal was attempted. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure. It reveals that images are saved to account file storage, the response includes screenshot_url and download_code for retrieval, and the cost is 20 tokens. It also states the restriction to public websites. These are significant behavioral details, though it could mention potential failure modes or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, each providing distinct information: the core purpose, storage/response details, and cost. It is front-loaded with the primary action and avoids unnecessary elaboration or repetition of schema 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?
Given the tool's complexity (12 parameters, output schema present), the description covers the essential non-schema aspects: purpose, storage, response fields, and cost. It does not need to explain return values because an output schema exists. It could mention more behavioral limitations, but the schema covers parameter constraints, making this description sufficiently 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 across all 12 parameters, with detailed explanations for each (e.g., wait_until, post_load_wait, format, etc.). The tool description itself does not add parameter-specific meaning, but since the schema fully documents parameters, 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 tool's purpose: 'Capture a screenshot of a public website so the user or agent can inspect its layout, content, and UI.' This is a specific verb and resource, and it distinguishes the tool from other siblings that handle data retrieval or management rather than visual inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('so the user or agent can inspect its layout, content, and UI') and implies that it is for public websites only. Though it does not explicitly mention alternatives or exclusions, there are no direct sibling screenshot tools, making this guidance adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.connected_accountsAInspect
List X (Twitter) accounts connected to the authenticated Vee3 account for write capabilities.
Returns user_id, user_name, display name, avatar URL, and whether each account is the default. Use user_id or user_name on future write calls, or omit both to use the default account.
If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before write capabilities work. Agents cannot complete OAuth; ask the user to connect, then call this tool again.
Cost = 0 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| accounts | No | Active connected X accounts for the authenticated Vee3 account. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It honestly states that accounts are for write capabilities, returns specific fields, explains the default account behavior, notes the empty-account scenario, and explicitly says agents cannot complete OAuth. It even mentions cost (0 tokens), offering unusually transparent behavioral 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 concise and well-structured: the main purpose is front-loaded, with subsequent sentences covering return values, usage in future calls, the empty-case fallback, and a practical note about OAuth. Every sentence adds valuable information with no filler.
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 list tool, this description is complete. It covers what the tool does, what it returns, how to use the results, what to do when no accounts are connected, and even the URL for the user to connect. The presence of an output schema covers return value details, so the description only enhances the 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?
The tool has zero parameters, so the baseline is 4. The description adds value beyond the empty schema by explaining how to use the output (user_id/user_name) on future write calls, which indirectly clarifies the tool's role in the broader write workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: listing X (Twitter) accounts connected to the authenticated Vee3 account for write capabilities. This specific verb+resource+scope distinguishes it from sibling tools that handle posts, searches, or user info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool—before write calls—and explains how to use the returned user_id or user_name. It also instructs agents to ask the user to connect an account when none are available, though it does not explicitly state when not to use this tool or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.create_bookmarkAInspect
Bookmark a post for a connected X account.
Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.
Cost = 30 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Numeric id of the post to bookmark. | |
| user_id | No | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| user_name | No | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user_id | No | Numeric X user id of the connected account. |
| user_name | No | X handle of the connected account. |
| bookmarked | No | Whether the post is bookmarked after this request. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the transparency burden. It discloses the cost (30 tokens) and a prerequisite (connected_accounts), but does not discuss side effects, idempotency, or permissions. The 'Bookmark' action implies a mutation, and the description adds some operational context but not deep behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the purpose, and includes both usage guidance and cost. 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 covers the operation, prerequisite, account selection, and cost. An output schema exists, so return values are covered elsewhere. It is sufficient for a simple create action, though it could mention edge cases like invalid post IDs.
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 already documents all three parameters with descriptions, including the mutual exclusivity of user_id and user_name. The description reinforces this guidance but adds little beyond what the schema provides. Baseline 3 is appropriate for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Bookmark a post for a connected X account.' This uses a specific verb and resource, and the sibling tools (delete_bookmark, get_bookmarks) make it distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call x-twitter.connected_accounts first and explains how to select the target account (user_id, user_name, or default). While it doesn't mention alternatives or when not to use, the context is clear for a simple bookmarking operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.create_postAInspect
Publish a post to a connected X account via the official X API (POST /2/tweets).
Call x-twitter.connected_accounts first. If accounts is empty, the user must connect an X account at https://vee3.io/dashboard/connections before posting. Agents cannot complete OAuth; ask the user to connect, then call x-twitter.connected_accounts again.
Pass user_id or user_name to target a specific account, not both. Omit both to use the default connected account.
At least one of text, poll, media, or card_uri is required.
Supports text, polls, media attachments, reply settings, paid partnership disclosure, AI-generated labels, super-follower exclusivity, nullcast posts, cards, communities, and direct-message deep links.
To attach media, upload files with files.upload_file and the @vee3/upload CLI, then pass file_name values returned by files.list_uploaded_files in the media array (up to 4 files). Only files listed by list_uploaded_files can be attached. poll, media, and card_uri are mutually exclusive in the X API.
Token pricing: 60 tokens base for text posts. Posts whose text includes a URL are billed 1000 tokens base instead. Attaching only media (an image or video) without a URL in the text does not trigger the URL rate. Each attached image adds 50 tokens. Each attached video adds 150 tokens plus 50 tokens per 5 MB of video size.
X rate limit: 100 POST /2/tweets requests per connected user per 15 minutes. Wait and retry if posting is temporarily blocked.
If X authorization fails, reconnect the account in the Vee3 dashboard. Read the error message when X rejects a post and adjust the request.
| Name | Required | Description | Default |
|---|---|---|---|
| poll | No | Poll object with options (2-4 strings) and duration_minutes (5-10080). | |
| text | No | Post text content. At least one of text, poll, media, or card_uri is required. | |
| media | No | File names from files.list_uploaded_files to attach (up to 4). Upload with files.upload_file and @vee3/upload first, then list_uploaded_files to get the stored file_name values. | |
| user_id | No | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| card_uri | No | Card URI for the post. Mutually exclusive with poll and media. | |
| nullcast | No | Whether the post is promoted-only and hidden from the public timeline. | |
| user_name | No | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| community_id | No | Community id when posting to an X community. | |
| made_with_ai | No | Whether the post contains AI-generated media. | |
| reply_settings | No | Who can reply to the post. | |
| paid_partnership | No | Whether the post is a paid partnership. | |
| share_with_followers | No | Whether to share a community post with followers too. | |
| direct_message_deep_link | No | Deep link that moves the conversation into Direct Messages. | |
| for_super_followers_only | No | Whether the post is exclusive to super followers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | No | Post text returned by the X API. |
| user_id | No | Numeric X user id of the connected account that published the post. |
| tweet_id | No | Numeric id of the created or edited post. |
| user_name | No | X handle of the connected account that published the post. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses critical behaviors: OAuth cannot be completed by agents and requires user action, token pricing (60 base, 1000 with URL, media surcharges), X rate limits (100 posts per 15 minutes), and error handling/reconnection guidance. This goes far beyond the schema and gives the agent important operational 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 long but every sentence contributes necessary operational detail: prerequisites, account targeting, required fields, feature list, media upload workflow, pricing, rate limits, and error recovery. It is well-structured and front-loads the primary purpose and first call to make.
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 (14 optional params, numerous features, media handling), the description covers all critical aspects: preconditions, account selection, content requirements, upload process, pricing, rate limits, and failure handling. The presence of an output schema covers return values, so no additional return description 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?
The schema already provides 100% description coverage for all 14 parameters. The description adds operational semantics beyond the schema: how to obtain media file names via files.list_uploaded_files, the meaning of omitting account identifiers (default account), mutual exclusivity constraints, and token cost implications based on content. This enhances parameter understanding without redundancy.
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 publishes a post to a connected X account via the official X API (POST /2/tweets). The verb 'Publish' and resource 'post' are specific, and it distinguishes from sibling tools like x-twitter.edit_post, x-twitter.delete_post, and x-twitter.reply_to_post by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit preconditions (call x-twitter.connected_accounts first), account targeting rules (user_id or user_name exclusive, default if omitted), and content requirements (at least one of text, poll, media, or card_uri). It also explains media upload prerequisites and mutual exclusions. However, it does not explicitly name alternative tools for other actions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.delete_bookmarkAInspect
Remove a bookmarked post for a connected X account.
Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.
Cost = 30 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Numeric id of the bookmarked post to remove. | |
| user_id | No | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| user_name | No | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user_id | No | Numeric X user id of the connected account. |
| user_name | No | X handle of the connected account. |
| bookmarked | No | Whether the post is bookmarked after this request. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden. It adds useful behavioral context: the prerequisite call, account selection behavior, and the cost of 30 tokens. However, it does not disclose failure modes or reversibility, but for a simple bookmark removal this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences: the action, usage instructions, and cost. Every sentence conveys critical information with no wordiness, making it highly scannable.
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 destructive tool, it covers the prerequisite (connected_accounts), account targeting options, and cost. An output schema exists, so return values are already documented. The description is complete enough for an agent to invoke this 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 description coverage is 100%, with detailed descriptions for post_id, user_id, and user_name. The description restates the user_id/user_name selection logic but adds no new information beyond the schema, so it meets the 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 starts with 'Remove a bookmarked post for a connected X account,' which clearly states the verb (Remove), resource (bookmarked post), and scope (for a connected X account). It is distinct from sibling x-twitter.delete_post, which deletes a post rather than a bookmark.
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 explicitly instructs to call x-twitter.connected_accounts first and explains how to target an account via user_id/user_name or default. It provides clear context for when to use the tool but doesn't explicitly mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.delete_postAInspect
Delete a post published by a connected X account.
Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.
Cost = 25 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Numeric id of the post to delete. | |
| user_id | No | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| user_name | No | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | No | Whether the post was deleted. |
| user_id | No | Numeric X user id of the connected account. |
| user_name | No | X handle of the connected account. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full responsibility for behavioral disclosure. It adds useful context: the cost of 25 tokens and the prerequisite call to list connected accounts, which implies an authentication/authorization requirement. However, it does not explicitly state that deletion is permanent or irreversible, nor does it describe error scenarios such as attempting to delete a post not owned by the target account. The description is adequate but leaves important behavioral traits unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, each earning its place: the first states the primary action, the second provides the necessary prerequisite and account-targeting logic, and the third gives the token cost. It is front-loaded with the purpose and contains no filler or redundant wording.
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 operation with a full output schema and comprehensive parameter descriptions, the description covers the essential context: what it does, how to prepare (connected_accounts), how to choose the target account, and the cost. The main gap is the absence of an explicit irreversibility warning, but the verb 'delete' makes that inferable. Overall, it is sufficiently complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already described in the schema. The description adds meaning by telling the agent to call x-twitter.connected_accounts first, clarifying where user_id and user_name values come from and how they relate. It also reinforces the 'either user_id or user_name, never both' rule, complementing the schema without duplicating it.
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 starts with a specific verb and resource: 'Delete a post published by a connected X account.' It clearly distinguishes itself from sibling tools like create_post, edit_post, and delete_bookmark by the action and subject. The scope of 'connected X account' adds clarity about the authorization context, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear prerequisite: 'Call x-twitter.connected_accounts first.' It then explains how to target an account with user_id or user_name, including the rule 'not both' and the fallback to the default account. This is actionable usage context, though it does not explicitly contrast with alternative delete tools like delete_bookmark or state when not to use the tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.edit_postAInspect
Edit a recent post from a connected X account.
Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.
Requires post_id and at least one of text, media, paid_partnership, or made_with_ai.
Edits must be within X's one-hour window after posting. The authenticated X account may need X Premium for API edits. Posts with polls and some other types cannot be edited. Each edit returns a new post_id.
To attach media, upload files with files.upload_file and pass file_name values from files.list_uploaded_files.
Token pricing matches x-twitter.create_post: 60 tokens base, 1000 with URL, plus media surcharges.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | Updated post text. | |
| media | No | File names from files.list_uploaded_files to attach (up to 4). Upload with files.upload_file first. | |
| post_id | Yes | Numeric id of the post to edit. | |
| user_id | No | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| user_name | No | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| made_with_ai | No | Whether the post contains AI-generated media. | |
| paid_partnership | No | Whether the post is a paid partnership. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | No | Post text returned by the X API. |
| post_id | No | Numeric id of the edited post returned by the X API. |
| user_id | No | Numeric X user id of the connected account. |
| user_name | No | X handle of the connected account. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so thoroughly. It discloses prerequisites, account targeting behavior, the one-hour edit limit, possible X Premium requirement, ineligible post types, the fact that each edit produces a new post_id, media upload workflow, and token pricing. This is rich behavioral context beyond the 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?
The description is front-loaded with a clear purpose and every sentence contributes useful information: prerequisites, parameter requirements, constraints, side-effect behavior, media workflow, and pricing. It is dense but not bloated, with no filler or repetition of schema 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?
Given the 7-parameter tool with no annotations, the description covers the full invocation flow: connecting accounts, targeting accounts, required and optional parameters, time constraints, restrictions, media handling, and cost. The existence of an output schema means the description need not restate return values, so this is complete for an agent to select and call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds valuable semantics by stating the conditional requirement ('at least one of text, media, paid_partnership, or made_with_ai'), explaining account selection via user_id/user_name, and giving the media workflow with files.upload_file and files.list_uploaded_files, which goes beyond the schema's field 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 opens with 'Edit a recent post from a connected X account,' which uses a specific verb and resource, clearly distinguishing it from sibling tools like create_post and reply_to_post. It further narrows scope with constraints like 'within X's one-hour window' and 'Each edit returns a new post_id.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: call x-twitter.connected_accounts first, pass user_id/user_name to select an account, require post_id plus at least one editable field, and note the one-hour edit window. It does not explicitly name alternatives for when editing isn't possible, but it clearly implies that posts with polls or other restricted types cannot use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.get_bookmarksAInspect
Fetch bookmarked posts for a connected X account.
Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.
Returns raw X API data with tweet objects, expanded authors, media, polls, and places. Use next_cursor to fetch the next page.
Cost = 25 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of bookmarks to return (default 20, max 100). | |
| cursor | No | Pagination cursor from a previous response next_cursor field. | |
| user_id | No | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| user_name | No | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Bookmarked posts returned by the X API. |
| includes | No | Expanded users, media, polls, places, and referenced posts. |
| next_cursor | No | Cursor for the next page of bookmarks, when available. |
| result_count | No | Number of bookmarks in this page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses return format (raw X API data, tweet objects, expanded authors, media, polls, places), pagination via next_cursor, cost (25 tokens), and the prerequisite of calling x-twitter.connected_accounts. This is solid but doesn't mention rate limits or error 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 four sentences, each serving a purpose: purpose, prerequisite/targeting, return format/pagination, and cost. It is front-loaded with the core purpose and is free of 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?
Given the output schema tracks returns and the parameter schema covers details, the description adds necessary context: prerequisite, targeting, pagination, and cost. It is complete for a read-only fetch tool with no required 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% with all parameters described. The description reinforces the user_id/user_name relationship and mentions pagination, but it already exists in the schema. It adds minimal new semantic value beyond emphasizing the default-account behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches bookmarked posts for a connected X account, using a specific verb ('Fetch') and resource ('bookmarked posts'). It is distinct from sibling tools like create_bookmark, delete_bookmark, and search, and the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: call x-twitter.connected_accounts first, and either pass user_id/user_name or omit both to use the default account. While it doesn't explicitly contrast with alternative tools, it gives a prerequisite and targeting guidance sufficient for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.reply_to_postAInspect
Reply to a post from a connected X account.
Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.
Requires reply_to_post_id. Supports the same content options as x-twitter.create_post: text, polls, media, reply settings, paid partnership disclosure, AI-generated labels, super-follower exclusivity, nullcast posts, cards, communities, and direct-message deep links.
At least one of text, poll, media, or card_uri is required, same as x-twitter.create_post.
Token pricing matches x-twitter.create_post.
| Name | Required | Description | Default |
|---|---|---|---|
| poll | No | Poll object with options (2-4 strings) and duration_minutes (5-10080). | |
| text | No | Reply text content. At least one of text, poll, media, or card_uri is required. | |
| media | No | File names from files.list_uploaded_files to attach (up to 4). | |
| user_id | No | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| card_uri | No | Card URI for the post. Mutually exclusive with poll and media. | |
| nullcast | No | Whether the post is promoted-only and hidden from the public timeline. | |
| user_name | No | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| community_id | No | Community id when posting to an X community. | |
| made_with_ai | No | Whether the post contains AI-generated media. | |
| reply_settings | No | Who can reply to the post. | |
| paid_partnership | No | Whether the post is a paid partnership. | |
| reply_to_post_id | Yes | Numeric id of the post to reply to. | |
| share_with_followers | No | Whether to share a community post with followers too. | |
| exclude_reply_user_ids | No | User ids to exclude from the reply mention list. | |
| direct_message_deep_link | No | Deep link that moves the conversation into Direct Messages. | |
| for_super_followers_only | No | Whether the post is exclusive to super followers. | |
| auto_populate_reply_metadata | No | Whether to automatically populate reply metadata. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | No | Reply text returned by the X API. |
| post_id | No | Numeric id of the reply post. |
| user_id | No | Numeric X user id of the connected account. |
| user_name | No | X handle of the connected account. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses prerequisites (connected_accounts), requirements (reply_to_post_id, at least one content type), and token pricing alignment. It doesn't cover side effects or rate limits, but the core behavior is clearly a reply creation.
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?
Five sentences, each informative: purpose, prerequisite, supported options, requirement, and token pricing. Well-structured 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 17-parameter schema and output schema, the description provides essential usage context including account selection and content constraints. It references create_post for shared details, making it complete for the tool's complexity.
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 has 100% coverage with detailed per-parameter descriptions, so the baseline is 3. The description adds context by grouping content options, stating the mutual exclusivity of card_uri, and explaining account targeting logic 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 uses a specific verb 'Reply to a post' and identifies the resource as a post from a connected X account. It clearly distinguishes from sibling tools like x-twitter.create_post by requiring reply_to_post_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs calling x-twitter.connected_accounts first and explains account selection via user_id/user_name or default. It references x-twitter.create_post for content options, implying the alternative for new posts, but doesn't explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.repost_postAInspect
Repost a post for a connected X account.
Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.
Returns the reposted post_id and retweeted status.
Cost = 75 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Numeric id of the post to repost. | |
| user_id | No | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| user_name | No | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| post_id | No | Numeric id of the reposted post. |
| user_id | No | Numeric X user id of the connected account. |
| retweeted | No | Whether the post was reposted. |
| user_name | No | X handle of the connected account. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return value ('reposted post_id and retweeted status') and cost (75 tokens), but does not mention state mutation, permissions, or potential errors. The prerequisite guidance adds some 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 four short, purposeful sentences. It front-loads the main action, includes prerequisite and return info, and contains no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and covers return values, the description adds the prerequisite (connected_accounts) and account targeting options. It is complete for a simple repost action, though it could mention edge cases like reposting own posts or idempotency.
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 repeats the schema's account selection logic ('Pass user_id or user_name... omit both') without adding new meaning beyond what the schema already states.
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 begins with 'Repost a post for a connected X account,' using a specific verb ('Repost') and resource ('post'). It clearly distinguishes from sibling tools like x-twitter.unrepost_post and x-twitter.create_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call x-twitter.connected_accounts first and explains how to target an account via user_id, user_name, or default. It lacks explicit exclusions or when-not-to-use alternatives, but provides clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.searchAInspect
Search public X (Twitter) posts matching a keyword or phrase.
Returns a timeline of matching posts with tweet text, engagement counts, author info, media, and quoted tweets. Use cursor from next_cursor to fetch the next page. search_type controls ranking: Top (default), Latest, Media, People, or Lists.
Cost = 5 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search keywords or phrase. | |
| cursor | No | Pagination cursor from a previous response next_cursor field. | |
| search_type | No | Result ranking mode. | Top |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | Search status from the upstream provider (ok on success). |
| timeline | No | Matching posts from the search. Additional provider-specific fields may appear on each entry. |
| next_cursor | No | Cursor for the next results page, when available. |
| prev_cursor | No | Cursor for the previous results page, when available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavior. It states the return content (tweet text, engagement counts, author info, media, quoted tweets), pagination behavior, search_type ranking, and cost in tokens. It implies a read-only search operation and discloses the cost, which is valuable 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 three concise sentences: purpose, result details, and cost. Every sentence provides useful information and is front-loaded. No fluff 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?
For a simple search tool with an output schema, the description is complete: it covers the query, return fields, pagination, ranking modes, and cost. It doesn't need to detail return values because an output schema exists. No obvious gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well-documented. The description adds little beyond the schema: it restates cursor usage and search_type options in natural language, but doesn't introduce new semantics. Baseline 3 is appropriate 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?
The description clearly states 'Search public X (Twitter) posts matching a keyword or phrase.' The verb 'Search' plus the resource 'public X posts' gives a specific purpose. It also distinguishes itself from sibling tools like tweet_info or user_timeline by focusing on keyword search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on what the tool does and how to paginate via 'next_cursor', and explains search_type options. It does not explicitly mention when not to use it or name alternative tools, but the purpose is distinct enough to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.tweet_infoAInspect
Fetch metadata for a single public X (Twitter) post by its numeric tweet id.
Returns tweet text, engagement counts (likes, retweets, replies, quotes, bookmarks), language, conversation id, author profile summary, and attached media when present.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric tweet id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Numeric tweet id. |
| lang | No | Detected language code. |
| text | No | Tweet body text. |
| likes | No | Like count. |
| media | No | Attached media grouped by type (for example photo or video arrays). Additional provider-specific media fields may appear. |
| author | No | Author profile summary for the tweet. |
| quotes | No | Quote count. |
| replies | No | Reply count. |
| retweets | No | Repost count. |
| bookmarks | No | Bookmark count. |
| created_at | No | Tweet creation timestamp from X. |
| conversation_id | No | Conversation thread id for the tweet. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden. It discloses that the post must be public, lists the returned metadata fields, and states the cost (2 tokens). This provides useful behavioral context beyond the schema. It does not detail potential errors or rate limits, but for a simple read operation, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a cost note. It front-loads the purpose, then lists return fields, and ends with cost. Every sentence provides essential information without redundancy or 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?
The tool is simple (1 parameter) and has an output schema. The description already enumerates the return fields, making it complete even if the output schema were absent. It covers the main purpose, input, output, and cost, leaving no ambiguity for an agent selecting or invoking this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'id' (described as 'Numeric tweet id'). The description reinforces this with 'by its numeric tweet id' but adds no extra format, example, or constraint beyond the schema. Baseline 3 is appropriate since the schema fully documents the parameter.
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 is specific: 'Fetch metadata for a single public X (Twitter) post by its numeric tweet id.' It clearly identifies the action (fetch metadata), resource (X/Twitter post), and scope (single public post). This distinguishes it from sibling tools like tweet_replies or user_timeline, which have different scopes.
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 clearly implies usage context: use when you have a numeric tweet ID and need metadata for a single post. However, it does not explicitly exclude alternatives or mention when not to use it (e.g., for replies use tweet_replies). The 'by its numeric tweet id' provides a clear prerequisite, but no explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.tweet_repliesAInspect
Fetch the latest replies for a single X (Twitter) post by its numeric tweet id.
Returns a timeline of reply tweets with text, engagement counts, author info, media, and in-reply-to metadata. Use cursor from next_cursor to fetch the next page.
Cost = 4 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Numeric tweet id. | |
| cursor | No | Pagination cursor from a previous response next_cursor field. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | Reply fetch status from the upstream provider (ok on success). |
| timeline | No | Reply tweets, newest first. Additional provider-specific fields may appear on each entry. |
| next_cursor | No | Cursor for the next replies page, when available. |
| prev_cursor | No | Cursor for the previous replies page, when available. |
Tool Definition Quality
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 does mention the return content (replies with text, engagement counts, author info, media, in-reply-to metadata), pagination via cursor, and cost. However, it omits details like authentication requirements, rate limits, or behavior when no replies exist, which would be valuable for fully transparent 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 three sentences: purpose, return content, and pagination/cost. It is front-loaded with the primary action, and every sentence adds value without redundancy. 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?
The tool is simple with two parameters and an output schema, so the description doesn't need to explain return formats. It covers the return fields and pagination, which are the essential behavioral aspects. It could mention potential edge cases (e.g., invalid tweet id) but is otherwise complete for a straightforward fetch 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 already describes both parameters (id as 'Numeric tweet id' and cursor as 'Pagination cursor from a previous response next_cursor field'). The description repeats these details without adding significant new meaning. Since schema coverage is 100%, the baseline of 3 is appropriate; no extra semantics are needed from 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 begins with 'Fetch the latest replies for a single X (Twitter) post by its numeric tweet id,' which clearly states the action ('Fetch'), the target resource ('replies for a single X post'), and the required input ('numeric tweet id'). This distinguishes it from sibling tools like tweet_info (which likely fetches the tweet itself) and user_timeline (which fetches a user's posts).
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 clearly conveys when to use the tool: when you need replies for a specific post. It doesn't explicitly name alternatives or exclusions, but the context of sibling tools like tweet_info and user_timeline makes the intended use clear. This aligns with 'clear context, no exclusions' from the rubric.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.unrepost_postAInspect
Remove a repost for a connected X account.
Call x-twitter.connected_accounts first. Pass user_id or user_name to target a specific account, or omit both to use the default account.
Cost = 50 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | Numeric id of the original post to unrepost. | |
| user_id | No | Numeric X user id from x-twitter.connected_accounts. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. | |
| user_name | No | X handle from x-twitter.connected_accounts, with or without a leading @. Pass user_id or user_name to target a specific account, not both. Omit both to use the default account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user_id | No | Numeric X user id of the connected account. |
| retweeted | No | Whether the post is still reposted after this request. |
| user_name | No | X handle of the connected account. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions the cost (50 tokens) and the prerequisite of connected accounts, but does not discuss side effects, error handling, idempotency, or what happens if the repost does not exist. It adds some value but leaves gaps typical of 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 three sentences, front-loaded with the primary purpose, followed by a critical prerequisite and cost. Every sentence earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with a rich output schema and fully described parameters, the description covers purpose, prerequisite, account targeting, and cost. It lacks explicit notes on error behavior or reversibility, but the provided context is sufficient for typical 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 the description adds no new parameter meaning beyond what the input schema already provides. The schema already explains the user_id/user_name targeting logic, and the description merely repeats that. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb+resource: 'Remove a repost for a connected X account.' It clearly differentiates from siblings like repost_post (which creates a repost) and delete_post (which deletes a post), making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: instructs to call x-twitter.connected_accounts first and explains how to target an account (pass user_id/user_name or omit both for default). It does not explicitly contrast with alternatives or state when-not-to-use, but the prerequisite and targeting guidance offer strong operational direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.user_infoAInspect
Fetch public profile metadata for an X (Twitter) user.
Provide user_name (handle without @) or rest_id (numeric user id). At least one is required. When rest_id is set, it takes precedence over user_name. Returns display name, bio, follower counts, verification flags, avatar URLs, and related profile fields.
Cost = 2 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| rest_id | No | Numeric X user id (rest_id). When provided, user_name is ignored. | |
| user_name | No | X handle without the leading @ (for example elonmusk). Required when rest_id is omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Numeric X user id (may duplicate rest_id). |
| desc | No | Profile bio / description. |
| name | No | Display name shown on the profile. |
| avatar | No | Profile avatar image URL. |
| status | No | Profile lookup status from the upstream provider. |
| friends | No | Number of accounts the user follows. |
| profile | No | X screen name (handle). |
| rest_id | No | Numeric X user id. |
| location | No | Profile location string. |
| protected | No | Whether the account is protected (private). |
| sub_count | No | Follower count. |
| affiliates | No | Affiliate account metadata when present (object or empty array from the provider). Additional provider-specific fields may appear. |
| created_at | No | Account creation timestamp from X. |
| media_count | No | Total media item count. |
| header_image | No | Profile banner image URL. |
| blue_verified | No | Whether the account has X blue verification. |
| statuses_count | No | Total post count. |
| business_account | No | Business account metadata when present (object with counts or empty array from the provider when not applicable). |
| verification_type | No | Verification type label from X when present. |
| pinned_tweet_ids_str | No | Pinned tweet ids for the profile when present. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It clearly indicates a read operation via 'Fetch' and notes that it returns public data, plus the cost in tokens. It does not explicitly state 'read-only' or mention rate limits/errors, but for a simple fetch tool the behavior is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the purpose, then parameter usage, then return fields and cost. Every sentence is informative with 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?
The tool is simple (2 parameters) and has an output schema that covers return structure. The description lists key fields and any constraints, making it sufficiently complete. It omits error cases or rate limits, but these are not critical for this straightforward fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by clarifying that at least one parameter is required and that rest_id takes precedence over user_name when both are provided, which goes beyond the schema 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 uses a specific verb ('Fetch') and resource ('public profile metadata for an X (Twitter) user'), making the tool's purpose clear. However, it does not explicitly differentiate from sibling tools like user_timeline or tweet_info, so it stays at a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by listing what it returns (display name, bio, follower counts, etc.), which tells the agent what this tool is for. It does not mention alternatives or exclusions (e.g., when to use user_timeline instead), so only implied usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x-twitter.user_timelineAInspect
Fetch a user's recent X (Twitter) posts, pinned tweet, and profile summary.
Provide user_name (handle without @) or rest_id (numeric user id). At least one is required. When rest_id is set, it takes precedence over user_name. Returns timeline entries with tweet text, engagement counts, media, quoted tweets, and author info. Use cursor from next_cursor to fetch the next page.
Cost = 4 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor from a previous response next_cursor field. | |
| rest_id | No | Numeric X user id (rest_id). When provided, user_name is ignored. | |
| user_name | No | X handle without the leading @ (for example elonmusk). Required when rest_id is omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No | Profile summary for the requested user. |
| pinned | No | Pinned tweet object when the user has one pinned post. |
| status | No | Timeline fetch status from the upstream provider (ok on success). |
| timeline | No | Recent posts from the user. Additional provider-specific fields may appear on each entry. |
| next_cursor | No | Cursor for the next timeline page, when available. |
| prev_cursor | No | Cursor for the previous timeline page, when available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It goes beyond schema by describing return contents (engagement counts, media, quoted tweets), pagination behavior, the required-input condition despite schema making parameters optional, and the token cost. It does not mention authentication, rate limits beyond cost, or potential errors, but the provided details are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and efficiently structured: a one-sentence purpose, a one-sentence input explanation, a one-sentence output summary, and a one-sentence pagination note plus cost line. Every sentence earns its place with no redundant or vague 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?
For a read-only timeline fetch with an output schema available, this description is sufficiently complete. It covers input identification rules, precedence, output highlights, pagination mechanics, and cost. The agent can confidently select and invoke this tool without needing additional external 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 coverage is 100%, with clear descriptions for all three parameters. The description adds meaningful rule-based semantics that are not in the schema: at least one of user_name or rest_id is required, and rest_id takes precedence. It also ties the cursor parameter to the output's next_cursor field, enriching 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 'Fetch a user's recent X (Twitter) posts, pinned tweet, and profile summary,' which is a specific verb+resource combination. This differentiates it from sibling tools like x-twitter.user_info (profile-only) and x-twitter.tweet_info (single tweet), as it explicitly covers timeline content plus profile summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for use: how to specify the user via user_name or rest_id, that at least one is required, that rest_id takes precedence, and how to paginate using next_cursor. However, it does not explicitly mention when to prefer this tool over alternatives such as x-twitter.user_info or x-twitter.search, so it lacks exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube.channel_detailsAInspect
Fetch metadata for a public YouTube channel by channel id or URL.
Accepts a channel id (for example UCJ5v_MCY6GNUBTO8-D3XoAg) or common YouTube channel URLs (for example https://www.youtube.com/@WWE). Returns title, username, description, subscriber and view counts, join date, verification flags, avatar and banner images, keywords, and external links.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| channel_id | Yes | YouTube channel id or URL (for example UCJ5v_MCY6GNUBTO8-D3XoAg or https://www.youtube.com/@WWE). |
Output Schema
| Name | Required | Description |
|---|---|---|
| links | No | External links listed on the channel About page. |
| stats | No | Public channel statistics. |
| title | No | Channel display name. |
| avatar | No | Channel avatar images at different sizes. |
| badges | No | Channel badges (for example Official Artist Channel). |
| banner | No | Channel banner images for desktop, mobile, and TV layouts. |
| country | No | Country associated with the channel when available. |
| keywords | No | Channel keywords from the About page. |
| username | No | Public @ handle when available. |
| artistBio | No | Artist bio text when the channel is a music artist. |
| channelId | No | Canonical YouTube channel id. |
| isVerified | No | Whether the channel is verified. |
| joinedDate | No | Channel creation date (ISO 8601). |
| description | No | Channel About description. |
| isFamilySafe | No | Whether the channel is marked family safe. |
| joinedDateText | No | Human-readable join date. |
| canonicalBaseUrl | No | Canonical channel path on YouTube when available. |
| hasBusinessEmail | No | Whether a business email is available for contact. |
| isVerifiedArtist | No | Whether the channel is a verified artist channel. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it only works for public channels, lists the specific metadata returned, notes the token cost, and gives accepted input formats, which is valuable given no annotations are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, includes concrete examples and output fields, and is free of 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?
For a simple single-parameter tool with an output schema, the description covers input formats, output fields, public-channel constraint, and cost, making it fully contextual.
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 description covers the channel_id parameter fully with examples, and the description repeats this information, so the description adds no new parameter semantics 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 'Fetch metadata for a public YouTube channel by channel id or URL' with a specific verb and resource, and lists the returned metadata fields, distinguishing it from sibling tools like youtube.channel_search or youtube.channel_videos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to invoke the tool (by channel id or URL) and implies its use case (fetching channel metadata), but it does not explicitly mention alternatives or when not to use it, though this is not necessary given the clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube.channel_searchAInspect
Search public videos on a YouTube channel by keyword or phrase.
Accepts a bare channel id (for example UCJ5v_MCY6GNUBTO8-D3XoAg), not a URL. Returns matching video entries and cursorNext for pagination.
Use cursorNext from a prior response as cursor for the next page.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search keywords or phrase within the channel. | |
| cursor | No | Pagination cursor from cursorNext. | |
| channel_id | Yes | YouTube channel id (for example UCJ5v_MCY6GNUBTO8-D3XoAg, not a URL). |
Output Schema
| Name | Required | Description |
|---|---|---|
| contents | No | Matching video entries for the current page. Each entry includes a type field and nested video object. |
| cursorNext | No | Cursor for the next page, when available. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses cost (10 tokens), the required bare channel ID format, that only public videos are searched, and the pagination mechanism via cursorNext. This goes beyond the obvious read-only nature of a search, though it doesn't mention 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?
The description is four concise sentences, each earning its place: purpose, input constraint, output behavior with pagination, and cost. No redundant fluff, and the most important information (what it does) is 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 moderate complexity (3 params, output schema present), the description covers the essential aspects: purpose, input format, pagination flow, and cost. Output schema handles return structure, so the description doesn't need to enumerate fields. It is complete enough for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are documented. The description adds value by explaining the purpose of cursorNext and how it relates to the cursor parameter, plus reiterating the bare ID requirement. This clarifies the intended usage flow beyond the schema's individual 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 opens with a specific verb and resource: 'Search public videos on a YouTube channel by keyword or phrase.' This clearly distinguishes it from sibling tools like youtube.search (general YouTube search) and youtube.channel_videos (likely listing videos without keyword filtering). The scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: it's for searching within a specific channel using a bare channel ID, not a URL. It also provides pagination instructions with cursorNext. However, it doesn't explicitly mention when NOT to use this tool or point to alternatives like youtube.search for broader queries, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube.channel_videosAInspect
Fetch a paginated list of videos from a public YouTube channel by its channel id.
Accepts a channel id (for example UCg6gPGh8HU2U01vaFCAsvmQ) or common YouTube channel URLs (for example https://www.youtube.com/@ChrisTitusTech). Use cursor from a prior response for the next page.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor from a previous response cursor field. | |
| channel_id | Yes | YouTube channel id or URL (for example UCg6gPGh8HU2U01vaFCAsvmQ or https://www.youtube.com/@ChrisTitusTech). |
Output Schema
| Name | Required | Description |
|---|---|---|
| cursor | No | Cursor for the next page, when available. |
| videos | No | Channel videos for the current page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses pagination behavior ('paginated list', 'Use cursor from a prior response for the next page'), input flexibility (ID or URL), and a public-channel restriction. It also notes the cost. However, it does not detail error handling, ordering, or rate limits, which would have made it more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main purpose, followed by input examples, cursor guidance, and cost. Every sentence adds value with no fluff or repetition. The structure is easy to parse and scannable.
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 presence of an output schema, return values need not be described. The description adequately covers pagination, input formats, and access restrictions. It lacks details like default page size or potential errors, but for a list endpoint with two parameters and full schema coverage, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters already described. The description adds valuable examples ('UCg6gPGh8HU2U01vaFCAsvmQ', 'https://www.youtube.com/@ChrisTitusTech') and reinforces cursor usage for pagination. This goes slightly beyond the schema by demonstrating real input formats, but does not introduce entirely new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Fetch a paginated list of videos from a public YouTube channel by its channel id.' It uses a specific verb ('fetch') and resource ('videos from a public YouTube channel'), distinguishing it from siblings like youtube.video_details (single video) and youtube.search (video search). Examples of channel IDs and URLs further clarify the resource 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?
The description provides clear context on when to use the tool (when you need videos from a specific channel by ID or URL), but it does not explicitly mention alternatives or when not to use it. The focus on 'public' and pagination hints at limitations, but no direct comparison to sibling tools like youtube.search is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube.playlist_detailsAInspect
Fetch metadata for a public YouTube playlist by playlist id.
Returns title, description, creator summary, video and view counts, thumbnails, badges, and last updated timestamps.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes | YouTube playlist id (for example PLcirGkCPmbmFeQ1sm4wFciF03D_EroIfr). |
Output Schema
| Name | Required | Description |
|---|---|---|
| stats | No | Public playlist statistics. |
| title | No | Playlist title. |
| author | No | Playlist creator summary. |
| badges | No | Playlist badges when available. |
| playlistId | No | Canonical YouTube playlist id. |
| thumbnails | No | Playlist thumbnail images at different sizes. |
| description | No | Playlist description. |
| updatedTime | No | Last update date (ISO 8601). |
| updatedTimeText | No | Human-readable last update time. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It discloses the operation is a fetch (read) and lists return fields, plus cost in tokens. However, it does not mention error handling, rate limits, or any side effects, though for a read-only metadata tool this is moderately sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a cost note, with the primary action and resource specified upfront. No fluff or redundant info.
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), output schema existence, and clear return field listing, the description is nearly complete. It omits explicit error behavior or guidance on non-public playlists, but for a metadata fetch tool this is a minor 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?
Schema description coverage is 100% and the schema already provides a clear example playlist ID. The tool description adds minimal param semantics beyond naming 'playlist id,' which is already covered. 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 'Fetch metadata for a public YouTube playlist by playlist id,' using a specific verb (fetch) and resource (playlist metadata). This distinguishes it from sibling tools like video_details and channel_details.
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 makes it clear the tool is for retrieving playlist metadata when you have a playlist ID, but does not explicitly mention alternatives or exclusions. The context 'public YouTube playlist' implies when it applies, but no sibling differentiation is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube.searchAInspect
Search public YouTube content by keyword or phrase.
Returns matching result cards, estimated result count, and spelling suggestions.
Use filter parameters to apply multiple YouTube search filters:
upload_date: Last hour, Today, This week, This month, This year
content_type: Video, Channel, Playlist, Movie
duration: Under 4 minutes, 4 - 20 minutes, Over 20 minutes
features: Live, 4K, HD, Subtitles/CC, Creative Commons, 360°, VR180, 3D, HDR, Location, Purchased (multiple allowed)
sort_by: Relevance, Upload date, View count, Rating
Filter values are matched case-insensitively. Only one option per group applies except features, which accepts multiple labels.
When a requested filter cannot be applied, the API returns the best-effort results available so far and includes unappliedFilters with the labels that were skipped.
Use cursor with the same query to paginate: pass cursorNext from a prior response. Filter parameters and cursor cannot be combined.
Check didYouMean when the query may be misspelled.
Cost = 20 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search keywords or phrase. | |
| cursor | No | Pagination cursor from cursorNext. | |
| sort_by | No | Sort order. One of: Relevance, Upload date, View count, Rating. | |
| duration | No | Duration filter. One of: Under 4 minutes, 4 - 20 minutes, Over 20 minutes. | |
| features | No | Feature filters. Multiple allowed. Each value must be one of: Live, 4K, HD, Subtitles/CC, Creative Commons, 360°, VR180, 3D, HDR, Location, Purchased. | |
| language | No | Language code for localized results (for example en). | en |
| location | No | Country code for localized results (for example US). | US |
| upload_date | No | Upload date filter. One of: Last hour, Today, This week, This month, This year. | |
| content_type | No | Content type filter. One of: Video, Channel, Playlist, Movie. |
Output Schema
| Name | Required | Description |
|---|---|---|
| contents | No | Search result entries for the current page. Video entries include a type field and nested video object. |
| cursorNext | No | Cursor for the next results page, when available. |
| didYouMean | No | Suggested corrected query when the search may be misspelled. |
| estimatedResults | No | Approximate total number of matching results. |
| unappliedFilters | No | Requested filter labels that could not be applied. Present only when at least one filter was skipped. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses multiple non-obvious behaviors: case-insensitive filter matching, restriction of one value per group except features, best-effort results with unappliedFilters, inability to combine filters and cursor, and didYouMean hints. These go well beyond the 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?
The description is well-structured with bullets, front-loaded with purpose, and every sentence adds value. Despite length, it remains scannable and free of 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 complex search tool with output schema, the description covers return values, filter options, pagination, error behavior, and cost. It provides a complete operational picture without needing the output schema to explain 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 covers all 9 parameters at 100%, but the description adds crucial relational semantics: only one option per filter group except features, filter/cursor incompatibility, and the unappliedFilters mechanism. This supplements the schema meaningfully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Search public YouTube content by keyword or phrase.' It distinguishes itself from sibling tools like youtube.channel_search and youtube.search_autocomplete, and outlines the returned data types.
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?
Provides clear guidance on filter usage, pagination with cursor, and error handling. However, it does not explicitly mention when to choose this tool over alternatives like youtube.channel_search, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube.search_autocompleteAInspect
Get YouTube search autocomplete suggestions for a partial query.
Returns the normalized query and an array of suggested search phrases. Optional language and location codes localize suggestions (defaults: en, US).
Cost = 8 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Partial search keywords or phrase. | |
| language | No | Language code for localized suggestions (for example en). | en |
| location | No | Country code for localized suggestions (for example US). | US |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | No | Normalized query echoed from the provider. |
| results | No | Suggested search phrases for the query. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral transparency burden. It disclosed the return format (normalized query, array of suggestions), localization defaults, and token cost, which is useful. However, it does not mention rate limits, error handling, or explicitly confirm read-only behavior, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at three sentences. It front-loads the main purpose, then covers return value, localization, and cost without any waste or redundancy. Every sentence 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?
For a simple read-only tool with an output schema, the description is complete. It covers what the tool does, return structure, parameter behavior, and cost. No critical operational details are missing for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds extra meaning by explaining that language and location localize suggestions and providing their defaults (en, US), which enriches the parameter understanding beyond the schema's individual 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?
Purpose is crystal clear: 'Get YouTube search autocomplete suggestions for a partial query.' The verb 'Get' is specific, the resource is clearly YouTube search autocomplete, and the scope is partial queries, distinguishing it from the more general youtube.search sibling.
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 partial queries (e.g., 'for a partial query') but does not explicitly state when to prefer this tool over youtube.search or any other alternative. No exclusions or alternative references are provided, leaving the usage context implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube.video_commentsAInspect
Fetch top-level comments for a public YouTube video by its 11-character video id.
Returns comment text, author summary, vote and reply counts, pinned status, total comment count, and cursorNext for the next page.
Use sort_by to choose comment order:
sort_by: Top comments, Newest first
Sort values are matched case-insensitively.
Use cursor with the same video_id to paginate: pass cursorNext from a prior response. sort_by and cursor cannot be combined.
Cost = 15 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor from a previous response cursorNext field. | |
| sort_by | No | Comment sort order. One of: Top comments, Newest first. | |
| video_id | Yes | YouTube video id (11 characters, not a URL). |
Output Schema
| Name | Required | Description |
|---|---|---|
| comments | No | Top-level comments for the current page and sort order. Additional provider-specific fields may appear on each entry. |
| cursorNext | No | Cursor for the next comments page, when available. |
| totalCommentsCount | No | Total number of comments on the video. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses the return fields, pagination mechanism, sort options with case-insensitivity, and token cost. It does not discuss error handling or page size limits, but these are not critical for typical use. The added detail on constraints and return data surpasses what annotations would typically cover.
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 well-structured and front-loaded with the purpose. It uses short, clear sections for returns, sort_by, cursor, and cost. Every sentence provides useful information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all critical aspects: purpose, required input format, return field summary, pagination via cursor, sort options with constraints, and cost. Since an output schema exists, the description need not detail every return field, but it still provides a concise overview, making the tool self-contained and easy to 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%, so the baseline is 3. The description adds meaningful value beyond the schema: it specifies that cursor requires the same video_id, that sort_by and cursor are mutually exclusive, and that sort values are case-insensitive. These constraints are not present in the input schema, enhancing the agent's ability to invoke the tool correctly.
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 opens with a specific verb and resource: 'Fetch top-level comments for a public YouTube video by its 11-character video id.' This clearly distinguishes the tool from sibling tools like youtube.video_details and tiktok.video_comments by specifying platform (YouTube) and scope (top-level comments).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear contextual prerequisites (public video, 11-character ID) and usage constraints (sort_by and cursor cannot be combined; cursor must use same video_id). However, it does not explicitly mention alternatives or exclusions relative to sibling tools, though the purpose itself makes the intended use obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube.video_detailsAInspect
Fetch metadata for a public YouTube video by video id or URL.
Accepts a bare 11-character video id (for example PuQFESk0BrA) or common YouTube watch, youtu.be, Shorts, and embed URLs. Returns title, description, view count, duration, publish date, channel id, category, keywords, and thumbnails.
Cost = 10 tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| video_id | Yes | YouTube video id or URL (for example PuQFESk0BrA, https://youtu.be/PuQFESk0BrA, or https://www.youtube.com/watch?v=PuQFESk0BrA). |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | Video type (for example NORMAL). |
| title | No | Video title. |
| author | No | Channel display name. |
| category | No | Primary category label. |
| keywords | No | Video keyword tags. |
| video_id | No | Canonical YouTube video id. |
| channel_id | No | Uploader channel id. |
| thumbnails | No | Available thumbnail images at different sizes. |
| description | No | Plain-text video description. |
| video_length | No | Video duration in seconds as a string. |
| published_time | No | Publish date (ISO 8601). |
| is_live_content | No | Whether the video is live content (True or False as a string). |
| number_of_views | No | Total view count. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that only public videos are supported, specifies the returned fields, and includes the token cost. It does not cover error cases or rate limits, but for a simple read-only metadata fetch, this is adequate and adds meaningful 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 three concise sentences, front-loaded with the core purpose, followed by input/output details and cost. Every sentence adds value with no redundancy or filler, making it an example of efficient, well-structured documentation.
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 (one required parameter, no nested objects) and an output schema exists, so the description need not explain return structures. It covers input formats, public video requirement, and returned fields. Missing details like error behavior are not critical for a metadata fetch tool, and the description is complete enough for an agent to invoke 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 already provides 100% coverage of the video_id parameter, including format examples. The description adds the explicit 'bare 11-character video id' detail and lists common URL prefixes, which slightly enhances the schema description. However, it does not fundamentally expand parameter understanding beyond what the schema already states.
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 'Fetch metadata for a public YouTube video by video id or URL', which specifies the verb, resource, and scope. It distinguishes itself from sibling tools like youtube.video_comments and youtube.channel_details by focusing on a single video's metadata, and lists the exact fields returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when you have a video ID or URL and need its metadata. It provides accepted input formats and examples. However, it does not explicitly mention alternatives or when NOT to use it, though no direct sibling tool overlaps with this functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceA hosted MCP server providing 15 media and data tools for AI agents, including web search, news, content extraction, summarization, translation, moderation, script writing, text-to-voiceover, transcription, subtitles, viral-clip discovery, and short-form video editing.1MIT
- Alicense-qualityDmaintenanceMulti-tool MCP server for AI agents with 29 tools across web scraping, SEO analysis, screenshot and PDF generation, domain intelligence, content extraction, multi-chain EVM blockchain queries, and security toolkit. Free tier available with no auth required.331MIT
- Alicense-qualityFmaintenanceMCP tool server that gives any AI agent the ability to search, scrape, and analyze content across the internet.43MIT
- Flicense-qualityCmaintenanceHosted MCP server that gives AI agents read and write access to your full marketing & ecommerce stack — Google Analytics, Search Console, Google & Meta Ads, Shopify, WooCommerce, Shopware, Slack and LinkedIn. 100+ tools across 10 connectors. BYOK, OAuth 2.1.
Your Connectors
Sign in to create a connector for this server.