Skip to main content
Glama

Server Details

Manage EchoRelay relay projects from any MCP client: lines, endpoints, keys, billing, logs, DLQ.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 60 of 60 tools scored. Lowest: 3.3/5.

Server CoherenceA
Disambiguation4/5

Most tools have distinct purposes, but there is slight overlap between change_plan and cancel_subscription (both can cancel a subscription) and between various add-on management tools. However, detailed descriptions help disambiguate.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., create_line, get_metrics, list_projects). No mixing of conventions, making it predictable for an agent.

Tool Count3/5

60 tools is high, covering billing, subscriptions, add-ons, DLQ, members, and more. While each tool has a clear role, the count is borderline for a single server and could be streamlined by combining some related operations.

Completeness4/5

The tool surface covers most operations for managing a relay project: CRUD for lines, endpoints, API keys, tokens, members, billing, and DLQ. Minor gaps exist, such as no tool to delete a project or update line settings beyond docs sharing.

Available Tools

64 tools
activate_lineAInspect

Activate an inactive line so it serves traffic again. Blocked at the active-line cap — deactivate another line first. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineKeyYesThe line key, e.g. "v1".
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false, destructiveHint=false). Description adds context about serving traffic and cap blocking, but could mention behavior for already-active lines.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences concisely convey purpose, constraint, and requirement with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 no output schema, the description provides all necessary context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter is well-described. Description adds no extra parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool activates an inactive line to serve traffic, distinguishing it from deactivate_line and other siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions the active-line cap constraint and advises deactivating another line first, plus requires edit access.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

archive_projectA
Destructive
Inspect

Archive a project you own. Reversible: the project + slug persist and credits are kept, but the data plane drops the tenant (callers get 404). Idempotent. Requires an ACCOUNT-scoped token and the config scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe slug of a project you own.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant detail beyond annotations: explains reversibility (project/slug persist, credits kept, data plane drops tenant causing 404), idempotency, and auth requirements. Annotations only indicate destructive hint; description enriches understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: purpose, effects, prerequisites. No redundant phrases. Front-loaded with the core action. Every sentence provides value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers purpose, behavior, prerequisites, and idempotency comprehensively. No gaps for an 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter 'slug' is fully documented in schema with description 'The slug of a project you own.' Description does not add additional semantics about format or constraints; baseline 3 for 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Archive a project you own', specifying the action, resource, and ownership scope. It distinguishes from the sibling tool 'unarchive_project' by mentioning reversibility.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides prerequisites (ACCOUNT-scoped token and config scope) and notes idempotency. Does not explicitly say when not to use, but the context of owning the project is clear. Alternative is implicit via reversal mention.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_subscriptionA
Destructive
Inspect

Schedule the project owner's subscription for cancellation at the end of the current billing period. Returns {kind: 'scheduled', newPlan: 'free', effectiveAt}. Add-ons keep renewing while the plan is active; after it ends they stop renewing and each already-paid add-on cycle stays active until its own end date (use unsubscribe_addon to stop one sooner). Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses scheduling behavior (not immediate), return format with fields, and add-on lifecycle. Annotations (destructiveHint=true, readOnlyHint=false) are consistent and the description adds valuable context beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise yet informative. Front-loaded with main action and return type, followed by important context on add-ons and prerequisites. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Fully covers purpose, return shape, behavioral details, and prerequisites. No output schema needed as return is described explicitly. Suitable for a parameterless tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no parameters (100% coverage), so description cannot add value. Baseline of 4 is appropriate as no further elaboration is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Schedule the project owner's subscription for cancellation' with a specific verb and resource. It differentiates from sibling tools like unsubscribe_addon by explaining the add-on behavior and when to use that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states owner-only requirement and needed billing scope token. Provides context on when to use (to cancel plan) and when not (add-ons handled separately), with alternative named (unsubscribe_addon).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

change_planA
Destructive
Inspect

Switch the project owner between Pro and Scale, or cancel the subscription (effectively dropping to Free at period end). Returns {kind, newPlan, effectiveAt, applied}applied=true means Paddle was charged immediately, otherwise the change is queued for the current period end. Use preview_plan_change first to see the dollar impact. Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint=true, readOnlyHint=false), the description adds critical behavioral details: the return object format, the applied flag indicating immediate vs queued change, the role of Paddle, and the timing (current period end). This fully informs agents of the tool's operational implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with zero waste. The first sentence combines purpose and return format; the second adds usage guidance. Every clause serves a purpose, and critical information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description specifies the return shape and key fields. It covers prerequisites, scope restrictions, and the preview alternative. For a simple 1-parameter tool, this is fully 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'plan' is an enum with self-explanatory values (free, pro, scale). The description maps these to actions (switch Pro<->Scale, cancel→Free), which adds meaning beyond the schema. With 0% schema description coverage, the description compensates adequately, though it could be more explicit about what each plan entails.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the core actions (switch between Pro/Scale, cancel to Free) and distinguishes from sibling preview_plan_change by referencing it as a prerequisite. It also specifies the return object with key fields. This meets the criteria for a specific verb+resource with sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use preview_plan_change first to see dollar impact, and clarifies that the tool is owner-only with a billing scope requirement. However, it does not discuss when to prefer this tool over the sibling cancel_subscription or when not to use it, which would elevate it to a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_api_keyAInspect

Mint a project API key. Returns the plaintext exactly once — store it now, it cannot be retrieved later. Editor + owner; subject to the project key policy (see get_key_policy).

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYeslive → paid pool, test → testing pool (rate-limited to the plan's live rate).
nameYesHuman-readable label, up to 120 characters.
ttlDaysNoLifetime in days. Omit to use the project's defaultKeyTtlDays from get_key_policy. Null = never expires (owner-only unless editorsMayCreateNonExpiringKeys is set).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only and not destructive. The description adds critical behavioral context: the plaintext key is returned exactly once and cannot be retrieved later. This is valuable beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first states the purpose and a key behavioral note, the second covers permissions and policy. Every sentence earns its place; information is front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core action, a critical retrieval constraint, authorization, and policy dependency. It lacks details on return format or activation behavior, but for a creation tool without output schema, it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are fully described in the schema (100% coverage). The tool description does not add new per-parameter details beyond what the schema already provides, so it adds marginal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Mint' followed by the resource 'project API key', clearly defining the tool's action. It distinguishes from siblings like 'create_project_token' and 'revoke_api_key' by specifying the token type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on authorization ('Editor + owner') and policy dependency ('subject to the project key policy (see get_key_policy)'). However, it does not explicitly state when to use this tool versus alternatives like 'create_project_token'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_credentialAInspect

Save a new reusable credential, sealed with the project's encryption key at write time. Neither this call nor any later read ever returns the secret back — reference it from a target by id (see create_endpoint/update_endpoint's target.credentialVaultEntryId) instead of copying the secret around. auth.type selects which fields apply: bearer→token, basic→username+password, apiKeyHeader→headerName+key, apiKeyQuery→paramName+key, publicPrivateKey→secret+key.

ParametersJSON Schema
NameRequiredDescriptionDefault
authYesThe credential's auth shape.
nameYesHuman-readable label, up to 120 characters.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the credential is sealed at write time and the secret is never returned, which is critical behavioral context beyond what annotations provide. There is no contradiction with annotations (readOnlyHint=false, destructiveHint=false).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (four sentences) and front-loaded with the main purpose. Every sentence adds unique value: encryption, non-retrievability, referencing via ID, and auth type mapping. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers key aspects but lacks an explicit statement about the return value (likely a credential ID), especially important since no output schema is provided. It also omits preconditions like required project context or permissions. Slightly incomplete given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 100% schema coverage of parameters (auth and name), the description adds significant value by explaining how auth.type selects which fields apply (e.g., bearer→token) and gives examples like headerName for apiKeyHeader. This clarifies conditional parameter usage beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a reusable credential sealed with encryption, differentiating it from siblings like create_api_key and update_credential. It also highlights a key constraint (secret not returned), making the purpose 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises referencing the credential by ID to avoid copying secrets, and explains how auth.type selects applicable fields. However, it does not explicitly state when this tool should not be used or compare it with alternatives like update_credential or create_api_key.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_endpointAInspect

Create an endpoint under a line. The endpoint document round-trips with what get_endpoint returns — call default_endpoint_template first if you want a known-good starting point. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineKeyYesThe line key to create the endpoint under.
endpointYesAn EchoRelay endpoint. Round-trips with the JSON returned by get_endpoint.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false (mutation expected) and destructiveHint=false. The description adds that the endpoint document round-trips with get_endpoint and that edit access is needed. However, it does not disclose side effects, rate limits, or idempotency behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences with no wasted words. It front-loads the core purpose, then adds workflow and auth context. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (nested schema, 2 parameters, no output schema), the description covers prerequisite and round-trip behavior but leaves out expected return value, error conditions, and idempotency. It is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 by explaining that the endpoint object round-trips with get_endpoint and recommending default_endpoint_template as a starting point, which provides context beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create an endpoint under a line') and distinguishes the tool from siblings like update_endpoint and delete_endpoint. It also provides helpful context about round-tripping with get_endpoint and a prerequisite (default_endpoint_template).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Requires edit access' and suggests calling default_endpoint_template first, but does not explicitly clarify when to use this tool vs alternatives such as update_endpoint or default_endpoint_template. There is no direct guidance on selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_lineBInspect

Create a new versioned API line. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable line name.
lineKeyYesURL key, lowercase letters/digits/hyphens, e.g. "v1".
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate it's not read-only and not destructive. Description adds 'versioned' and permission requirement but lacks details like error on duplicate or result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded purpose and permission.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple creation tool with 2 required params and no output schema, but lacks explanation of 'versioned' and return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of params with descriptions. The tool description adds no extra meaning beyond what's already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'Create' and resource 'new versioned API line' are specific. It clearly distinguishes from siblings like delete_line, duplicate_line, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Only mentions 'Requires edit access.' No guidance on when to use vs alternatives (e.g., duplicate_line) or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectAInspect

Create a new project on your account so an agent can bootstrap from a fresh account. The slug is derived from the name and validated server-side (format, reserved words, uniqueness). Each plan includes a fixed number of active projects (free tiers one; paid plans more — see list_subscription_plans); at the limit this returns an error telling you to archive a project or upgrade. Requires an ACCOUNT-scoped token and the config scope. Returns the created project ({id, slug, name, apiBaseUrl, archived}); mint a project-scoped token in the panel to then configure it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable project name (1–100 chars). The slug is derived from it.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses mutable nature (requires config scope, returns created object), error conditions (plan limit), and return structure. Annotations are minimal, so description fully covers behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise yet comprehensive; front-loaded with purpose, each sentence adds value (slug derivation, plan limits, auth requirements, return object). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Fully covers all aspects: purpose, usage, behavior, parameters, and return. References sibling tools and suggests next steps (mint token). No output schema needed as return is described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds meaning beyond schema: name is 1–100 chars, slug derived and validated. Schema coverage is 100%, but description enriches with format and server-side validation details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Create' and resource 'project', with specific context 'so an agent can bootstrap from a fresh account'. Distinguishes from siblings like archive_project and rename_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (bootstrap a fresh account), explains constraints (slug validation, plan limits), and provides prerequisites (token type and scope). References sibling tool list_subscription_plans for plan details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_project_tokenAInspect

Mint a PROJECT-scoped API token for a project you own, so an agent can bootstrap a fresh project without the panel (create_project → create_project_token → configure). Attenuated by design: the scopes must be a subset of THIS token's own grant (read is always included), expiry is mandatory (1–90 days, default 30, never "never"), and the minted token — being project-scoped — can never mint tokens itself. Requires an ACCOUNT-scoped token and the config scope. Returns the plaintext exactly once; only its hash is stored.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe slug of a project you own.
labelYesHuman-readable token label (1–100 chars).
scopesNoScopes for the minted token — must be a subset of this token's own scopes. `read` is always granted. Default: read + config.
expiresInDaysNoDays until the minted token expires. Default 30. API-minted tokens always expire.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behaviors beyond annotations: attenuated scopes (must be subset, read always included), mandatory expiry (1–90 days, never 'never'), token cannot mint itself, plaintext returned only once. Annotations only show non-read-only, non-destructive; description adds rich detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph with 5 sentences, all relevant. Front-loaded with purpose. Could be slightly more structured (e.g., bullet points for constraints) but still concise and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, prerequisites, parameter semantics, behavioral constraints, and return behavior. No output schema, but the description explains the single-use return. Complete for an agent to decide and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, but description adds critical meaning: scopes must be a subset of current token's grants and always includes 'read'; expiry is mandatory; token's scope limitation (cannot mint). This goes well beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'mint' and resource 'PROJECT-scoped API token'. Distinguishes from siblings by specifying project ownership and a bootstrapping workflow (create_project → create_project_token → configure). No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides usage context: for bootstrapping a fresh project without the panel, and specifies prerequisites (requires ACCOUNT-scoped token and config scope). Does not explicitly list alternatives or when not to use, but the context implies differentiation from 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.

deactivate_lineA
Destructive
Inspect

Take a line off the data plane (callers get 404) without deleting it — endpoints/targets/config are preserved and it can be reactivated later. A deliberate action; live traffic is never auto-disabled. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineKeyYesThe line key, e.g. "v1".
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds valuable behavioral context: it clarifies that the action is reversible, preserves configuration, and requires edit access. It also explicitly states that deactivation is a deliberate action, not automatic, which complements the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences that convey all essential information. It is front-loaded with the primary action and effect, and every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description is complete. It explains the outcome, what is preserved, that the action is reversible, and the access requirement. There is no missing information that would hinder an agent's correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with a clear description for the only parameter (lineKey). The tool description does not add additional meaning or constraints beyond what is already in the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (taking a line off the data plane), the effect (callers get 404), and explicitly distinguishes it from deletion by noting that endpoints, targets, and config are preserved. It also mentions reactivation, leaving no ambiguity about 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates that deactivation is a deliberate action and that live traffic is never auto-disabled, providing context for when to use the tool. It also mentions that the line can be reactivated later, contrasting with deletion. However, it does not explicitly state when to use this tool over alternatives like activate_line, though the opposite action is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

default_endpoint_templateA
Read-only
Inspect

Return a canonical minimal-valid endpoint JSON for a fresh line. POST it verbatim to create_endpoint to land an immediately-working mock endpoint, then customise. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineKeyYesThe line key, e.g. "v1".
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, and the description confirms 'Read-only.' It adds that the tool returns a template for a mock endpoint and advises customisation, which are important behavioral traits beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with two sentences covering purpose and usage. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input schema (1 param) and no output schema, the description adequately covers the tool's purpose and usage. It could mention what the returned JSON looks like in more detail, but 'canonical minimal-valid endpoint JSON' is sufficient for a template.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter lineKey. The tool description does not add additional meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Return a canonical minimal-valid endpoint JSON for a fresh line' which specifies the action and resource. It also distinguishes its role from siblings like get_endpoint or dry_run_endpoint by linking it to creation workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use this tool: 'POST it verbatim to create_endpoint'. It provides a clear workflow, though it doesn't explicitly mention 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.

delete_credentialA
Destructive
Inspect

Delete a saved credential. Blocked (not a permission or not-found error — a validation error) while any target still references it; repoint or remove those targets first.

ParametersJSON Schema
NameRequiredDescriptionDefault
credentialIdYesUUID of the credential to delete.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false. The description adds that the blocking error is a validation error, not a permissions or not-found error, which is useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states purpose, second adds key usage condition. No extraneous words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and a simple tool, the description adequately covers the operation and a critical constraint. Success behavior is implied, so it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Single parameter 'credentialId' with 100% schema description coverage. The description does not add new semantic meaning beyond the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete a saved credential' with a specific verb and resource, and distinguishes itself by noting a blocking condition. No tautology; it adds value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when the tool is blocked (targets referencing the credential) and what to do (repoint or remove targets first). While not naming alternative tools, it gives actionable context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_endpointA
Destructive
Inspect

Delete an endpoint and its targets. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineKeyYesThe line key, e.g. "v1".
endpointIdYesThe endpoint UUID.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide destructiveHint=true, and the description adds that targets are deleted as well, which is important behavioral context. It also notes the auth requirement, aligning with readOnlyHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no superfluous words. Every sentence adds value: action and requirements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deletion tool, the description covers the main action and its scope (including targets). No output schema exists, so return values are not needed. Could mention irreversibility, but destructiveHint already implies that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already fully describes parameters. The description does not add any additional meaning beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action 'Delete an endpoint and its targets', clearly identifying the verb and resource. It distinguishes from sibling tools like list_endpoints, update_endpoint, and create_endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Requires edit access', providing a necessary prerequisite. While it does not explicitly list when to use or avoid the tool, the nature of deletion makes usage context clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_lineA
Destructive
Inspect

Delete a line and every endpoint under it. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineKeyYesThe line key, e.g. "v1".
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds that it deletes child endpoints and requires edit access, providing useful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action, no extraneous words. Highly concise and structured effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, no output schema, and full annotations, the description covers all essential aspects: action, cascading effect, and access requirement. Completely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with a clear description for lineKey. The tool description does not add further meaning to the parameter, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes a line and all endpoints under it, using a specific verb and resource. It distinguishes from sibling tools like delete_endpoint and create_line.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Requires edit access' but does not provide explicit guidance on when to use this tool versus alternatives like deactivating or archiving. Lacks when-not or alternative suggestions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discard_dlq_entryA
Destructive
Inspect

Permanently delete a DLQ entry without retrying. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRedis stream id from list_dlq.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true, and the description confirms 'Permanently delete', adding nuance 'without retrying'. No contradictions. Description adds value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no extraneous information. Every word is necessary and informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete tool with one parameter and no output schema, the description adequately covers the action, prerequisite, and behavior. Slight room for more detail on return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage for the single parameter 'id' with its own description. The tool description does not add any additional meaning or context beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (permanently delete), the resource (DLQ entry), and distinguishes from siblings like retry_dlq_entry by specifying 'without retrying'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by stating 'without retrying', differentiating from retry_dlq_entry, and notes a prerequisite ('Requires edit access'). However, it does not explicitly state when not to use or detailed alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

downgrade_addonA
Destructive
Inspect

Schedule a tier downgrade for a non-stackable add-on (RPM tier). The current tier stays active until nextRenewalAt; at that point the lower tier is charged and activated. No mid-cycle charge. Use list_addons to find available keys. Returns {addonKey, targetAddonKey, project, effectiveAt}. Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
addonKeyYesCurrent active add-on key to downgrade from.
targetAddonKeyYesTarget (lower) add-on key to downgrade to.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond the annotations: no mid-cycle charge, scheduled activation at nextRenewalAt, and the return format. The annotations (destructiveHint=true) confirm a state change, which is consistent with the description. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a tight paragraph of 4–5 sentences, front-loaded with the core action. Every sentence earns its place by covering timing, constraints, prerequisites, and return value. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two parameters and no output schema, the description fully covers what, when, how (list_addons), prerequisites (owner-only, billing scope), and return value. The annotations provide adequate safety signals. The description is 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds value by referencing list_addons for discovering valid keys and mentions the return fields, which provides operational context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'downgrade', the resource 'non-stackable add-on (RPM tier)', and provides specific timing details (active until nextRenewalAt, then lower tier activates). It distinguishes from sibling tools like subscribe_addon or change_plan by specifying the scheduling and non-stackable nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to use list_addons to find available keys, and states ownership and billing scope prerequisites. While it does not explicitly list when not to use it or compare to alternatives, the context is clear enough 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.

dry_run_endpointA
Read-only
Inspect

Validate an endpoint document without writing it. Returns either {ok: true, resolved: } or {ok: false, errors: {...}}. Pass endpointId to dry-run a PATCH against an existing endpoint; omit it to dry-run a create. No DB write, no queue entry, no billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineKeyYesThe line key.
endpointYesEndpoint document (for create dry-run) or PATCH body (when endpointId is supplied).
endpointIdNoOptional: dry-run a PATCH against this endpoint UUID.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, destructiveHint), description adds return format details and confirms no writes, no queue, no billing. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no waste. First sentence states core purpose; second adds usage variants and side-effect info. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers what, how, return format, and safety guarantees. Missing error structure details but acceptable for a validation tool. Sufficient for agent selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description adds value by explaining the endpointId parameter's role in distinguishing between create and PATCH dry-runs, and describing the return shape.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Validate an endpoint document without writing it', using specific verb and resource. It distinguishes from create_endpoint and update_endpoint by emphasizing no write operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use endpointId (PATCH dry-run) vs omit (create dry-run). Mentions no side effects (no DB, queue, billing), but lacks explicit 'when not to use' or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

duplicate_lineAInspect

Copy a line and all its endpoints/targets/rules into a new line key — build v2 from v1. The copy starts inactive (a draft); edit it, then activate_line when ready. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional name for the copy (defaults to "<source name> (copy)").
lineKeyYesThe source line key to copy.
newLineKeyYesNew line key for the copy, e.g. "v2".
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context: the copy starts as an inactive draft and requires edit access. Annotations only indicate non-readonly and non-destructive, so the description fills gaps without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the primary action and key behavioral details. No redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains the copy's initial state (inactive draft), the need to activate it, and access requirements. It could mention that the original remains unchanged, but overall it is sufficient for an agent to understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters, so the baseline is 3. The description does not add significant meaning beyond the schema, only providing context like 'build v2 from v1' which is already implied by parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool copies a line with all its associated data (endpoints, targets, rules) to a new key, exemplified as building v2 from v1. It distinguishes from sibling tools like create_line (new line) and activate_line (activate draft).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for duplicating an existing line and mentions the need for edit access. It references activate_line as a follow-up, providing context. However, it lacks explicit when-not-to-use guidance or alternatives beyond the implicit sibling distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_billingA
Read-only
Inspect

Get the project's credit balances (paid + testing). Check this first when a 402 (out of credits) or 429 (rate-limited) is unexpected — it is the project's billing-state oracle.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns credit balances and distinguishes paid vs testing, but does not introduce new behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with purpose and contextual usage. No redundant words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool, the description fully covers what it does, what it returns (credit balances), and when to use it. No output schema needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in input schema, so schema description coverage is 100%. Description adds no param info, which is acceptable as none are needed. Baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Get' and resource 'project's credit balances (paid + testing)'. Distinguishes from sibling billing mutations by calling itself the 'billing-state oracle'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises checking this first when encountering 402 or 429 errors, providing clear when-to-use guidance. Could be improved by noting when not to use (e.g., for modifications), but still effective.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_configA
Read-only
Inspect

Get the project's full relay configuration — the exact JSON the EchoRelay Framework consumes for this tenant.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds that it returns the exact JSON consumed by EchoRelay Framework, which is behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, efficient, and directly states the tool's purpose without extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately explains what is returned (full relay configuration in JSON) for a simple get operation. Without an output schema, it provides sufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is 100%, so baseline is 3. The description adds no additional parameter information, which is acceptable since none exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the project's full relay configuration in JSON format, distinguishing it from sibling tools that perform create/update/delete operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving configuration but lacks explicit guidance on when to use this tool over similar tools like get_project.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dlq_entryA
Read-only
Inspect

Get a single DLQ entry by its Redis stream id ({ms}-{seq}, as returned by list_dlq). DLQ entries are retained for up to 30 days from the failure time or until cleared; this returns null if the entry has been purged or discarded.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRedis stream id, e.g. "1717930000000-0".
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and non-destructive. The description adds retention policy and return value when entry is purged/discarded, which is useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose and parameter format, second adds retention and null behavior. No unnecessary words, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description covers input retrieval, retention, and null return. Lacks details on entry fields, but for a simple get tool with annotations, it is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%. The description enhances the parameter by specifying the format (ms-seq) and origin (returned by list_dlq), providing meaning beyond the schema's minimal description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', resource 'DLQ entry', and identifier 'Redis stream id', with format specified. It distinguishes from siblings like list_dlq and discard_dlq_entry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides temporal context (30-day retention) and behavior when entry is purged (returns null), helping the agent understand appropriate use. Does not explicitly list alternatives or when not to use, but is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_endpointA
Read-only
Inspect

Get the full JSON of one endpoint, including its targets, auth keys and attributes.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineKeyYesThe line key, e.g. "v1".
endpointIdYesThe endpoint UUID.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. Description adds detail: returns full JSON including targets, auth keys, attributes. No contradictions, but doesn't discuss permissions 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, concise sentence that front-loads the key action and includes useful output context. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, description covers return structure. Parameters fully described in schema. No missing context for a simple read-only retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions for both parameters. Description does not add additional meaning for parameters; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Get the full JSON of one endpoint' – specific verb and resource. Context includes 'targets, auth keys and attributes', distinguishing from list_endpoints which returns summaries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs siblings like list_endpoints. Implied by description ('full JSON of one endpoint'), but no when-not or alternatives mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_key_policyA
Read-only
Inspect

Returns the project's key policy: defaultKeyTtlDays, maxKeyTtlDays, editorsMayCreateNonExpiringKeys.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds context about the returned fields, providing some behavioral insight beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the purpose. Every word earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description adequately explains what it returns by listing the specific fields. It is complete for a simple read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 does not need to add parameter information, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the project's key policy and lists the specific fields. It uses a specific verb 'Returns' and resource 'project's key policy', but does not explicitly differentiate from sibling tools like set_key_policy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives or when not to use it. For a simple read tool, this is a gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_metricsA
Read-only
Inspect

Aggregate request metrics for this project over a time window — volume, error rate and p50/p95/p99 latency, bucketed for charting. By default the series cover inbound requests; pass targetId to slice over one outbound target's per-attempt rows instead (answers "which target is degraded?"); pass endpointId to slice over inbound rows for a single endpoint (answers "is this endpoint receiving traffic / erroring?"). Pass at most one of targetId / endpointId. Free plans see "hour" and "day"; "week" and "month" require an active paid subscription on the project owner and are silently downgraded to "day" otherwise (the response includes planGated: true when that happens). Returns {window, requestedWindow, planGated, scope, targetId?, endpointId?, bucketSeconds, buckets[], volume[], errors[], p50[], p95[], p99[], totalVolume, totalErrors, errorRate} — series arrays are dense (one point per bucket, zero-filled when no traffic).

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNoTime horizon. Defaults to "day". "week"/"month" require a paid plan; otherwise the server returns "day" with planGated=true.
targetIdNoOptional outbound target UUID (from get_endpoint targets). When set, the series aggregate the per-attempt rows for that target instead of the project-wide inbound rows.
endpointIdNoOptional endpoint UUID (from list_endpoints / get_endpoint). When set, the series aggregate inbound request rows for that endpoint only. Mutually exclusive with targetId.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is safe. The description adds rich behavioral detail: dense series arrays, zero-filling, plan gating with silent downgrade and planGated field, and the exact return structure. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense and informative but structured as a single paragraph without line breaks. It front-loads the core purpose and then covers alternatives and details. Slightly verbose for the amount of info, but every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple scopes, plan gating, return object with many fields) and no output schema, the description thoroughly explains all aspects: parameters, return fields, edge cases, and behavioral nuances. It is fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The description adds significant value by explaining default behavior, mutual exclusivity of targetId/endpointId, and plan gating for the window parameter. This goes well beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool aggregates request metrics (volume, error rate, latencies) over a time window, with bucketing for charting. It distinguishes default inbound scope from targetId and endpointId slices, making the purpose unambiguous and differentiated from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: default use for project-wide inbound metrics, targetId for outbound target degradation, endpointId for specific endpoint traffic. Warns against passing both targetId and endpointId, and explains plan gating for week/month windows. This helps the agent decide when to use this tool vs alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectA
Read-only
Inspect

Get the EchoRelay project this token is scoped to: id, slug, name, caller-facing API base URL, whether the token has edit access, and the request-log hot-tier retention window.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by detailing the returned fields (id, slug, name, API base URL, edit access, retention window), providing behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the purpose and efficiently lists the returned fields. Every word is necessary; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get tool with no parameters and no output schema, this description completely covers what the agent needs to know: what it does and what it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description does not need to explain them. The baseline for no parameters is 4, and the description adds sufficient context by listing returned fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the EchoRelay project this token is scoped to,' followed by a list of specific fields returned. It distinguishes itself from sibling tools like 'list_projects' by focusing on the single project associated with the token.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (when needing the project for the current token) but does not explicitly exclude alternatives or specify when not to use it. Given the context of sibling tools, the usage is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_requestA
Read-only
Inspect

Get one inbound request envelope + every per-target attempt the Consumer made on the way out (success / permanent_failure / retry_scheduled / dlq). Scoped to this project; returns null if no matching row in the hot tier (the project's requestLogRetentionDays window — see get_project).

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYesUUID returned by the relay in 202 responses or visible in list_requests rows.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to restate that. It adds valuable context about null returns for missing hot-tier rows and references get_project for retention window.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, no fluff, front-loaded with the main purpose, and efficiently conveys all necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description fully explains what is returned (envelope + per-target attempts with status types), null behavior, and scope. It is complete for a simple get tool with a single parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for requestId. The tool description does not add additional parameter semantics beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Get' and clearly defines the resource as 'one inbound request envelope + every per-target attempt', differentiating it from list_requests and get_dlq_entry. It also states scoping to project and null return condition, providing full clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (need details of a specific request) and mentions scoping, but does not explicitly state when not to use or list alternatives. However, the context of sibling tools provides clear differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscriptionA
Read-only
Inspect

Get the project owner's current subscription: plan, active flag, period start/end, cancel-at-period-end flag, external Paddle subscription id, and whether a payment method is on file at the provider. Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint true, destructiveHint false), the description adds value by enumerating exact return fields and disclosing ownership and token scope requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, front-loaded sentence with no filler; all information is relevant and efficiently conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description fully covers the tool's behavior and result fields, making it complete for this simple retrieval operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline is 4. Description adds no param info but compensates by detailing output fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the owner's subscription and lists the specific fields returned (plan, active flag, period, etc.), distinguishing it from mutation tools like cancel_subscription.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context by noting 'Owner-only' and the required 'billing scope' token, but does not explicitly contrast with sibling tools like change_plan or start_subscription.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

invite_memberAInspect

Invite a person by email to collaborate on this project. Returns the new invitation record; the invitee receives an email with an accept link. Enforces the seat cap for the plan tier. Owner only.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYesRole to assign on acceptance.
emailYesEmail address to invite.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behaviors: returns invitation record, sends email, enforces seat cap. Annotations are minimal (readOnlyHint=false, destructiveHint=false) and description adds meaningful context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (three sentences) and front-loaded with the primary action. Every sentence adds value without excess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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, no output schema), the description covers the main effects and constraints. Could mention error conditions like seat cap exceeded, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description does not add significant detail beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Invite a person by email'), the resource ('collaborate on this project'), and distinguishes it from sibling tools like remove_member and resend_invite by specifying it creates a new invitation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states 'Owner only', indicating who should use the tool. It provides context about returning a record and sending an email, but does not compare to 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.

list_active_addonsA
Read-only
Inspect

List the project owners currently-active add-ons. Returns [{addonKey, project, monthlyEurCents, activatedAt, nextRenewalAt, consecutiveFailures}, ...]. RPM upgrades are per-project; project` is the slug they apply to (null for account-wide add-ons). Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and destructiveHint=false. The description adds critical context: it requires a token with billing scope and is owner-only. This goes beyond annotations by specifying auth requirements and scope constraints, fully disclosing behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two highly informative sentences: first states purpose and return format, second covers auth and edge cases. No wasted words, front-loaded with key information. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description fully compensates by listing exact return fields, explaining their meanings, and specifying auth requirements. Nothing missing 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With no parameters, schema coverage is 100%. The description adds value by detailing the exact return format and explaining field semantics (e.g., project being null for account-wide add-ons). This compensates for the lack of an output schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists currently-active add-ons with a specific return format. 'List' is the verb, 'active add-ons' is the resource, and it specifies the scope (project owner). This distinguishes it from sibling tools like list_addons or subscribe_addon.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates owner-only access and billing scope requirement. However, it does not explicitly state when to use this vs alternatives like list_addons, nor does it provide when-not-to-use guidance. The context is clear enough but lacks explicit differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_addonsA
Read-only
Inspect

List the optional add-on subscriptions (RPM upgrades, extra team seats, extended log retention, extra file-delivery storage in +5 GB blocks, …). Each entry is monthly, renews every 30 days until cancelled, and carries scope (per_account or per_project). Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by explaining the renewal cycle (monthly, every 30 days until cancelled) and the scope property, providing context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action, and every word adds value. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with no parameters and no output schema, the description fully covers purpose, behavior, and scope. It is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description adds no param-specific meaning. Schema coverage is 100%, meeting the baseline of 4 for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource (list add-ons) and provides concrete examples (RPM upgrades, extra team seats). It clearly distinguishes from siblings like 'list_active_addons' by implying this lists all optional add-ons.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the tool lists optional add-on subscriptions but does not explicitly specify when to use it over siblings like 'list_active_addons' or 'list_subscription_plans'. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_api_keysA
Read-only
Inspect

List the project's inbound API keys (metadata only — the secret plaintext is never returned).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and destructiveHint, but the description adds key behavioral detail: 'the secret plaintext is never returned,' which prevents expectations of sensitive data exposure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, highly concise with no superfluous words. Critical information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output-schema tool, the description fully covers what the tool does and what it returns, leaving no ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, and schema coverage is 100%. The description adds no parameter info because none is needed, meeting the baseline for 0 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 ('inbound API keys'), clearly stating it returns only metadata. This distinguishes it from sibling tools like create_api_key and revoke_api_key.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The purpose is clear enough to infer usage context (read-only listing). However, it does not explicitly state when to use this tool instead of alternatives or mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_audit_eventsA
Read-only
Inspect

List project audit-log entries, newest first. Captures who changed what — lines, endpoints, targets, API keys. Outbound-target auth.token / auth.password are redacted in the diff per the same policy used for endpoint reads. Retention is the auditRetentionDays advertised on get_project (default 365 days); rows older than that are purged by the cleanup job. Returns {total, limit, offset, retentionDays, rows[]} where each row has id, createdAt, actor (email or null), action, entityType, entityId, entityLabel, diff.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size. Default 50.
sinceNoLower bound on createdAt (unix ms). Inclusive.
untilNoUpper bound on createdAt (unix ms). Inclusive.
actionNoExact action match, e.g. "endpoint.updated", "target.created", "key.revoked".
offsetNoPage offset. Default 0.
entityIdNoExact entity id (UUID or stream id depending on entityType).
entityTypeNoExact entity type, e.g. "endpoint", "target", "line", "key".
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral details beyond annotations: redaction of auth tokens, retention policy based on auditRetentionDays, and the exact return structure including fields. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose, then adds necessary details about redaction and retention. It is slightly verbose but every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is comprehensive: explains return format, pagination, redaction policy, and retention. Without an output schema, it fully specifies the response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 7 parameters. The description does not add new parameter-level information but provides overall context. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List project audit-log entries, newest first' and specifies what is captured (who changed what, lines, endpoints, targets, API keys). It distinguishes this tool from sibling list tools by focusing on audit log entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives like list_requests or list_endpoints. It provides context on what is captured but lacks guidance on use cases or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_credentialsA
Read-only
Inspect

List the project's saved credentials — reusable target-auth secrets that can be referenced from any number of targets instead of entering auth inline per target. auth is redacted (secret fields never returned, even encrypted — see create_credential for why).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds important behavioral context: that the 'auth' field is redacted and secret fields are never returned, which goes beyond the annotations and informs the agent of security implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the tool's purpose, and without any unnecessary words. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description covers the purpose and key behavioral detail (redaction). It could mention the return format or pagination, but it is still largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters (100% coverage), so the description does not need to add parameter details. With 0 parameters, baseline is 4, and the description correctly omits any parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'project's saved credentials', and distinguishes the purpose from sibling tools like create_credential and delete_credential by explaining that credentials are reusable and that auth is redacted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (listing credentials), but does not explicitly state when to use this tool versus alternatives such as create_credential or update_credential. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_credit_packsA
Read-only
Inspect

List the prepaid credit packs the project owner can purchase. Read-only. Identify a pack to start_topup by its eurCents.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false; description reinforces 'Read-only' and adds context about prepaid credit packs and eurCents identification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences without fluff, every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool, description covers purpose, behavior, and connects to related tool start_topup. No output schema but context sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters, so description does not need to add parameter info. Mentions 'eurCents' as output key, which is beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'list' and resource 'prepaid credit packs', and specifies the purpose of identifying packs for top-up. Distinct from sibling list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for identifying credit packs for top-up, but does not explicitly address when to use vs alternatives. Adequate 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.

list_dlqA
Read-only
Inspect

List entries currently in this project's dead-letter queue, newest first. One inbound request fans out per-target, so a single failed request may produce several DLQ entries with different targetIds. Returns {total, limit, offset, rows[]} where each row has id (Redis stream id), requestId, targetId, failureReason, failedAttempts, failedAt, payload (the original Consumer queue entry JSON). DLQ entries — including the original request body and headers — are kept for up to 30 days from the failure time or until cleared, then purged automatically; they are never written to a database.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size. Default 50.
offsetNoPage offset. Default 0.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds extensive behavioral details beyond annotations: fan-out per target, return format with field names, retention policy (30 days auto-purge, never written to DB). No contradiction with readOnlyHint=true or destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph that front-loads the core purpose. All sentences add value, though some detail on retention could be streamlined. Still well-structured and not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description fully explains return structure (fields, types, pagination). Covers retention, multiplicity, and disposal rules. Complete for a simple list tool with two parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for both limit and offset. The description adds no further parameter details beyond the schema, but provides useful context like 'newest first' ordering which is not parameter-specific.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List entries') and resource ('dead-letter queue') with ordering ('newest first'). It distinguishes from sibling tools like discard_dlq_entry, get_dlq_entry, and retry_dlq_entry by specifying the listing behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context on when to use: to view DLQ entries, and explains the fan-out mapping that causes multiple entries per request. However, it does not explicitly state when not to use or guide toward alternatives among sibling tools, though siblings are listed separately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_endpointsA
Read-only
Inspect

List the endpoints under one line of the project.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineKeyYesThe line key, e.g. "v1".
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not add behavioral insights beyond the annotations (readOnlyHint=true, destructiveHint=false). It does not mention return format, pagination, or other traits, but annotations already cover safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words, efficiently conveying the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description is minimally adequate but does not explain the output structure or typical usage scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the only parameter lineKey, which is already described in the input schema. The description adds no extra semantic meaning beyond hinting at 'under one line'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and resource (endpoints under one line of the project), distinguishing it from sibling tools that manage individual endpoints or list other resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like get_endpoint or list_lines, nor are there any prerequisites or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_linesA
Read-only
Inspect

List the project's versioned API lines (e.g. v1, v2), each with its endpoint count.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool returns lines with endpoint counts, which is useful behavioral context. However, it does not disclose any other traits like pagination or ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence that immediately conveys the purpose and key detail. There is no unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description adequately explains what it does. It could be slightly improved by noting the return format or any defaults, but is sufficient for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and the input schema is empty with 100% description coverage. With zero parameters, the baseline is 4, and the description does not need to explain parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List'), the resource ('versioned API lines'), and includes an example ('e.g. v1, v2') plus additional detail ('each with its endpoint count'). It effectively distinguishes from sibling tools that create, delete, or activate lines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for viewing lines, but does not explicitly state when to use this tool over alternatives like list_endpoints or list_projects. No 'when not to use' guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_membersA
Read-only
Inspect

List accepted and pending members of this project. Shows name/email, role, and whether the invite has been accepted. Owner only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description adds limited behavioral context beyond 'Owner only' and the output fields. It does not mention ordering, pagination, or limits, which might be expected for a list operation. However, the tool has no parameters, reducing the need for extensive 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences with front-loaded purpose and no unnecessary words. Every part contributes to understanding the tool's function and constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description provides sufficient context: what the tool does, what fields are shown, and who can use it. It does not detail response structure or pagination, but the output is implied. This is adequate for a tool with no parameters and clear annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters and coverage is 100% trivially. Per guidelines, a 0-parameter tool gets a baseline score of 4. The description adds no parameter information, but it is not needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 ('members'), specifies scope ('accepted and pending'), and details output fields ('name/email, role, and whether the invite has been accepted'). It clearly distinguishes from sibling tools like invite_member, remove_member, and set_member_role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states 'Owner only' as a precondition but does not explicitly guide when to use this tool versus alternatives like invite_member or remove_member. Context from sibling tool names suggests some differentiation, but the description itself lacks explicit usage scenarios or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsA
Read-only
Inspect

List the projects on your account (archived included), each with id, slug, name, apiBaseUrl and archived. Requires an ACCOUNT-scoped token (one minted with no project) and the read scope. A project-scoped token cannot call this — use it on its own project's tools instead.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotation (readOnlyHint, destructiveHint), the description adds critical context: it requires a specific token type and scope, and it lists archived projects. This provides operational behavior that annotations alone do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The first sentence covers purpose and output, the second covers authentication and alternatives. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and annotations are provided, the description is fully complete. It explains the action, output fields, authentication requirements, and when not to use it (project-scoped tokens). No additional information is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description does not need to add parameter details. Schema coverage is 100%. The baseline for zero parameters is 4, and the description meets this without additional parameter information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists projects, includes archived ones, and enumerates the returned fields (id, slug, name, apiBaseUrl, archived). It distinguishes itself by specifying that it requires an ACCOUNT-scoped token, implying that other tools may be used with project-scoped tokens.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: requires an ACCOUNT-scoped token with the 'read' scope. It also tells project-scoped token users to use other tools, providing clear guidance on alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_project_tokensA
Read-only
Inspect

List the API tokens scoped to a project you own (any holder): id, label, scopes, createdAt, lastUsedAt, expiresAt, revokedAt — never the secret (only its hash is stored). Requires an ACCOUNT-scoped token and the read scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe slug of a project you own.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful context: it never returns the secret (only its hash is stored), which goes beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences that front-load the action and key details. No 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, readOnly annotation), the description covers return fields, prerequisites, and security disclosure. It is 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'slug' described in the schema. The tool description does not add further meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'API tokens scoped to a project you own'. It enumerates specific fields returned (id, label, scopes, etc.), which distinguishes it from sibling tools like list_api_keys that list different types of credentials.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a requirement ('Requires an ACCOUNT-scoped token and the `read` scope') which provides some guidance, but it does not explicitly state when to use this tool versus alternatives like list_api_keys 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.

list_requestsA
Read-only
Inspect

List inbound API requests the relay has processed for this project, newest first. Hot-tier window is the project's requestLogRetentionDays (see get_project). Optional filters narrow the result. Returns {total, limit, offset, rows[]} where each row has ts (unix ms), requestId, method, path, status, durationMs, targets, creditsDeducted, authType, errorMessage, bytesSent, closeReason (for a streaming request: complete / abortedOrError / byteCap / noValue; empty for non-stream requests).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoSubstring of the request path (e.g. "/webhook"). LIKE-matched.
limitNoPage size. Default 50.
sinceNoLower bound on ts (unix ms). Inclusive.
untilNoUpper bound on ts (unix ms). Inclusive.
methodNoHTTP method (POST, GET, …). Case-insensitive.
offsetNoPage offset. Default 0.
statusNoExact HTTP status code (e.g. 404).
targetOutcomeNoNarrow to requests that produced at least one per-target attempt with this outcome. Use "dlq" to find requests with at least one target that ended up dead-lettered.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, and the description adds the return structure, field explanations (e.g., closeReason for streaming), and pagination. This goes beyond the safety annotations and provides 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first states purpose, second mentions retention window, third describes filters and return format. Every sentence adds value, and the description is front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully details the return shape and fields, including edge cases like closeReason for streaming. It covers pagination implicitly and mentions retention. Sufficient 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.

Parameters3/5

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 context for the 'path' parameter (LIKE-matching), but other parameters are adequately described in the schema. No major additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists inbound API requests for the project, newest first. It specifies the resource, action, and ordering, distinguishing it from sibling tools like 'get_request' which retrieves a single request.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions optional filters and refers to 'get_project' for retention details, providing clear context. It does not explicitly contrast with alternatives, but the sibling list implies when to use this tool versus others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_subscription_plansA
Read-only
Inspect

List the available subscription plans (Free, Pro, Scale) with monthly EUR price, credit allowance, per-project RPM cap, and how many active projects the plan includes. Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and destructiveHint. The description adds value by confirming read-only nature and specifying the exact fields returned, which goes beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with the main purpose. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description fully covers what the tool does and what it returns. It is complete for the simplicity of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description does not need to add parameter information. Schema coverage is 100% trivially. The description is sufficient for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists subscription plans, enumerates the specific plans (Free, Pro, Scale), and details the attributes returned (monthly EUR price, credit allowance, per-project RPM cap, active projects). It effectively distinguishes itself from sibling tools like get_subscription, change_plan, etc., by specifying it's for listing available plans.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes 'Read-only' and implies this tool is for viewing plan options before subscribing. It doesn't explicitly state when not to use it or name alternatives, but the context of sibling tools and the clear purpose make usage reasonably clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_plan_changeA
Read-only
Inspect

Preview what would happen if change_plan were called with this plan: the immediate-charge amount (cents), the next-invoice amount, the effective date, and the kind (applied for in-cycle upgrade, scheduled for at-period-end downgrade / cancel). Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
planYesTarget plan to preview a switch to.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and non-destructive behavior. The description adds value by stating permission requirements (owner-only, billing scope token) and specifying what the preview shows, which aligns with readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences cover all essential information: what it does, what it returns, and authorization needed. No wasted words, well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 no output schema, the description provides complete information: action, return fields, authorization, and implied usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with enum and description for 'plan'. The description adds meaning by explaining the preview outputs and context, going beyond the schema's 'Target plan to preview a switch to.'

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it previews what would happen if change_plan were called with a given plan. It lists the outputs (immediate charge, next invoice, effective date, kind) and distinguishes from the sibling tool change_plan by being a preview action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used before change_plan and specifies owner-only access and token requirements. It does not explicitly list alternatives or when-not-to-use, but the context is clear given the sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_memberA
Destructive
Inspect

Remove a member (accepted or pending) from this project by their member ID or email. Owner only.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail address (alternative to memberId — removes the first matching member).
memberIdNoMember record UUID (from list_members).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds context that removal applies to both accepted and pending members and requires owner authorization, which aids understanding of scope and permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, clear sentence that front-loads the action and includes all essential information without redundancy. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameters, lack of output schema, and annotations covering safety, the description provides sufficient context: what it does, how (two methods), and who can perform it. No gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers both parameters with good descriptions (100% coverage). The tool description only reiterates 'by their member ID or email', adding no new detail 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove a member'), the target (accepted or pending), the means (by member ID or email), and the restriction (Owner only). This distinguishes it from sibling tools like invite_member or set_member_role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies the prerequisite ('Owner only') and implies use for removal, distinguishing from invitation or role change tools. However, it does not explicitly advise when to use email vs memberId, though the schema descriptions help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rename_projectA
Destructive
Inspect

Rename a project you own (the display name only — the slug, which is the identity in URLs / Redis, never changes). Requires an ACCOUNT-scoped token and the config scope. 404-equivalent error when you do not own the slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe new display name (1–100 chars).
slugYesThe slug of a project you own.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds that the slug never changes and details error behavior for non-ownership, providing useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no redundancy: first sentence explains the action and its limit, second gives auth requirements, third covers error handling. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given two simple parameters and no output schema, the description covers purpose, auth, error condition, and parameter implication. No gaps remain for this mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover both parameters (name and slug). The description adds meaning by explaining the slug's permanence and its role in URLs/Redis, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'rename' and resource 'project you own', and distinguishes that only the display name changes while the slug remains immutable. This differentiates it from sibling tools like archive_project or create_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states required token type (ACCOUNT-scoped) and scope ('config'), and describes the error condition (404 when not owning the slug). It does not compare directly with 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.

resend_inviteAInspect

Re-send the invitation email for a still-pending invite, by member ID or email (from list_members). The original accept link is reused. Already-accepted members are rejected. Owner only.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail address (alternative to memberId — targets the first matching pending invite).
memberIdNoMember record UUID (from list_members).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=false and destructiveHint=false. The description adds that the tool reuses the original accept link, rejects already-accepted members, and is owner-only, providing behavioral context beyond the minimal annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no waste. First sentence states purpose and parameters, second adds detail, third adds constraint. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 optional parameters, no output schema, and minimal annotations, the description covers purpose, parameters, constraints, and side effects (reuses link). It could be slightly improved by mentioning behavior when multiple pending invites exist for the same email, but is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for both parameters (email, memberId). The tool description adds minimal extra meaning beyond reinforcing that they are alternatives and that memberId comes from list_members, earning a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action (re-send invitation), the target (still-pending invite), the parameters (member ID or email), and constraints (reuses original link, rejects accepted, owner only). It effectively distinguishes from sibling tools like invite_member and list_members.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use (for re-sending pending invites) and when not to use (already-accepted members are rejected). It also notes the owner-only permission, but does not explicitly compare to alternatives like invite_member for new invites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resume_addonAInspect

Resume (un-cancel) a pending-cancel add-on whose paid-through cycle has not yet ended. Clears the cancellation so the add-on renews normally at the next cycle boundary. No new charge — the cycle was already paid. Stackable add-ons cannot be resumed; buy a new unit instead. Returns {addonKey, project, nextRenewalAt, resumed}. Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
addonKeyYesAdd-on key to resume (e.g. "log_retention", "rpm_5000").
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral traits beyond annotations: no new charge, cycle already paid, clears cancellation so renewal happens normally, and returns specific fields. Annotations only indicate readOnlyHint=false and destructiveHint=false, so the description adds value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences with no wasted words. The main action is front-loaded, and each sentence adds critical information: what it does, when to use/not use, side effects, return fields, and access requirements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (1 required parameter, no enums, no output schema), the description fully covers purpose, usage, behavior, and parameters. It includes return fields despite no output schema, ensuring the agent can interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

For the single parameter (addonKey), the description provides examples (e.g., log_retention, rpm_5000) that add meaning beyond the schema description, which only says 'Add-on key to resume'. Schema coverage is 100%, so it meets and exceeds the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (resume an add-on), the specific resource (pending-cancel add-on with paid-through cycle not ended), and distinguishes from alternatives like buying a new unit for stackable add-ons.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when not to use (stackable add-ons cannot be resumed; buy a new unit), provides prerequisites (owner-only, requires billing scope token), and implies when to use (for pending-cancel add-ons with paid-through cycle not ended).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

retry_dlq_entryAInspect

Re-enqueue a DLQ entry to the main relay stream and delete it from the DLQ. A replay is billed like any relay — it charges the entry's original credit cost to the project before re-sending; if the balance is too low the entry stays in the DLQ and this returns an insufficient-credits error (top up and retry). Succeeds if the entry exists, errors if it's already gone (retried or discarded). Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRedis stream id from list_dlq.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses billing behavior, error handling, and access requirements. It explicitly states that the entry is deleted from the DLQ upon success, which is a behavioral trait not captured by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at four sentences, with the primary action stated first. Every sentence adds necessary information without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description fully covers behavior: success, failure conditions, billing, access. It provides a complete mental model for an 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for its single parameter 'id', describing it as 'Redis stream id from list_dlq.' The description does not add further 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Re-enqueue a DLQ entry to the main relay stream and delete it from the DLQ.' It uses a specific verb (re-enqueue) and resource (DLQ entry), distinguishing it from siblings like 'discard_dlq_entry' (which discards) and 'list_dlq' (which lists).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use: to retry a failed message. It provides context on billing (charges credit cost) and error conditions (insufficient credits, entry already removed). It also specifies a prerequisite ('Requires edit access') and implicitly suggests that discarding is the alternative. This gives clear guidance for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reveal_rotation_successorA
Read-only
Inspect

One-shot retrieval of the plaintext for a successor minted by the auto-rotation scheduler (not by rotate_api_key — that returns its own plaintext directly). Decrypts the at-rest ciphertext, returns it once, then destroys it; a second call errors. Only available while the predecessor still has an unrevealed successor.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyIdYesUUID of the predecessor key whose successor to reveal.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses important behavioral traits: decrypts and returns once then destroys, second call errors. However, it contradicts the annotations which mark readOnlyHint=true and destructiveHint=false. The tool is destructive, so the annotations are misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no wasted words. It front-loads the main action and includes essential constraints (one-shot, condition) efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return (plaintext) but not its format or other error conditions beyond second call. It covers the tool's unique behavior and condition well, but lacks return format details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter keyId. The description adds 'UUID of the predecessor key whose successor to reveal,' which matches the schema. No additional semantics are provided beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the plaintext for a successor minted by auto-rotation scheduler, distinguishing it from rotate_api_key which returns its own plaintext directly. The verb 'one-shot retrieval' is specific and the resource is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a condition ('only available while the predecessor still has an unrevealed successor') and contrasts with rotate_api_key, offering guidance on when to use this tool. However, it could be more explicit about 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.

revoke_api_keyA
Destructive
Inspect

Manual hard revoke. The key stops authenticating on the next request. Owner anywhere, editor on own keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyIdYesUUID of the key to revoke.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds valuable behavioral context: 'Manual hard revoke', 'stops authenticating on next request', and authorization constraints ('Owner anywhere, editor on own keys').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences conveying purpose, effect, and authorization without any wasted words. Front-loaded with the key action 'Manual hard revoke'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter destructive action with clear annotations, the description effectively covers the effect and authorization. It is missing potential notes on irreversibility or audit logging, but overall sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% with a clear description for keyId. The tool description does not add any additional meaning beyond what the schema already provides, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'Manual hard revoke' for API keys, with specific verb and resource. It differentiates from siblings like revoke_project_token by explicitly mentioning API key revocation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies immediate revocation ('stops authenticating on next request') but lacks explicit guidance on when to use this tool versus alternatives like rotate_api_key or deactivate. No when-not conditions or alternative names provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

revoke_project_tokenA
Destructive
Inspect

Revoke a PROJECT-scoped API token on a project you own — any holder's, not just your own (the account-owner kill switch for a leaked or retired integration token). Soft-revoke: the row stays for traceability and the token is rejected immediately. Idempotent. Requires an ACCOUNT-scoped token and the config scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe slug of a project you own.
tokenIdYesThe token UUID (from create_project_token or list_project_tokens).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond annotations: soft-revoke (row stays for traceability), immediate rejection, idempotency, and auth requirements. Annotations indicate destructiveHint: true, which aligns with the revoke action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences that front-load the main purpose and include necessary details in a structured way without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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, no output schema) and annotations, the description fully covers purpose, usage, behavioral traits, and parameter sources, making it complete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds context that tokenId comes from create_project_token or list_project_tokens, providing extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool revokes a PROJECT-scoped API token, specifying it can revoke any holder's token not just the user's own, and distinguishes it from sibling tools like revoke_api_key (for API keys) and create_project_token (creation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use: as an account-owner kill switch for leaked or retired tokens. It mentions required authentication (ACCOUNT-scoped token and config scope) but does not explicitly list when not to use or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rotate_api_keyA
Destructive
Inspect

Mint a linked successor for an existing key. Returns the successor plaintext exactly once — store it now. The predecessor stays valid through its overlap window so callers can swap without downtime. Owner anywhere, editor on own keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyIdYesUUID of the key to rotate.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses critical behavioral traits beyond annotations: the successor plaintext is returned exactly once (must store immediately), the predecessor remains valid during an overlap window for zero-downtime rotation, and permission requirements. This adds value beyond the readOnlyHint=false and destructiveHint=true annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with three short sentences, each conveying essential information: action and return behavior, overlap window, and permissions. No redundant text; front-loaded with key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description fully explains the return value (successor plaintext exactly once) and the rotation behavior (overlap window). Permissions are covered. For a single-parameter tool, this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'keyId' has a schema description ('UUID of the key to rotate') which is clear. The tool description does not add further semantics for this parameter. Since schema coverage is 100%, baseline score 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'mint a linked successor for an existing key' and identifies the resource (API key). It distinguishes from sibling tools like create_api_key (which creates a new key) and revoke_api_key (which revokes immediately) by emphasizing the rotation with overlap window.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool: to rotate a key without downtime, as the predecessor stays valid through an overlap window. It also mentions permissions ('Owner anywhere, editor on own keys'). It could be improved by explicitly stating when not to use (e.g., if immediate revocation is needed) but overall provides good context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_burst_opt_inA
Destructive
Inspect

Enable or disable the auto-decaying burst window for live traffic. When enabled, brief spikes a little above your steady RPM cap are absorbed at the normal credit rate (no surcharge, no burst SKU) instead of being rejected. Sustained overage decays back to your steady cap; headroom returns once traffic cools below the cap or you add RPM. Burst usage is tracked so you can see when to upgrade. Default is off (steady cap is a hard 429). Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYestrue to enable the burst window; false to disable.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=true), the description adds behavioral context: how burst works, decay, headroom return, usage tracking, and the default. It does not contradict annotations; the destructive hint aligns with the state change. It could be improved by noting that disabling may cause 429 errors for spikes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (about 100 words), front-loads the purpose, and is well-structured. Every sentence adds value with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one boolean parameter, no output schema), the description covers the behavior, default, tracking, and access requirements completely. No additional context is needed for an AI agent to correctly select and invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, providing basic meaning. The description adds significant value by explaining the implications of enabling (absorb spikes, decay, no surcharge) and disabling (hard 429). This enriches the parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it enables or disables the auto-decaying burst window for live traffic. It uses a specific verb-resource pair and distinguishes this tool from siblings, as no other sibling tool does this.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when to use (to absorb brief spikes) and the default state (off). It mentions 'Requires edit access' as a prerequisite. It doesn't explicitly say when not to use, but the context implies that for a hard cap, leave it disabled. No alternatives are mentioned, but given the uniqueness, it's sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_docs_sharedA
Destructive
Inspect

Turn the line's public OpenAPI docs on or off. When enabled, the line's spec is published at docs.{baseDomain}/{slug}/{lineKey} (and …/openapi.json); when disabled those URLs return 404. The docsShared field on each line read (list_lines) reflects the current state. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYestrue to publish the line's public docs; false to take them down.
lineKeyYesThe line key, e.g. "v1".
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, and description adds context: requires edit access, URLs publish/404, and state reflected in list_lines. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise, three sentences front-loaded with the main action. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters, no output schema, and good annotations, description covers behavior, access requirements, and how to verify state. No gaps for a simple toggle tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. Description does not add extra meaning beyond schema, which is adequate. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool toggles public docs on/off for a line, using specific verbs and resource ('Turn the line's public OpenAPI docs on or off'). This distinguishes it from siblings like activate_line/deactivate_line which affect line state, not docs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains the effect (URLs serve or return 404) and how to check the state via list_lines. It implies this is the only tool for docs sharing, but does not explicitly state when to use vs alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_key_policyA
Destructive
Inspect

Owner-only. Edit the project's key policy. Only fields present in the patch are touched. Editors calling this get an error — use get_key_policy to read.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxKeyTtlDaysNo
defaultKeyTtlDaysNo
editorsMayCreateNonExpiringKeysNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructive hint and no read-only, so the description adds value by specifying the partial update behavior ('Only fields present in the patch are touched') and the error condition for editors. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the important ownership constraint, and conveys the core behavior and error guidance without unnecessary words. Every sentence adds distinct value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 optional parameters, no output schema, and annotations present, the description covers ownership and partial update but lacks parameter explanations and return value expectations. It provides sufficient context for basic usage but leaves gaps for fully informed invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description does not explain the individual parameters (maxKeyTtlDays, defaultKeyTtlDays, editorsMayCreateNonExpiringKeys). It only mentions that 'only fields present in the patch are touched,' which implies partial updates but does not define what each field controls. This is insufficient for parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action ('Edit the project's key policy') and specifies the actor ('Owner-only'). It distinguishes itself from the sibling tool 'get_key_policy' by explicitly contrasting reading vs. editing, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on who should use it ('Owner-only') and who should not ('Editors calling this get an error'), with a direct recommendation to use an alternative tool ('use get_key_policy to read'). This clearly defines when and 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.

set_member_roleA
Destructive
Inspect

Change a member's role between editor, viewer, and billing. Identify the member by their member ID or email (from list_members); the project owner's own role cannot be changed. Returns the updated member record. Owner only.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYesThe new role.
emailNoEmail address (alternative to memberId — targets the first matching member).
memberIdNoMember record UUID (from list_members).
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint: true), the description adds behavioral context: it returns the updated member record, specifies that it is owner-only, and notes the restriction on changing the owner's role. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: first sentence states purpose and scope, second gives identification and constraint, third states return and authorization. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description mentions return type. It covers all critical aspects: action, identification, limitations, authorization. Could optionally mention error cases (e.g., member not found) but overall complete for a role mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all parameters have clear descriptions. The description reiterates that email and memberId are alternatives but does not add meaning beyond the schema. The role parameter's enum is already explicit. Baseline contribution is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'change' and resource 'member's role' with enumerated values (editor, viewer, billing). It clearly distinguishes from sibling tools like invite_member and remove_member by stating the action is role modification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides identification methods (member ID or email from list_members) and a key constraint (project owner's own role cannot be changed). It implies when to use this tool (when role needs updating) but does not explicitly contrast with alternatives, though the sibling list makes the distinction obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_subscriptionAInspect

Begin a new Pro or Scale subscription for the project owner. Returns {checkoutUrl, plan} — surface the URL to the human for approval. Errors if the owner is already on an active paid plan (use change_plan instead). Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
planYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=false, but description adds critical behavioral detail: returns a checkout URL requiring human approval, error conditions, and auth requirements. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: purpose and return value, error condition with alternative, and access requirements. No wasted words, well front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter set, presence of annotations, and lack of output schema, the description fully covers purpose, usage, return format, error scenario, and prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage for the single 'plan' parameter. The description does not elaborate on the parameter beyond its enum values; it provides no additional semantics or usage guidance for the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Begin a new Pro or Scale subscription for the project owner' with a specific verb and resource. It distinguishes from siblings by flagging the error case and directing to 'change_plan' when the owner is already on a plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (new subscription), when not to (already on active paid plan), alternative tool (change_plan), and access requirements (owner-only, billing scope).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_topupAInspect

Begin a credit-pack top-up for the project owner. Pass the packs eurCents(from list_credit_packs). Returns{checkoutUrl, credits, eurCents, directCharge}or{transactionId, credits, eurCents, directCharge:true}` on subsequent MCP purchases. Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
eurCentsYesPack price in EUR cents, matching a pack returned by list_credit_packs.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate non-read-only and non-destructive. The description adds valuable behavior: the return type is conditional ('Returns {checkoutUrl...} or {transactionId...} on subsequent MCP purchases'), and it explains the owner/billing requirements. This goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words. The first sentence states the action, the second adds constraints and return details. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter tool with no output schema and moderate annotations, the description covers prerequisites, input source, return variants, and access restrictions. No gaps for successful invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description repeats the schema's parameter description ('Pass the pack's eurCents from list_credit_packs'). No additional semantic value provided beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('begin') and resource ('credit-pack top-up'), clearly stating it initiates a top-up for the project owner using a pack's eurCents. It distinguishes from siblings like list_credit_packs by focusing on the start action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states conditions: 'Owner-only; requires a token minted with the billing scope' and directs to list_credit_packs for the input. It does not mention alternatives for when not to use, but the constraints are clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

subscribe_addonAInspect

Subscribe the project owner to a monthly add-on (RPM upgrade, team seat, extended log retention, extra file storage in +5 GB blocks, …). Charges the saved payment method immediately, then auto-renews every 30 days until unsubscribe_addon — or until the subscription ends, after which the already-paid cycle stays active to its own end date and stops without further charges. Requires an active Pro/Scale subscription and a saved PM. RPM upgrades (rpm_*) are per-project and apply to THIS project automatically. Returns {addonKey, project, monthlyEurCents, transactionId, activatedAt, nextRenewalAt}. Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
addonKeyYesStable key from list_addons (e.g. "team_member", "rpm_2000", "log_retention", "file_storage").
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate non-read-only and non-destructive, but the description goes far beyond: it details immediate payment, 30-day auto-renewal, end-of-subscription behavior (prepaid cycle continues), prerequisites (active Pro/Scale, saved PM), permissions (owner-only, billing scope), and return object fields. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at 4 sentences, front-loading the action and then covering details logically. Every sentence adds essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the operation (charging, auto-renewal, cancellation, prerequisites, permissions), the description covers all essential aspects. There is no output schema, but the return format is explicitly described. Sibling tools provide context for related operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description of `addonKey` referencing `list_addons` and examples. The description adds extra value by listing add-on types and noting that RPM upgrades are per-project. This exceeds the baseline of 3 for complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Subscribe' and the resource 'project owner to a monthly add-on', with concrete examples of add-on types. It distinguishes itself from the sibling `unsubscribe_addon` by mentioning the cancellation mechanism, and also notes the owner-only restriction and billing scope requirement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides conditions for use: requires an active Pro/Scale subscription and a saved payment method. It explains when to stop (`unsubscribe_addon`) and notes that RPM upgrades apply to the current project. However, it does not explicitly compare with other add-on tools like `downgrade_addon` or `resume_addon`, leaving some ambiguity about when to use this tool vs. those.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unarchive_projectAInspect

Restore an archived project you own to the data plane. Restoring consumes one of your plan's active-project slots, so at the limit this returns an error telling you to archive another project or upgrade. Idempotent for an already-active project. Requires an ACCOUNT-scoped token and the config scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe slug of a project you own.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond annotations by describing idempotency, quota consumption, and auth requirements. No contradiction with annotations (readOnlyHint=false, destructiveHint=false).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences each serving a distinct purpose: action, quota constraint, idempotency+auth. No waste, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key aspects (action, quota, idempotency, auth) for a tool with one parameter and no output schema. Minor omission of explicit return indication, but not necessary given simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description adds no additional meaning to the slug parameter 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Restore an archived project you own to the data plane,' which is a specific verb+resource combination. It clearly distinguishes from sibling tools like archive_project and rename_project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear guidance: use to restore archived project, mentions slot consumption and error at limit, notes idempotency for already-active projects, and specifies required auth (ACCOUNT-scoped token and config scope).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unsubscribe_addonA
Destructive
Inspect

Cancel an active add-on subscription. Stops future charges; the current cycle stays active until expiry. RPM upgrades are cancelled for THIS project. Returns {addonKey, project, cancelledAt}. Owner-only; requires a token minted with the billing scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
addonKeyYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark destructiveHint=true and readOnlyHint=false. Description adds valuable context: stops future charges, current cycle remains active, RPM upgrades cancelled, and return format. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose. Every sentence adds information: what it does, effects, and requirements/return. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, behavioral effects, return format, and permissions. Lacks explanation of what 'current cycle stays active until expiry' implies for the user, but overall sufficient given the tool's simplicity and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only parameter addonKey is undocumented in description. Schema has 0% description coverage, so description should compensate, but it only implies the key identifies the add-on. No explicit meaning or constraints added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Cancel an active add-on subscription' with specific verb and resource. Distinguishes from siblings like subscribe_addon or downgrade_addon by mentioning RPM upgrades are cancelled and current cycle stays active until expiry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly specifies owner-only and required billing scope. Implicitly indicates when to use (to cancel an add-on), but does not explicitly state when not to use or compare to alternatives like downgrade_addon.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_credentialA
Destructive
Inspect

Rename a credential and/or replace its auth. Omit a secret field (or the whole auth object) to keep the existing value — the vault can never show a secret back to confirm it, so leaving it out means "unchanged," not "cleared."

ParametersJSON Schema
NameRequiredDescriptionDefault
authNoSame shape as create_credential. Omit to keep the existing auth entirely.
nameNoNew name. Omit to keep the existing one.
credentialIdYesUUID of the credential (from list_credentials).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the important behavior that omitting secret fields means 'unchanged' and explains why (vault can't show secrets back). Annotations already indicate destructiveness, so the description adds extra context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the tool's purpose, and every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately covers the mutation behavior and partial update semantics. It does not describe return values, but that is not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are documented. The description adds meaningful nuance: 'Omit to keep existing' for both auth and name, which goes beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific actions ('rename a credential and/or replace its auth'), distinguishing it from create_credential and delete_credential.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on when to use (rename or change auth) and crucial behavior for omitting fields, but does not explicitly mention when not to use or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_endpointA
Destructive
Inspect

Update an endpoint. The patch is merged field-by-field onto the current endpoint — pass only the fields you want changed. Requires edit access.

ParametersJSON Schema
NameRequiredDescriptionDefault
patchYesPartial endpoint document — same shape as create_endpoint, every field optional.
lineKeyYesThe line key.
endpointIdYesThe endpoint UUID.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false and destructiveHint=true, so the description's 'Update' is consistent. It adds value by detailing the merge behavior and access requirement. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancy. The most critical information (action, merge behavior, access) is front-loaded and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with full schema coverage and annotations, the description is sufficient. It explains the key behavior (patch merge) and access. No output schema, so return value is not expected.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 3 parameters thoroughly (100% coverage). Description reinforces the partial update concept but doesn't add meaning beyond the schema descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Update an endpoint' with a specific verb and resource. It explains the partial-update semantics (patch merge) and mentions access requirements, distinguishing it from siblings like create_endpoint and delete_endpoint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'pass only the fields you want changed' and 'Requires edit access', guiding usage. However, it doesn't explicitly state when not to use (e.g., for creation or deletion), though context with siblings makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources