Meta Council
Server Details
Multi-expert decision intelligence with transparent synthesis and auditable workflows.
- 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.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 124 of 124 tools scored. Lowest: 2.3/5.
Every tool targets a distinct resource and action, with detailed descriptions that clearly separate overlapping domains (e.g., consulting vs. marketing vs. outreach). Even within the same domain, tools like 'create_consulting_deliverable' and 'create_consulting_document_revision' are unambiguous due to their specific nouns.
All tools follow a consistent verb_noun snake_case pattern (e.g., 'create_invoice', 'get_deal', 'list_agents'). The few exceptions like 'locus_determine_from_scores' still adhere to the verb_noun structure and do not break the pattern.
With 124 tools, the server is massively over-scoped for typical MCP use. The tool count far exceeds the '50+ extreme mismatch' threshold, making it nearly impossible for an agent to efficiently navigate or select the right tool without extensive context. Even a large platform should consolidate or expose fewer tools.
The tool surface covers CRUD and lifecycle operations across at least 10 domains (sales, consulting, marketing, outreach, accounting, workflows, ticketing, API keys, feedback, platform metrics). Each domain appears to have no obvious gaps—e.g., invoicing includes create, update, send, mark paid, void; ticketing includes create, update, archive, dependencies, batch, scenarios, validation.
Available Tools
150 toolsaccount_exportAccount ExportARead-onlyIdempotentInspect
Export this account's own data across every table the account owns, as the same JSON envelope the REST route returns. The set of tables served is derived from the same ownership reflection that decides what an account deletion removes, so a table the account can destroy is a table it can also read. Credentials never appear: columns held encrypted at rest are withheld unless recorded as the account's own content, and password hashes, reset and verification tokens, and API key hashes are withheld by name. Some tables are deliberately excluded -- see docs/ACCOUNT_DATA_EXPORT.md, and note that the coverage block on every response lists exactly which models are served and which are excluded with their reasons. Artifacts are described by their metadata rows rather than inlined. Bounded rather than streamed: each model reports truncated and the envelope reports complete, so narrow to one model and raise rows_per_model rather than re-reading everything. This is a data export, not an erasure request and not a claim of regulatory compliance. Requires authentication and the account:export scope.
| Name | Required | Description | Default |
|---|---|---|---|
| models | No | Model names to narrow to, which is how a caller pages a table that truncated without re-reading the others. Omit to export every model the coverage block lists as served. | |
| rows_per_model | No | Row ceiling applied to each model separately. Defaults to 500, maximum 5000. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and the description is fully consistent (no contradiction). Beyond that, it adds rich procedural detail: which credential fields are withheld by name, the ownership-reflection derivation of served tables, artifact metadata behavior, the coverage-block contract, and auth requirements. This is exactly the kind of context that prevents a caller from misinterpreting the result set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Eight dense, information-carrying sentences with zero filler. It front-loads the core operation, then flows logically through exclusions, security withholdings, paging behavior, and non-goals. At ~250 words it's long, but every sentence carries unique weight — the one knock is that an agent must read to the very end to find the auth requirement ('Requires authentication and the account:export scope').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a security-sensitive, paginated export tool with two parameters and a rich output schema, the description covers all bases: data scope, credential redaction, explicit exclusions with a documentation pointer, the paging protocol, and disclaimers about non-equivalence to erasure or compliance. The only marginal omission — rate limits or response sizes beyond rows_per_model — doesn't rise to a missing gap. A 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so per rubric the baseline is 3. The description adds real value by explaining the truncation contract — 'narrow to one model and raise rows_per_model rather than re-reading everything' — which clarifies both the `models` and `rows_per_model` parameters' operational meaning. It doesn't add syntax details for the `models` enum values, so it's a strong 4, not a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Excellent verb+resource clarity: 'Export this account's own data across every table the account owns' is specific and immediately scopes the operation. The description even explains the envelope format and table derivation. However, while it's clear about what sets this tool apart from generic lookups, it never explicitly distinguishes it from siblings like audit_export — the rubric's 5 requires exactly that kind of explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong paging and execution guidance: 'Bounded rather than streamed: each model reports truncated and the envelope reports complete, so narrow to one model and raise rows_per_model rather than re-reading everything.' It also clearly states what this is NOT for ('not an erasure request and not a claim of regulatory compliance') and points to docs for exclusions. It stops short of naming alternative tools for specific scenarios, so a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_invoice_line_itemAdd Invoice Line ItemAInspect
Add a billable line item to a draft or sent invoice; totals are recomputed automatically. Blocked once paid/void. invoice_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| quantity | No | Default 1. | |
| invoice_id | Yes | ||
| unit_price | Yes | ||
| description | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations: it mentions that totals are recomputed automatically and that the operation is blocked once the invoice is paid or void. Since annotations are all false and don't provide this level of detail, the description enriches the agent's understanding of the tool's side effects and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that convey the essential purpose, behavior, and a key restriction. It is front-loaded with the core action and avoids any unnecessary words or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple tool with an output schema, the description covers the main points: what it does, when it's allowed, and a key automatic behavior. It doesn't explain the response format, but that's covered by the output schema. It could mention error scenarios beyond the paid/void block, but overall it is complete enough for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has low description coverage (only quantity has a default note). The description adds some meaning by labeling the line item as 'billable' and mentioning unit_price implicitly, but it does not explicitly explain the purpose of each parameter. It confirms that invoice_id is required, which helps, but the semantics of description, unit_price, and quantity are left mostly to the schema's names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: adding a billable line item to a draft or sent invoice. It distinguishes this from sibling tools like create_invoice and update_invoice by specifying the specific action (add line item) and the target resource (existing invoice). The scope is further clarified with 'draft or sent invoice'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need to add a line item to an existing invoice, as opposed to creating or updating the invoice itself. It does not explicitly name alternative tools, but the context is clear from the sibling list. It also provides a clear exclusion ('Blocked once paid/void'), which helps agents understand 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.
add_outreach_leadAdd Outreach LeadAInspect
Add a single lead to the authenticated user's outreach book. Returns the new lead id. Provenance is stamped source="agent" server-side. Does not send any email. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Lead email address (required). | ||
| notes | No | Optional free-text notes. | |
| domain | No | Optional company domain. | |
| company | No | Optional company name. | |
| segment | No | Optional segment label. | |
| contact_name | No | Optional contact full name. | |
| contact_title | No | Optional contact job title. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) but no destructive hint. Description adds 'Provenance is stamped source="agent" server-side' and 'Requires authentication,' providing behavioral context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: action, return value, and important behavioral notes. Front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with an output schema, the description is complete: it explains what is created, the return value, side effects (no email sent), and auth requirement. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description adds minimal parameter-specific detail, but the schema fully covers semantics, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Add a single lead to the authenticated user's outreach book.' This is a specific verb-resource combination, and it distinguishes from siblings like search_outreach_leads and update_outreach_lead_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use it: adding a lead. It mentions 'Does not send any email' and 'Requires authentication,' providing clear context. It does not explicitly state when not to use it, but the purpose is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
advance_workflowAdvance WorkflowADestructiveInspect
Advance a workflow past a human checkpoint — approve or reject the paused step so the pipeline continues. Use the session id from run_workflow / get_workflow_session. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optional reviewer notes recorded with the decision. | |
| action | Yes | Explicit checkpoint decision: 'approve' or 'reject'. | |
| session_id | Yes | The workflow session id (must be awaiting a checkpoint). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, indicating mutation. The description adds that the pipeline continues, which implies forward progress but lacks details on side effects (e.g., irreversibility). The authentication requirement is noted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded: first sentence states purpose, second provides usage hint. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description adequately covers purpose, parameter context, and authentication. It does not explicitly address error states (e.g., session not awaiting checkpoint), but the schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining where to get session_id and that action is a 'checkpoint decision', enhancing meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'advance', the resource 'workflow', and the specific action 'approve or reject the paused step'. It distinguishes from sibling approval tools (e.g., approve_content_asset) by specifying the workflow checkpoint context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells where to get the session id ('from run_workflow / get_workflow_session') and requires authentication. However, it does not explicitly mention when not to use this tool (e.g., for content approvals) or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_consulting_deliverableApprove Consulting DeliverableAInspect
Approve one submitted internal deliverable and record approver evidence. Requires consulting:approve and never publishes or sends it.
| Name | Required | Description | Default |
|---|---|---|---|
| deliverable_id | Yes | ||
| expected_version | Yes | ||
| expected_content_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which are all false), the description adds that the tool 'requires consulting:approve' and 'never publishes or sends it', clarifying that it is a mutation but with limited external side effects. However, it could further detail what happens upon approval (e.g., status changes).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes essential constraints without extraneous text. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the three required parameters with no schema descriptions, the description fails to provide necessary guidance on how to use them effectively. Although an output schema exists, the lack of parameter semantics leaves the tool incomplete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description does not explain any of the three required parameters (deliverable_id, expected_version, expected_content_hash). The agent is left guessing about their purpose and format beyond what the schema provides, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Approve' and the resource 'one submitted internal deliverable', and it distinguishes from sibling tools like 'approve_consulting_document_revision' and 'submit_consulting_deliverable' as it explicitly says 'submitted internal deliverable' and 'never publishes or sends it'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for internal approval but does not explicitly state when to use it versus alternatives. It mentions the required permission 'consulting:approve' but does not name alternative tools or conditions for when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_consulting_document_revisionApprove Consulting Document RevisionAInspect
Approve and lock one exact proposal/SOW revision. Requires the separate consulting:approve scope and never publishes or shares it.
| Name | Required | Description | Default |
|---|---|---|---|
| document_id | Yes | ||
| expected_version | Yes | ||
| expected_content_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable context beyond annotations: the tool 'locks' the revision (implying immutability) and requires a specific scope. Annotations already indicate it's not read-only (false) but don't cover locking or scope, so the description enriches transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no redundancy. Every sentence adds essential information: action and constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits details about parameter semantics, state changes after approval (e.g., immutability implications), and return behavior despite the presence of an output schema. For a mutation tool with 3 undocumented required parameters, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain any parameter. Critical parameters like expected_content_hash (a 64-char hex) lack meaning, leaving the agent to guess their purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Approve and lock' and the resource 'one exact proposal/SOW revision', differentiating it from siblings like approve_consulting_deliverable or create_consulting_document_revision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite ('requires the separate consulting:approve scope') and a negative constraint ('never publishes or shares it'), offering clear context. However, it lacks explicit guidance on when to use this tool versus alternatives like approve_consulting_deliverable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_content_assetApprove Content AssetAInspect
Approve a submitted owned revision and attest to its exact content hash. Requires marketing:approve, separate from draft authority.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| asset_id | Yes | Full UUID from the matching list tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (no readOnlyHint, destructiveHint, etc.), so the description carries the burden. It discloses that the tool requires specific authorization and attests to a content hash, implying a write operation with verification. However, it does not explain post-approval effects (e.g., status change, workflow progression).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences: first states the action and its precise meaning, second specifies the authorization requirement. No wasted words, and critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (2 params, 1 required) and the presence of an output schema, the description covers the core action and auth but omits explanation for the 'notes' parameter. This leaves a gap for an agent: why would notes be provided, and what is their impact? The description 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only asset_id described). The description adds that asset_id refers to 'a submitted owned revision', which aligns with the schema hint 'Full UUID from the matching list tool'. The 'notes' parameter lacks any description, leaving the agent uncertain about its purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Approve' with the specific resource 'content asset', and distinguishes from siblings like 'reject_content_asset' by mentioning 'submitted owned revision' and 'exact content hash'. The permission clarification further differentiates it from other approve tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly specifies the required permission 'marketing:approve, separate from draft authority', guiding the agent on when to use this tool. However, it does not provide direct exclusions or alternatives for cases where the user lacks permission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive_saved_viewArchive Saved ViewAInspect
Retire one of YOUR OWN saved views without destroying it: it drops out of the default listing and execute_saved_view refuses it, but its definition is kept and restore_saved_view brings it back unchanged. Prefer this over delete_saved_view. Idempotent -- archiving twice keeps the original archive time. Archiving is your own working state and does not hide the view from a team it is shared with. Requires authentication and the tickets:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| view_id | Yes | The view's id, from list_saved_views. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Idempotent' while annotations set idempotentHint: false, which is a direct contradiction. This undermines trust in the description's behavioral claims. Although it adds useful details like team visibility and auth scope, the contradiction forces a low score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph but every sentence adds value (purpose, idempotency, team effect, auth). It is front-loaded with the main action and remains readable, though slightly longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is fairly complete, covering idempotency, reversibility, team sharing, and auth. However, the idempotency contradiction creates confusion, and it does not mention what happens if the view is not owned by the caller (e.g., error behavior). This leaves gaps given the available annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents view_id with a description ('The view's id, from list_saved_views.'), and the description does not add any additional parameter-specific meaning. Baseline 3 applies because schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb+resource ('Retire ... saved views') and precisely states the effect: drops from default listing and execute_saved_view refuses it, but definition is kept. It explicitly distinguishes from delete_saved_view and mentions restore_saved_view, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage guidance by saying 'Prefer this over delete_saved_view' and clarifies the scope ('YOUR OWN', team visibility). It also states when not to use (for destructive deletion) and covers idempotency, which helps the agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ask_legalAsk LegalARead-onlyIdempotentInspect
Request fixed legacy Themis source/citation records and attach a proposed Laws & Regulations agent/source/synthesis plan whose routes are planned_not_run. Check the law uses fixed legacy provider-record retrieval, but returned records do not prove exact citation identity, relevance, authority, or corpus coverage. Generated research requires authentication, exact THEMIS_NEUTRAL_SCHEMA_VERSION=themis_neutral_research/v1, the operator gate, a verified authenticated corpus manifest, and an atomic spend reservation. The manifest verifier is not available yet, so generated mode remains disabled. Provider assertions/gaps are enum codes linked to evidence whose quote-fidelity state is provider-reported and rendered with fixed server text; any legacy verdict or answer prose is withheld. Returns legal_evidence_graph/v1. Automated research only, not legal advice. Requires legal:run.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Optional factual context; treated as unverified input. The normalized question plus context must fit 2,000 characters total. | |
| domains | No | Optional domain hints such as OSHA, building_codes, or sports_regulation. | |
| quality | No | Policy for proposed, unexecuted model-quality and reasoning-effort routes. | balanced |
| question | Yes | Laws or regulations research question (no credentials or secrets). After normalized context is appended, the combined provider question must fit 2,000 characters. | |
| jurisdiction | No | Request hint forwarded to the legacy provider; it does not prove corpus coverage. | auto |
| max_sections | No | Optional maximum number of provider-returned source/citation records. | |
| research_mode | No | Fixed legacy provider-record retrieval or an explicit request for fail-closed, neutral Themis generation. | check_law |
| model_overrides | No | Optional model-id overrides for proposed, unexecuted agent routes. | |
| requested_agents | No | Up to seven catalog agent additions for the proposed plan; one of the eight total agent slots is reserved for its baseline agent. | |
| reasoning_effort_overrides | No | Optional effort overrides for proposed, unexecuted agent routes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only and idempotent annotations, the description discloses critical behaviors: generated research is disabled, returned records do not prove citation identity/relevance/authority/coverage, answer prose is withheld, and authentication (legal:run) plus exact schema version requirements are needed. This is rich behavioral context that helps the agent understand side effects and limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense, run-on paragraph with many technical caveats and clauses. While information-dense, it lacks clear structure and is not concise. The first sentence does state the purpose, but the rest becomes a wall of text, making it harder for an agent to quickly parse the essential behavioral constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is comprehensive given the tool's complexity: it covers the functional modes, authentication requirements, the disabled generation path, the nature of returned records, the output schema, and the non-advice disclaimer. Since an output schema exists, it needn't describe return values in detail, and this description fills all necessary gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, a baseline of 3 is appropriate. The description adds value by explaining that research_mode='themis' is effectively non-functional and that the output plan's routes are 'planned_not_run', which clarifies parameter intent beyond the schema. This extra semantics nudges the score to 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Request fixed legacy Themis source/citation records and attach a proposed Laws & Regulations agent/source/synthesis plan' which is a specific verb+resource+scope. It distinguishes itself from sibling tools by being the only legal research tool, and explicitly mentions the output type (legal_evidence_graph/v1).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on usage: it notes that 'check_law' mode uses fixed legacy provider-record retrieval, while 'themis' generated mode is disabled due to the missing manifest verifier. It also states 'Automated research only, not legal advice,' which clarifies the tool's intended scope. Although it doesn't name alternative tools, none of the siblings are legal-related, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assign_leads_to_campaignAssign Leads To CampaignAInspect
Assign one or more of the user's existing leads to one of the user's campaigns (both must be owned by the caller). Returns how many were assigned. Idempotent. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| lead_ids | Yes | Lead ids to assign (from search_outreach_leads). | |
| campaign_id | Yes | Target campaign id (from list_outreach_campaigns). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims the tool is 'Idempotent', but the annotations set idempotentHint=false. This is a direct contradiction, which misleads the AI agent about the tool's behavior. The description does add value by stating the return value and authentication requirement, but the contradiction overrides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and includes key facts (return count, idempotency, authentication). No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 params, simple assignment), the description covers usage constraints, return value, and idempotency. The existence of an output schema and good parameter descriptions contribute to completeness, though error conditions are not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters have clear descriptions referencing source tools. The description adds the ownership constraint ('both must be owned by the caller'), which provides additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Assign'), the resources ('leads to campaigns'), and constraints ('both must be owned by the caller'). It distinguishes this tool from siblings like create_outreach_campaign or add_outreach_lead by specifying the assignment of existing leads to existing campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context: leads and campaigns must be owned by the caller, and the operation is idempotent. However, it does not explicitly state when to use this tool versus alternatives like add_outreach_lead or update_outreach_lead_status, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_exportAudit ExportARead-onlyIdempotentInspect
Export this workspace's own agent-action audit trail as structured events, oldest first, for loading into a SIEM. Each event carries what triggered the action, which identity authorized it, which resource was touched, the outcome, and the error state. Metadata only -- no prompt text, document content, tool arguments, or model output is ever returned. Filter by date range and event action; page forward with the cursor each response returns. Covers a documented subset of platform activity rather than every action: see docs/WORKSPACE_AUDIT_EXPORT.md, and note that the coverage block on every response lists exactly which actions are exportable and which are not. Requires authentication and the audit:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Events per page. Defaults to 100, maximum 500. | |
| since | No | ISO-8601 lower bound, inclusive, for example 2026-08-01T00:00:00Z. Omit for no lower bound. | |
| until | No | ISO-8601 upper bound, inclusive. Omit for no upper bound. | |
| action | No | Exact event action to filter to, for example mcp.tool_call. Omit to return every action this workspace can export. | |
| after_id | No | Resume cursor. Pass the next_cursor from the previous page to continue without re-reading it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds: metadata only (no content returned), coverage block on responses lists which actions are exportable, requires auth and audit:read scope. It doesn't delve into error cases or rate limits, but the annotations cover safety profile; a 4 is appropriate for the extra security and data-scope context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense block that front-loads the purpose and data scope, then adds filter/pagination info, then coverage caveat and auth. Every sentence earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 params, pagination, auth, coverage limits) and generous schema coverage plus output schema present, the description fully covers purpose, scope, exclusions, and prerequisites. It is complete enough for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all 5 params including examples. The description adds meaning by connecting the pattern: 'page forward with the cursor each response returns' and maps after_id to next_cursor from the previous page. It doesn't add new syntax details beyond schema but reinforces the pagination model.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states precisely what the tool does: exports this workspace's own agent-action audit trail as structured events, oldest first. It also names the sibling tool 'get_workspace_metrics' as the alternative for platform metrics, and differentiates from 'get_meta_council_platform_metrics' and other metric lists by focusing on the audit trail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use it: for SIEM loading, and notes that it covers a 'documented subset of platform activity rather than every action', pointing to docs/WORKSPACE_AUDIT_EXPORT.md. It also clarifies the alternative: 'To get overall platform usage metrics, use get_workspace_metrics instead.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
campaign_pipeline_statsCampaign Pipeline StatsARead-onlyIdempotentInspect
Pipeline-stage breakdown for one outreach campaign — total / sent / active / won / lost, reply rate, and per-stage lead counts. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign UUID (from list_outreach_campaigns). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint, so agent knows it's safe and non-destructive. Description adds only 'Requires authentication', which is minor. No additional behavioral traits (e.g., rate limits, data freshness) are disclosed, but the description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Key information is front-loaded: first sentence explains purpose, second adds authentication requirement. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (one param, has output schema, annotations complete), the description is sufficient. It lists the metrics returned, though it could explicitly note that output schema documents the structure. Minor gap: no mention of time range or campaign status requirements, but not critical for a stats tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage: one parameter with description 'Campaign UUID (from list_outreach_campaigns).' Description reinforces that it's for one campaign but adds no new parameter details. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb ('Pipeline-stage breakdown') and resource ('one outreach campaign'), listing specific metrics (total/sent/active/won/lost, reply rate, per-stage lead counts). Distinguishes from siblings like 'list_outreach_campaigns' (which lists campaigns) and 'outreach_analytics' (likely broader).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions 'Requires authentication' and implies use for a single campaign, but does not explicitly state when to use this vs alternatives like 'outreach_analytics' or 'get_deal_health'. Still, context is clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_sales_taskComplete Sales TaskAInspect
Mark one of the caller's sales tasks/activities done (or reopen it with done=false). Stamps or clears the completion time; activity_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| done | No | Default true (complete). Pass false to reopen. | |
| activity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that marking a task done stamps the completion time, and reopening clears it. This adds behavioral context beyond the annotations (which only indicate it's not read-only, not destructive, and not idempotent). It does not specify authorization scope (e.g., only the caller's tasks) or potential side effects, but it is sufficient for a simple mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action, and every word provides value. It is efficient and avoids redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters and an output schema (present but not shown), the description covers the essential behavior and parameter usage. It does not explain the output format, but that is handled by the output schema. Minor gap: it does not state that the tool only works on the caller's tasks, but this is implicit in 'caller's sales tasks.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'done' has a description in the schema). The tool description reiterates that activity_id is required and done defaults true, but adds no new parameter-level detail. The description does clarify the boolean usage, but does not fully compensate for the undocumented activity_id parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (marking a sales task done or reopening it) and the specific resource (caller's sales tasks/activities). It uses a specific verb and resource, and the purpose is distinct from sibling tools which handle creation, updates, or other specific operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use: to complete or reopen a specific sales task. However, it does not explicitly state when not to use or suggest alternatives, such as logging a deal activity or updating outreach lead status. The purpose is self-evident, so no major gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_deal_to_invoiceConvert Deal To InvoiceAInspect
Create a draft invoice from one of the caller's deals: one line item for the deal's amount, client_name defaulted from the deal's company/title. deal_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| deal_id | Yes | ||
| due_date | No | ISO date YYYY-MM-DD. | |
| tax_rate | No | ||
| client_name | No | Defaults to the deal's company or title. | |
| client_email | No | ||
| payment_terms | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-destructive operation, and the description aligns with that by saying 'Create a draft invoice.' It adds useful context beyond the annotations: the invoice starts with one line item using the deal's amount, and client_name defaults from the deal's company/title. However, it does not disclose potential side effects on the deal (e.g., marking it as invoiced) or clarify how tax_rate, due_date, and other options affect the invoice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that front-load the core action and the most important default. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description conveys the essential purpose and a key default, but for a 7-parameter tool with low schema coverage, it leaves significant gaps: it does not explain most parameters, prerequisites (e.g., the deal must exist and be owned by the caller), or edge cases (e.g., repeated calls creating multiple drafts). Since an output schema exists, return values are covered elsewhere, but the overall package is only minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29%, so the tool description must compensate for the undocumented parameters. It only clarifies deal_id (required) and client_name (defaulted from the deal), leaving notes, due_date, tax_rate, client_email, and payment_terms unexplained. This is insufficient for reliable parameter selection and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Create') and resource ('a draft invoice from one of the caller's deals'), making the tool's purpose distinct. It also specifies a key behavior ('one line item for the deal's amount') and a default behavior for client_name, which differentiates it from generic invoice creation tools like create_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when you want to create a draft invoice from a specific deal—by emphasizing deal_id is required. However, it provides no explicit exclusions or alternatives, such as noting that create_invoice is intended for blank invoices or that add_invoice_line_item handles additional line items. This lack of comparative guidance is a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_lead_to_dealConvert Lead To DealAInspect
Convert an owned outreach lead into a deal and advance the lead into the deal stage of the funnel (never downgrading an already-closed lead). Optional deal fields mirror create_deal; lead_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| stage | No | ||
| title | No | ||
| amount | No | ||
| company | No | ||
| lead_id | Yes | ||
| currency | No | ||
| probability | No | ||
| expected_close_date | No | ISO date YYYY-MM-DD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is a write operation (readOnlyHint=false). The description adds critical behavioral context: it advances the lead to the deal stage and never downgrades closed leads, which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) with no wasted words. It front-loads the core action and constraint, then provides a parameter hint. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 9 parameters and one required, the description covers the essential behavior and links to create_deal for optional fields. The output schema exists but is not needed in the description. It is sufficiently complete for an agent to understand and use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (11%), so the description needs to compensate. It states 'Optional deal fields mirror create_deal', which directs the agent to another tool's schema, and mentions lead_id is required. However, individual parameters like notes, stage, etc., are not described, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'convert' and resource 'owned outreach lead into a deal', distinguishing it from sibling tools like create_deal and add_outreach_lead by specifying the conversion action and ownership condition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear condition ('never downgrading an already-closed lead') and references create_deal for optional fields, offering context on when to use the tool. However, it does not explicitly state when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_accounting_runCreate Accounting RunAInspect
Analyze supported textual accounting records with the pinned deterministic Writeoff engine and create a private, encrypted audit run owned by the caller. Accepted filenames end in .txt, .md, .text, .eml, .csv, .ofx, .qfx, or .qif. Returns estimates for review only: it does not file taxes, move money, or send data to an external accounting service.
Send prepared rows, not raw document text. Pasting the output of a PDF-to-text converter does not fail loudly. Read verbatim as .txt, .text or .md, the whole paste collapses to exactly ONE entry, and that entry's figure can be a real number from the page that is not a charge at all: a statement with no footer total books its running BALANCE as spend. Stripping the page headers and the balance column does not change that; a genuinely empty paste raises instead. Convert each document into canonical CSV first: a Date,Description,Amount header, then one row per economic event. The Description column carrying the merchant name alone is the cleanest form, and prose is not merely untidy -- it CHANGES the answer. The matcher runs over the whole description against a vocabulary that holds ordinary words as well as vendor names: paper, printer, ink, notebook, legal, consulting, subscription, hosting and domain each classify alone with no vendor present, and contact lens or reading glasses classify as a MEDICAL deduction. A memo line saying what was bought can therefore create a deduction the vendor name alone would not. Send the merchant, not a description of the purchase. Not every phrase matches -- weekly grocery run, haircut and banana all stay unclassified -- but plain English is not inert. Classification is separately gated by context_text, but that gate is PARTIAL, not an off switch. Leaving it empty suppresses only the rules that need a business to exist: business, meals, vehicle and home-office. The personal rules stay live whatever you send -- a bare contact lens still classifies with context_text empty, under the category name fsa_hsa rather than anything called medical, and donation and tuition classify the same way. An empty context is NOT a way to stop deductions being proposed. The business gate is a bare substring test, not a reading of what you wrote: it opens on a keyword anywhere in the text, so I do not own a business and This is a personal return, not a business each switch the business rules ON rather than off. Negation is not detected. Suppress those rules with an EMPTY context, never with a denial. Booking is independent of all of it -- a row books its amount whether or not it classifies, and classification decides only whether the row becomes a deduction candidate.
State the direction of every row. A .csv is routed as a statement, so each row has to say whether money went out or came in. Send exactly Date,Description,Amount,Type -- the amount column named Amount, and a Type of Purchase for money out or Refund for money in.
Separate the fields with COMMAS. The delimiter is sniffed from the header row, and a semicolon additionally switches the amount parser to the European convention where the comma is the decimal point and the dot is a thousands separator. In a semicolon-delimited file an ordinary -20.00 is therefore read as 2000.00 and -1234.56 as 123456.00 -- silently, with no error, a hundred times the real figure. Tab and pipe keep the dot decimal.
Send only these four columns, each once. Order among the four does not matter -- all 24 arrangements of Date,Description,Amount,Type measured identical -- but each once is load-bearing, because a repeated header resolves to the LAST copy. A second Amount REPLACES the figure, so it can under-book as easily as over-book; a second Type can make a file of refunds BOOK as spend just as easily as it can drop the whole file, and on three rows written Type=Refund,Purchase the last copy wins and all three book; and a second Date silently rewrites every date while the row count and the total stay exactly right. A literal Amount now protects the figures from same-direction ancillary debit- or credit-looking columns. A literal Amount beats one or more same-direction ancillary columns in either order, whether those cells are populated or blank. Those ancillary values are not silently substituted. Opposite-direction ancillary columns together form a complete pair and fail closed beside Amount.
Schema arbitration happens before row direction; Type cannot rescue an ambiguous schema. After arbitration selects one money representation, row direction uses a recognized Type first. Only when Type is absent or unrecognized does a trailing CR or DR marker decide. Only when both are absent does the selected money heading or sign decide. Thus Purchase and Refund outrank a conflicting marker on an otherwise unambiguous schema; notably, Payment is unrecognized and preserves the fallback.
Conflicting money representations fail closed instead of being chosen by header order. Distinct equal-ranked amount aliases, multiple equally ranked same-direction money headers without a literal Amount, an amount alias beside a separate debit/credit representation, a literal Amount beside a complete pair, and a third amount candidate beside a pair each produce a named ambiguous-money error. A complete Debit/Credit pair remains supported, but a row with both pair cells nonzero fails closed. On a row with neither recognized Type nor CR/DR marker, a negative debit is a reversal and remains credit, while a negative credit is never promoted to spend. Within one role vocabulary, exact matches still beat partial matches.
Column roles remain isolated. Description prefers an ordinary non-role heading. If none exists, exactly one releasable semantic-directional heading such as Charge Description or Payment Memo may serve, but only when an independent money representation survives without it. Outside that semantic-directional exception, suppressed lower-tier money, date and type candidates remain reserved and cannot become Description merely because a stronger sibling won their original role. Structural composites such as Amount Details, Transaction Type Description and Debit Details, or multiple competing semantic candidates, cannot serve as Description; when only those remain, the file fails closed rather than poaching merchant text.
Identical duplicate headers remain a separate hazard: DictReader uses the LAST copy. A second Amount REPLACES the figure, a second Type can make refunds book as spend or purchases drop, and a second Date silently rewrites every date. That residual duplicate-heading behavior is not an ACC-045 fix, so send the four canonical columns once each.
Type is matched against a fixed vocabulary, not read as free text. purchase, debit, charge, withdrawal and dr mean money out; refund, credit, deposit, return and cr mean money in. All eight spelled-out words resolve in the plural as well, but the two abbreviations do not: drs and crs are unrecognised and fall through to the amount CELL, so a crs row written negative books as SPEND, not as money in. Anything else -- notably Payment, money in on a card but out on a checking account -- counts as unstated, and the direction then falls to the amount CELL rather than to the sign alone.
Write the amount as a plain signed number, with nothing else in the cell. A trailing DR or CR and accounting parentheses are not decoration, and what they do depends on the column holding them and on the parser the CONTENT selected -- NOT on the file suffix.
Two separate things happen to such a cell, and BOTH are confined to the statement path -- the fan-out described under Routing below. First, in every statement format and every column, the figure is given a sign: parentheses negate, DR negates, and CR does nothing at all. DR is a SIGN; CR is only a label. On the single-receipt path no marker is a sign at all: a total written 20.00 books 20.00, and that same total written 20.00 DR, (20.00) or 20.00 CR books 0.00 -- there the marker makes the amount UNREADABLE rather than negative. Second, when the content parses as CSV and schema arbitration has selected one money representation, row direction reads recognized Type first and then any marker on the selected money cell. A marker never overrides recognized Type; with Type absent or unrecognized it outranks the selected heading or sign.
On a bare Date,Description,Amount file, 20.00 DR and (20.00) are both money OUT, and even -20.00 CR is money IN. A recognized Purchase or Refund still outranks either marker. A cell carrying no marker falls back to the SIGN, under the bank convention where money out is NEGATIVE, so a plain POSITIVE amount reads as money coming in and is dropped as non-deductible. On three rows totalling 137.19: written plain and positive they record nothing, and those same positives written 20.00 DR or (20.00) record all three.
This CSV marker reading applies to the selected single money column or the selected nonzero cell of a complete pair. With Type absent or unrecognized, 20.00 CR is credit and 20.00 DR is debit under Amount, Charges or Payments. With neither recognized Type nor marker, heading/sign fallback remains: positive Charges is spend, negative Charges is a reversal, and a lone Payments column is credit. Beside literal Amount, even a blank Payments column is ancillary and cannot void honest figures.
A money column whose name is in NEITHER vocabulary is a third way to record nothing. Purchases, Spend, Cost and Total were each measured doing it -- they are examples, not a list to check yours against -- and a file whose only figures sit under such a name returns zero rows at BOTH signs, with no error. Recognition is by name against a closed list, so the remedy is not a clearer word of your own but the four columns named at the top of this contract.
Native OFX and QIF content behaves like a plain AMOUNT column and NOT like a money-out column, on all six markers, under .ofx, .qfx and .qif alike: the sign left by the first step decides, so -20.00 CR is money OUT, and so is (20.00 CR); 20.00 DR is money OUT because DR negated it; and a plain positive 20.00 is money IN and dropped. TRNTYPE is never consulted -- DEBIT with a positive TRNAMT still drops. Because the parser follows the CONTENT, a .qfx holding canonical CSV runs the CSV rules above instead, markers and all.
Dropped rows are silent, and nothing in the result marks a row as dropped. A run does fail when it analyzed nothing at all across the whole submission, and separately on transport, input and engine errors -- but no failure mode reports a PARTIAL loss. If even one row anywhere survives, the run completes and the rest vanish with no notice, so a completed run is NOT evidence every row was read. A three-row file with one negative amount and two positive ones returns one row, no error, and a total indistinguishable from an honest one.
The one loss that IS named is a document that contributed nothing at all. When a submitted file appears in no catalog channel -- no item, no unclassified row, no notice, no error -- and it held at least two non-empty lines, catalog.notices carries a source_left_no_trace entry naming that file. That covers whole-file loss: a statement whose rows use a different delimiter than its header, and a body of unreadable bytes under a valid header, both otherwise return the same empty success as a file that genuinely held nothing. A header-only export stays silent by design -- it has no body to lose. This does not narrow the PARTIAL case above: a file that recorded even one row counts as read, so rows dropped beside it remain silent.
Routing is by filename suffix, not by content, against a CLOSED allowlist -- and the allowlist is assembled from two constants that DISAGREE. SUPPORTED_SUFFIXES in web/accounting_engine.py admits eight: .csv, .ofx, .qfx, .qif, .txt, .text, .md and .eml. STATEMENT_SUFFIXES in writeoff/batch.py names the five that fan out into one row per line, and one of those five is .xlsx, which the engine refuses before any parser sees it. What fans out is the INTERSECTION -- .csv, .ofx, .qfx and .qif. The other four -- .txt, .text, .md and .eml -- are read as a single receipt. Of those, .txt, .text and .md are read VERBATIM and behave identically to each other; .eml is NOT one of them. An .eml is parsed as an email FIRST -- headers dropped, transfer-encoding decoded, an HTML body flattened into lines at its block tags -- so every rule below applies to THOSE lines and not to the file's, and the same bytes can book a different figure, name a different merchant, or record a load error and contribute no entry at all. Statement rows sent that way collapse to ONE entry, and what that entry books turns on the PRICE pattern below: a file that LOADS and in which NO line ends in a price books 0.00, silently and with no error. An .eml with no extractable body -- an attachment-only mail -- never reaches that stage: it contributes NO entry and records an EmailIngestError in the run's errors, while still being listed among its sources. Its merchant is NOT the file's first line: it is the first line that neither ends in a price nor is a bare date, so a file led by a CSV header books that header text as the merchant, and a file whose every line ends in a PRICE books an EMPTY merchant. Ending in a bare number is not enough: a Closing balance 900 line is itself booked as the merchant. The winning figure is chosen by matching against the WHOLE lower-cased LINE, description included, so a purchase from TOTAL WINE AND MORE reads as the file's total. A label is only ever read on a line that ENDS in a price, and a price means EXACTLY TWO DECIMAL PLACES: a whole-dollar Total 137 is not a price, and neither are 137.1, 137.190 or a trailing 137. -- none of their labels are ever read. The pattern is anchored at the END only, so what stands in FRONT of the figure is unrestricted: Total USD 137.19 and even Total about 137.19 both read as totals, and a leading dollar sign is merely one case of that. After the digits it admits an optional minus and at MOST ONE trailing letter, and those letters are UPPERCASE ONLY -- T, N, X, F, E or an asterisk, while a lowercase t, n, x, f or e leaves the line with no price at all. So a line reading Total 137.19 USD, Total 137.19 (USD) or Total 137.19 EA carries no price at all, its label is never read, and the file falls through to its largest amount -- and a payable line behaves the same way, so an Amount Due 137.19 USD is not a payable line either. That property, not the marker, is why a Total 137.19 CR is not read as a total: CR is two letters, so the line has no price. Otherwise any line containing total is a total line and the LAST one wins -- not the first, not the largest -- so that wine row REPLACES an honest footer standing above it. Excluded are subtotal and sub total, though the near-miss sub-total is not excluded and does win, and any total line also holding saving, save, discount, coupon or reward as a bare substring; that is the entire exclusion list in the pinned dependency today. Those exclusions are the dangerous half: an excluded line is read as NO total rather than as a smaller one, and the search moves past it to the payable stage below, with no zero total present, and only then to the largest amount. Rows of 4812.00 and 12.34 under a Total Rewards Earned of 42.10 book 4812.00 -- a hundredfold over-book off a line the file itself labels a total. Give that same file an Amount Due of 42.10 and the payable stage rescues it. A ZERO is not an exclusion and does not chain that way. A total line reading 0.00 WINS its stage and sets the total to zero, and a zero total SUPPRESSES the payable stage, so the file drops to its LARGEST amount in EITHER order: an Amount Due of 42.10 standing above or below a Total of 0.00 does not rescue it. A paid-in-full invoice reading Total Due 0.00 books its largest line item. Last-wins covers zeros too, so a Total of 0.00 below a real Total of 42.10 WIPES it. The payable stage does not behave that way -- it takes the last payable line whose figure is NON-ZERO, so a trailing Amount Due of 0.00 leaves an earlier Amount Due of 42.10 standing. With no total line surviving, a line reading amount due, balance due, amount payable or please pay is used instead, last-wins again and only when its figure is non-zero. Those four are matched as LITERAL text, so the doubled-space spellings Amount Due and Balance Due, and likewise Amount-Due and AmountDue, are NOT payable lines at all; a file whose only payable label is spelled one of those ways skips to its LARGEST amount, which is the direction that over-books. A trailing colon in Amount Due: still matches. Failing every stage, the largest amount anywhere in the file. One hazard, though, is NOT confined to that last stage. The price read is END-anchored on the LINE, not on a column, so it reaches back across commas and swallows text belonging to the field BEFORE it. It takes the line's final cents pair and walks LEFT across each comma-separated group of EXACTLY three digits, then swallows up to three trailing digits of whatever text precedes the first such comma -- an amount's cents, a check or invoice number, a card last-4, a units or store-number column; money or not, decimal point or not. A group of one, two, or four-or-more digits terminates the walk. So a row of -12.34,887.66 yields 34,887.66 -- a figure that appears in NO cell of the document, even though those characters occur across the comma between two cells in the raw text. That splicing happens while the price is being READ, which is before any label is tested, so a spliced figure is what a total line or a payable line CARRIES INTO its own stage: a footer reading Total,-60.34,887.66 books 34,887.66 rather than 60.34, and an Amount Due,-12.34,887.66 books 34,887.66 the same way. Holding an explicit Total line is therefore NOT a way out of this. The field on the LEFT need not be money and need not carry a decimal point: a check register whose amount is the LAST column books 140,732.19 from a row reading 2029-06-02,8140,732.19, and an Amount Due,INV 4522,887.66 books 522,887.66. There is no ceiling on the RIGHT either -- -31.20 beside 412,880.55 books 20,412,880.55, because 412 and 880 are each groups of exactly three. What stops the walk is GROUP WIDTH alone, so a right-hand 1000.00, 4,887.66 or 12,345.67 is read whole, and the total line then books THAT figure rather than its own. A spliced figure is usually in no cell of the document, but not always: when the digits swallowed are all ZEROS -- an amount's 00 cents, or a round 1000 -- it lands exactly on the right-hand figure, so agreeing with a real cell is not evidence of a clean read. No error is raised in any of these cases. Send that file as .csv instead, where the splice does not occur. Rows of 200.00 and 12.34 under a Total of 137.19 book 137.19; delete that total line and the same file books 200.00. The winning line's own minus sign is DISCARDED at either stage, so a Total of -137.19 and an Amount Due of -137.19 both book 137.19. The entry books 0.00 whenever NO line in the file ends in a price, and a DR, CR or parenthesis marker on every amount is only ONE way to reach that state: whole-dollar amounts, a trailing currency code and a trailing period each book 0.00 with no marker anywhere in the file. Where a marker IS the cause, leaving the winning line unmarked makes it book in full, whether the winner is a total or a payable line. Every rule in this paragraph is measured on the LINES the loader hands the parser: for .txt, .text and .md those are the file's own lines, and for .eml they are the extracted body's. Anything outside the eight is REFUSED outright with an unsupported-file-type error rather than silently mis-read, so .pdf and .xlsx never reach the parser. Because the second set lives in a pinned dependency, treat the four as measured today, not as a promise. That split is by suffix; WITHIN those four the parser is chosen by CONTENT, so a .qfx holding canonical CSV runs the CSV column contract above in full. One row per economic event. An invoice and the receipt that pays it are one event; submit both and BOTH are counted, doubling the deduction. Same-day duplicates raise a possible_duplicate notice, but rows dated days apart -- the usual invoice-to-receipt gap -- raise nothing at all, so the total is silently twice the truth. Collapse duplicates before submitting.
Scope each run to one entity and one tax year, and name it that way -- totals spanning entities or years match no filing. Book each event on the date money moved (cash basis) unless the entity files accrual, and never mix bases in one run. Submit runs one at a time: one ingest is active per owner at a time.
The returned total counts classified spend only. Charges whose merchant matches no deterministic rule are excluded from it, so do not present it as total spend. Use preview_accounting_ticket_sync to turn those residuals into reviewable work. Never submit a figure you cannot find verbatim in the source document, and never adjust a merchant name to make a row classify: Description is what the engine matches on, so renaming an unrecognised vendor to a recognised one raises the deduction while every figure stays verbatim. An unclassified row is the engine declining to assert a rule it does not have. Leave it, and report the count.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional private label for this audit run. Name it for the entity and tax year it covers, for example 'Example, LLC 2024'. | |
| context | No | Optional business/tax context used by the deterministic engine. | |
| documents | Yes | 1-50 documents of prepared text. PDFs and other binaries are rejected at the byte-validation boundary by design, so extract text on the client and send canonical Date,Description,Amount,Type rows. Statements already in .csv/.ofx/.qfx/.qif form are parsed row per line, so do not retype their rows -- but do not send one unread: a semicolon-delimited .csv is read in the European convention and books -20.00 as 2000.00, and an OFX or QIF row whose amount is positive is dropped without TRNTYPE being consulted. Both are silent and neither raises an error. | |
| marginal_rate | No | Optional decimal or percent, for example 0.24 or 24%. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the minimal annotations, the description discloses critical behavioral traits: silent row drops with no partial-loss error, suffix-based routing with conflicting allowlists, duplicate-header last-copy semantics, European decimal parsing, and the fact that a completed run does not guarantee every row was read. It also clarifies safety boundaries, such as not moving money or sending data externally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely long and repetitive: duplicate-header warnings appear twice ('A second Amount REPLACES the figure' in two separate paragraphs), and the same 'Date,Description,Amount,Type' instruction is repeated. It lacks structural organization such as headings or sections, making it difficult to scan despite the front-loaded purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For the tool's complexity, the description is remarkably complete. It covers accepted file types, routing logic, parsing hazards, failure modes (source_left_no_trace, EmailIngestError), return semantics, and operational constraints (one active ingest per owner). With an output schema present, the description does not need to detail return values further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 100%, the description adds substantial meaning beyond the schema. It explains the canonical CSV format for documents.content, the suffix-specific parsing behavior, the partial business gate semantics of context_text, the entity/tax-year naming convention for name, and the return semantics (total counts classified spend only).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Analyze supported textual accounting records ... and create a private, encrypted audit run owned by the caller.' It clearly distinguishes the tool from siblings by stating it returns estimates for review only and does not file taxes, move money, or send data to an external accounting service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use and when-not-to-use guidance: 'Submit prepared rows, not raw document text,' 'Scope each run to one entity and one tax year,' and 'Submit runs one at a time.' It also names a specific alternative for residuals: 'Use preview_accounting_ticket_sync to turn those residuals into reviewable work.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_consulting_clientCreate Consulting ClientCInspect
Create an account-private consulting client.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| notes | No | ||
| status | No | ||
| contact_name | No | ||
| external_ref | No | ||
| organization | No | ||
| contact_email | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's a write (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds 'account-private' but does not disclose any additional behavioral traits like idempotency, side effects, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but overly terse. It lacks necessary details about parameters and behavior, making it under-specified rather than efficiently compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, many optional, output schema exists), the description is vastly incomplete. It fails to explain the purpose of parameters, success criteria, or how it relates to sibling tools like 'create_consulting_engagement'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate but does not. No parameters are mentioned or explained, leaving the agent without guidance on how to fill in the 7 fields beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('consulting client'), and the 'account-private' qualifier hints at scope. However, it does not explicitly distinguish from the 'update_consulting_client' sibling, but the verb alone makes it a distinct creation tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives (e.g., for creating vs. updating clients, or vs. creating engagements). No usage context, prerequisites, or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_consulting_deliverableCreate Consulting DeliverableCInspect
Create an internal draft deliverable on an owned engagement.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | ||
| title | Yes | ||
| due_date | No | ||
| description | No | ||
| milestone_id | No | ||
| engagement_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it's a write operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds 'internal draft' but does not disclose idempotency (hint=false) or other behavioral traits such as state changes or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose. While concise, it could benefit from incorporating key parameter or behavioral details without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, 3 required, output schema exists) and the large number of sibling tools, the description is too minimal. It does not explain how to use parameters like engagement_id or what constitutes an 'internal draft deliverable'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of parameters such as 'key', 'title', 'due_date', or 'milestone_id'. The agent must rely solely on the schema, which lacks semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the object 'internal draft deliverable', with the context 'on an owned engagement'. It distinguishes from sibling tools that deal with approving or updating deliverables.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'approve_consulting_deliverable' or 'update_consulting_deliverable'. The user must infer usage from the tool's name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_consulting_document_revisionCreate Consulting Document RevisionBInspect
Create a revision-safe proposal or SOW draft on an owned engagement.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| kind | Yes | ||
| title | Yes | ||
| engagement_id | Yes | ||
| expected_latest_revision | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) already signal it's a non-read, non-idempotent mutation. The description adds 'revision-safe,' implying versioning, but does not disclose concurrency behavior (e.g., optimistic locking via expected_latest_revision), permissions, or limits. It provides some value beyond annotations but remains vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant information. It efficiently conveys the core purpose without extraneous words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters (0% schema coverage), no behavioral annotations beyond basic mutation hints, and an output schema (but not described), the description is incomplete. It omits critical context: the expected_latest_revision parameter for conflict detection, what 'owned engagement' implies (permissions), and typical use cases. The agent lacks sufficient information to invoke the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any of the 5 parameters (body, kind, title, engagement_id, expected_latest_revision). The phrase 'proposal or SOW draft' hints at kind, and 'owned engagement' hints at engagement_id, but this is insufficient for an agent to understand required input formats, constraints, or the role of expected_latest_revision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a 'revision-safe proposal or SOW draft on an owned engagement,' specifying the verb (create), resource (consulting document revision), and scope (on owned engagement, with kind limited to proposal or SOW). It distinguishes from siblings like update_consulting_document_revision or approve_consulting_document_revision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It mentions 'on an owned engagement' but does not clarify prerequisites, exclusions (e.g., when to update vs. create), or compare to similar tools like update_consulting_document_revision. The agent would lack context for proper selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_consulting_engagementCreate Consulting EngagementBInspect
Create an engagement for an owned consulting client.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| status | No | ||
| client_id | Yes | ||
| objective | No | ||
| start_date | No | ||
| external_ref | No | ||
| sales_deal_ref | No | ||
| target_end_date | No | ||
| accounting_run_ref | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it is not readOnly and not destructive. Description adds minimal context ('owned consulting client'), but no further behavioral traits like required permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words, but could be slightly expanded to include key usage hints without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and no parameter descriptions, the description is too brief to guide correct usage, even though an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanations for any of the 9 parameters, leaving agents to infer meaning from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action 'Create an engagement' and specifies the resource 'for an owned consulting client', distinguishing it from sibling tools like create_consulting_client.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as update_consulting_engagement or other creation tools. Missing when-not or prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_content_assetCreate Content AssetAInspect
Create a private draft content asset. There is no publish/send operation.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| channel | No | ||
| content | Yes | ||
| asset_type | No | ||
| campaign_id | Yes | Full UUID from the matching list tool. | |
| scheduled_for | No | ||
| revision_notes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is not read-only or destructive; the description adds that the asset is private and a draft with no subsequent publish operation, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two brief sentences front-load the core action and an important limitation. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool has 7 parameters and an output schema, the description only covers basic intent and one limitation. Missing workflow context (e.g., revision or submission steps) makes it only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% and the description does not clarify any parameters. For parameters like channel and asset_type, additional guidance would be helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a private draft content asset, and mentions there is no publish/send operation, distinguishing it from similar tools like submit_content_asset or approve_content_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for creating drafts without publishing, but it does not explicitly state when to use it over siblings like create_content_asset_revision or submit_content_asset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_content_asset_revisionCreate Content Asset RevisionBInspect
Create a new owned draft revision from a frozen submitted/approved/rejected revision.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| channel | No | ||
| content | No | ||
| asset_id | Yes | Full UUID from the matching list tool. | |
| asset_type | No | ||
| scheduled_for | No | ||
| revision_notes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) with no destructive hint. The description confirms creation but provides no additional behavioral details such as permissions, effects on the frozen revision, or side effects. Basic consistency maintained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words. Every word adds value. Appropriately front-loaded with the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters with minimal schema descriptions and no parameter details in the description, the tool is underdocumented. The output schema exists but is not visible; still, the description lacks essential context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (only asset_id has a description). The description adds no explanation for the other 6 parameters, failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Create', the resource 'content asset revision', and qualification 'from a frozen submitted/approved/rejected revision'. This clearly distinguishes from sibling tools like create_content_asset or submit_content_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when or when not to use this tool versus siblings. The description implies a specific use case (creating a draft from a frozen revision) but does not provide context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dealCreate DealAInspect
Create a sales deal owned by the caller. Provide a title, or a lead_id to inherit the lead's company/name as the title. The deal appears live on the owner's Sales board. No deletes are exposed over MCP.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| stage | No | Pipeline stage (default qualification). | |
| title | No | Deal title (required unless lead_id is given). | |
| amount | No | Deal value (>= 0). | |
| company | No | ||
| lead_id | No | Link to an existing owned lead. | |
| currency | No | 3-letter ISO code (default USD). | |
| campaign_id | No | Link to an owned campaign. | |
| probability | No | Win probability 0-100. | |
| expected_close_date | No | ISO date YYYY-MM-DD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond annotations: deal appears live on owner's board, no deletes exposed. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with purpose, no fluff. Efficient for 10-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers creation behavior, ownership, and a key constraint (no deletes). With output schema present, missing defaults are acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond schema by explaining title/lead_id relationship and ownership. Schema covers 80% of parameters, description compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool creates a sales deal owned by the caller. Specifies title can come from a lead_id, distinguishing it from sibling tools like convert_lead_to_deal or update_deal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on title vs lead_id but lacks explicit when-not-to-use or alternatives. Usage is implied from context but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_invoiceCreate InvoiceAInspect
Create a draft invoice owned by the caller for a client, optionally seeded with line items and linked to an existing deal. Totals (subtotal/tax/total) are computed from the line items and tax_rate. The invoice starts in status 'draft' — call send_invoice to mark it sent.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| deal_id | No | Optional: link to an owned deal. | |
| currency | No | 3-letter ISO code (default USD). | |
| due_date | No | ISO date YYYY-MM-DD. | |
| tax_rate | No | Percentage, e.g. 8.5 for 8.5%. | |
| line_items | No | ||
| client_name | Yes | ||
| client_email | No | ||
| payment_terms | No | e.g. 'Net 30', 'Due on receipt'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false (readOnlyHint=false, etc.), so the description carries the transparency burden. It goes beyond the schema by disclosing that totals are computed from line_items and tax_rate, the invoice starts in 'draft' status, and the invoice is owned by the caller. This is valuable behavioral context that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, and front-loaded with the core action. Every clause adds value: caller ownership, optional line items/deal link, computed totals, draft status, and the next-step call to send_invoice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential behavior for a create tool: draft status, computed totals, ownership, and follow-up action. It does not explicitly state what happens if no line_items are provided (e.g., zero totals), but the output schema and annotations fill in some gaps. Overall, it is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies how line_items and tax_rate interact (totals computed from them), which is not obvious from the schema where tax_rate only says 'Percentage'. It also explains deal_id as linking to an owned deal. With 56% schema description coverage, the description adds meaningful parameter semantics, though not all params are covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Create a draft invoice owned by the caller for a client' — a specific verb+resource+ownership that clearly distinguishes the tool from siblings like update_invoice, send_invoice, or convert_deal_to_invoice. It also notes optional line items and deal linking, which further differentiates it from add_invoice_line_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states that the invoice starts in 'draft' status and directs the agent to call send_invoice to mark it sent, providing clear subsequent workflow. It also mentions optional deal linking, implying when to use this vs. convert_deal_to_invoice, but it does not explicitly state exclusions or when to prefer an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_marketing_audienceCreate Marketing AudienceBInspect
Create an owner-private reusable audience definition.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| channels | No | ||
| description | No | ||
| pain_points | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only, not destructive, not idempotent. Description adds that the audience is 'owner-private' and 'reusable', which are useful behavioral traits beyond annotations. However, it does not disclose potential constraints like uniqueness of name or side effects of creating duplicates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, front-loaded with verb and resource. Every word adds value. Perfect conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, no parameter descriptions, and no usage guidance, the description is incomplete. Despite having an output schema, the agent lacks sufficient information to correctly populate optional fields like channels and pain_points. More detail is needed for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description does not elaborate on any parameters. The schema itself has no descriptions, only constraints like maxLength. The agent must guess the meaning of 'channels' and 'pain_points' from context. The description should clarify these fields, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'create', resource 'marketing audience', and key attributes 'owner-private' and 'reusable'. It distinguishes from sibling tools like update_marketing_audience and get_marketing_audience. Could be more specific about the audience's role in campaigns, but purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There are sibling tools like get_marketing_audience and update_marketing_audience, but the description does not mention them or provide context on when to create vs. edit. Agent must infer from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_marketing_brandCreate Marketing BrandBInspect
Create an owner-private brand identity. Requires marketing:agent_write.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| voice | No | ||
| guidelines | No | ||
| value_proposition | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a read-write, non-destructive operation. The description adds that the brand is owner-private and requires specific write permission, which provides 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, consisting of two front-loaded sentences. However, this brevity comes at the cost of missing important details, so it is not an ideal balance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a creation tool with 4 parameters (0% schema coverage) and an output schema, the description should provide parameter explanations and usage context. It lacks both, leaving the tool under-documented for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no parameter descriptions. The tool description does not explain any of the four parameters (name, voice, guidelines, value_proposition), leaving the agent without guidance on their purpose or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'marketing brand identity', and specifies it is 'owner-private', distinguishing it from get_marketing_brand and other sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is the authorization requirement 'Requires marketing:agent_write'. There is no mention of when to use this tool versus alternatives (e.g., update_marketing_brand) or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_marketing_campaignCreate Marketing CampaignBInspect
Create an owner-private marketing campaign linked only to owned brand/audience ids.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| status | No | ||
| ends_on | No | ||
| brand_id | No | Full UUID from the matching list tool. | |
| channels | No | ||
| objective | No | ||
| starts_on | No | ||
| audience_id | No | Full UUID from the matching list tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations all false, the description carries the full burden. It discloses that the campaign is 'owner-private', but does not mention other behavioral traits such as required permissions, whether creation is immediate or asynchronous, rate limits, or any side effects beyond linkage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 14 words, immediately conveying the core action and key constraints. It is front-loaded and contains no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 8 parameters and an output schema (not shown). The description only covers the high-level purpose and the linkage constraint, but does not explain the output, required fields, or any nuances for the many optional parameters. It is insufficient for an agent to fully understand how to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only brand_id and audience_id have descriptions in the schema). The tool description does not add meaning for the other 6 parameters (name, status, ends_on, channels, objective, starts_on). The mention of 'linked only to owned brand/audience ids' weakly ties to those parameters but does not explain their semantics or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'marketing campaign'. It adds specific qualifiers ('owner-private' and 'linked only to owned brand/audience ids') which distinguish it from sibling create tools like create_marketing_audience or create_outreach_campaign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating the campaign is 'linked only to owned brand/audience ids', suggesting the user must have such owned resources. However, it does not explicitly state when to use this tool vs. alternatives (e.g., create_outreach_campaign) 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.
create_monitorCreate MonitorAInspect
Save a standing watch that fires later, on its own: when a count you name crosses a line you set, do the thing you chose. Lets an agent bank a condition and stop polling for it. The watch survives the conversation that created it. Note that start_workflow spends the account's credits unattended each time it fires, so the cooldown is the only thing bounding what it costs. Requires authentication, a Pro or Enterprise account, and the monitors:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human label for the watch, e.g. 'Backlog over 50'. | |
| action | Yes | What to do when the condition holds. | |
| subject | Yes | Which of your counts to watch. | |
| threshold | Yes | The line the count must cross. | |
| comparator | Yes | How the count is compared against threshold. | |
| action_config | No | Settings for the chosen action. start_workflow needs workflow_slug; notify_slack needs message. | |
| status_filter | No | Optional: count only rows in this status, e.g. 'todo'. Omit to count them all. | |
| cooldown_seconds | No | Minimum gap between firings. Defaults to 3600. Values below one scheduler tick are raised to 60, and the stored value reflects that. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include generic hints (all false), so the description carries the burden. It discloses that the monitor persists beyond the conversation and that it fires autonomously (unattended), and warns about credit costs and cooldown bounding. This is valuable transparency beyond the schema. It could mention how to delete or stop, but that's a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-written, using accessible language. It front-loads the core purpose in the first sentence, then adds necessary caveats about cost. Every sentence contributes to understanding the tool, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with 8 parameters, nested objects, and an output schema. The description covers the core behavior, persistence, and cost implications, but it doesn't mention the output format or how to later manage the monitor (e.g., delete, list). Given the output schema and full schema documentation, this is largely complete, but a bit more on lifecycle management would be ideal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents parameters. The description adds some value by explaining the purpose of the monitor overall, but does not explain individual parameters beyond what the schema provides. The nested action_config is clearly described in the schema, so the description's mention is not additional insight. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool creates a persistent monitor (a standing watch) that triggers an action when a condition is met, distinguishing it from other 'create' tools. It explicitly mentions the key use case of banking a condition to avoid polling, which differentiates it from generic creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the primary use case (avoiding polling) but does not explicitly state when not to use it or mention alternatives. It implies that this tool is for long-running conditions, but doesn't compare it to other monitoring or workflow tools. However, it does clarify that start_workflow has cost implications, which helps with usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outreach_campaignCreate Outreach CampaignAInspect
Create a new outreach campaign owned by the authenticated user. Returns the new campaign id. Reversible (campaigns can be edited/deleted in the dashboard). Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name (required). | |
| status | No | Optional initial status: draft (default) | active | paused | completed. | |
| description | No | Optional description. | |
| target_segment | No | Optional target segment label. | |
| target_audience | No | Optional target-audience note. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false (mutation known) and destructiveHint=false (non-destructive). The description adds value by stating the mutation is reversible (campaigns can be edited/deleted), which goes beyond annotations. It also specifies authentication requirement and output (returns campaign id). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action and ownership. Every word adds value: return value, reversibility, auth. No fluff or repetition. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with 5 simple parameters and an output schema, the description covers the essential behavioral context: auth, ownership, reversibility, and return value. The missing mention of default status is minor since schema covers it. Output schema exists, so return value detail is sufficient. Slightly more detail on side effects would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all parameters described. The description does not add additional meaning beyond the schema, such as format constraints or default values. For example, it doesn't mention that status defaults to 'draft' (though implicit in schema). Baseline 3 is appropriate since schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and resource 'outreach campaign', specifies ownership by authenticated user, return value (campaign id), and reversibility. It effectively distinguishes this tool from sibling tools like 'create_marketing_campaign' due to the 'outreach' qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to create an outreach campaign) but does not explicitly compare to alternatives or state when not to use. No guidance on choosing between similar creation tools like 'create_marketing_campaign' or 'create_outreach_pitch'. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_outreach_pitchCreate Outreach PitchAInspect
Create a reusable pitch template (subject + body templates, optional drafting prompt) owned by the user. Provenance is stamped source="agent" server-side. Returns the new pitch id. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Pitch name (required). | |
| tone | No | Optional tone (default 'professional'). | |
| prompt | No | Optional AI drafting instruction. | |
| category | No | Optional category label. | |
| body_template | Yes | Email-body template (required). | |
| target_segment | No | Optional target segment label. | |
| subject_template | Yes | Subject-line template (required). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds provenance stamping and return value, but no further behavioral details like side effects or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, efficient and front-loaded with key action. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool, it covers ownership, provenance, authentication, and return value. Output schema presumably details the returned id. Minor gaps: no mention of error handling or validation constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description only briefly mentions the required ones and the drafting prompt, adding no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a reusable pitch template with subject and body templates, optional drafting prompt, owned by the user, and returns a pitch id. It is distinct from sibling tools like create_outreach_campaign or draft_outreach_email.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions ownership and authentication but provides no guidance on when to use this tool versus alternatives, no exclusions, and no context for when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_portfolio_snapshotCreate Portfolio SnapshotAInspect
Capture an immutable rollup of YOUR OWN ticket portfolio as it stands right now -- totals by status and priority, fixed at this moment and never recomputed. A snapshot is the durable 'here is where we were' that a later diff_portfolio_snapshots measures movement against, so capture one before a review rather than after. Snapshots cannot be edited or deleted once taken. The snapshot records the credential that captured it, so one taken by an agent is attributable as such. Requires authentication and the tickets:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional human label, e.g. the review it was taken for. Omitted leaves the snapshot unlabelled. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses critical behaviors not captured by annotations: the snapshot is immutable and cannot be edited/deleted, it records the credential of the capturer (attributability), and it never recomputes. Since annotations are sparse (no hints beyond non-readOnly), the description carries the weight and does so effectively. Minor deduction for not detailing output format, but output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, then explains immutability and use-case. Every sentence adds value, with no redundancy. It efficiently covers purpose, usage, and behavioral traits in a few sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (one optional param, output schema exists, strong annotations), the description is complete. It covers the key aspects an agent needs: what it does, why it's useful, when to use it, constraints, and auth scope. There's no gap that would hinder correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds no new detail on the 'label' parameter, but it does mention 'Omitted leaves the snapshot unlabelled' which clarifies optionality. The description's focus on purpose over parameters is acceptable given the single optional param is well-documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (capture an immutable rollup) and the resource (your own ticket portfolio), with specific details on what it includes (totals by status and priority) and its immutable nature. It effectively distinguishes from siblings like diff_portfolio_snapshots and get_portfolio_snapshot by emphasizing the snapshot's fixed, non-recomputed nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly recommends when to use this tool ('capture one before a review rather than after') and implies when not to use it (for comparisons, use diff_portfolio_snapshots). It also notes that snapshots cannot be edited/deleted, which sets expectations for usage. This is strong guidance beyond basic description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_portfolio_snapshot_noteCreate Portfolio Snapshot NoteAInspect
Record a decision or comment against one of YOUR OWN portfolio snapshots. Pass expected_content_hash -- the hash you saw when you read the snapshot -- and a mismatch is REFUSED rather than quietly filed against a different revision; that check is the point of this tool. Omitting it still records the note, it just does not assert which revision was on the screen. This writes down what was decided; it does not approve, reject or block anything, and nothing downstream gates on it. Requires authentication and the tickets:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | What was decided or observed. | |
| kind | No | Whether this records a decision or an ordinary comment. Defaults to comment. | comment |
| snapshot_id | Yes | The snapshot's id, from list_portfolio_snapshots. | |
| expected_content_hash | No | The snapshot's content_hash as you read it. A mismatch is refused. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) are aligned with the description's statement that it writes a note but has no downstream gating. The description also discloses side effects (record creation) and non-effects (no approval/block).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, front-loading the core action and then providing necessary caveats. Every sentence adds value—no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the detailed schema and annotations, the description is complete. It covers the tool's primary function, key parameter behavior, side effects, and clarifies that it is not part of approval processes. No gaps remain for an agent to misuse the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters (body, kind, snapshot_id, expected_content_hash) are described in the schema with meaningful defaults and purposes. The description additionally elaborates on expected_content_hash beyond the schema, explaining its role in preventing mismatched revisions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Record a decision or comment against one of YOUR OWN portfolio snapshots.' It distinguishes this from related tools like listing notes or creating snapshots, and specifies the scope (own snapshots).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use the expected_content_hash parameter and its consequence (refusal on mismatch), and clarifies that omitting it still records the note but without revision assertion. It also explicitly notes that the tool does not approve/reject/block anything, helping agents avoid misusing it for approval workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_saved_viewCreate Saved ViewAInspect
Save a named ticket filter, column, grouping and sort bundle so you can reopen it later or share it with a team. Saves the QUESTION, not an answer: the view is re-run against live tickets every time it is opened, so it never goes stale. The new view is private until you share it. Same endpoint the web app's save button uses. Requires authentication and the tickets:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | What to call the view. | |
| columns | Yes | Which ticket columns the view shows, in order. At most 20. | |
| filters | No | Which tickets the view selects. Same filter vocabulary the ticket list accepts; omitted filters are unset. | |
| sort_by | No | Optional ticket field to sort rows by. | |
| group_by | No | Optional ticket field to group rows by. | |
| sort_dir | No | Sort direction. Defaults to asc. | asc |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations all false, the description carries the full burden. It discloses that it saves a question, not an answer (views re-run on live data), that the view is private until shared, requires authentication, and needs the tickets:write scope. This goes beyond the annotations and gives actionable context about side effects and access.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose. Every sentence adds value: purpose, behavioral nuance, and access requirements. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, behavior, sharing, and authentication. With an output schema present, the need to explain return values is mitigated. It could mention how to reference the created view (e.g., returned ID), but output schema likely covers that. Overall, it is complete for an agent to decide and execute.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has descriptive semantics. The description adds context that these parameters form a bundle (filter, columns, grouping, sort) and clarifies that filters use the same vocabulary as the ticket list. This adds meaning beyond the schema by explaining how parameters work together.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves a named bundle of filter, columns, grouping, and sort for later reuse or sharing. It distinguishes from siblings like update_saved_view (which modifies) and execute_saved_view (which runs) by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use: to save a view for later or share, and notes it is the same endpoint as the web app's save button. It does not explicitly mention alternatives like update_saved_view for editing, but the purpose and context make usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_workflow_templateCreate Workflow TemplateAInspect
Create a new custom workflow template the caller owns, so a multi-step pipeline can be built in conversation instead of by hand in the browser. Saves the same definition the web builder saves. The slug is derived from the name and is returned — use it with run_workflow. Steps run sequentially in the order given; depends_on is builder metadata only and does not change execution order. Requires authentication and the workflows:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Template name, e.g. 'Competitor Teardown'. The saved slug is derived from this. | |
| tags | No | Optional tags for discovery. | |
| steps | Yes | The pipeline steps, in the order they will run. | |
| domain | No | Optional grouping domain, e.g. 'research'. Defaults to 'general'. | |
| description | No | Optional description of what the workflow does. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond annotations by revealing critical behavioral traits: steps run sequentially regardless of depends_on, 'transform' and 'connector' types fail at runtime (so agents should avoid them for actual work), slug derivation from name, and required auth scope. Annotations only show readOnlyHint=false and destructiveHint=false, which are minimal; the description compensates fully with rich, actionable details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then adds essential behavioral nuance. At 5 sentences, it's efficient without being verbose. Minor improvement could be integrating the slug note and auth scope more seamlessly, but the structure is logical and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, nested steps array, edge cases like non-agent types), the description covers all critical behavioral aspects: execution order, slug usage, type limitations, and auth requirements. It does not need to explain output schema since it exists. The description is complete for an agent to decide and invoke correctly, with no apparent gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the slug derivation ('returned — use it with run_workflow') and clarifying the depends_on caveat (metadata only), which augments the schema. It could further explain parameter interactions (e.g., how 'steps' array constraints relate) or the 'domain' default, but the added context is helpful and not redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new custom workflow template owned by the caller, with a specific use case ('multi-step pipeline can be built in conversation instead of by hand in the browser'). It differentiates from siblings like 'plan_workflow' (planning) and 'run_workflow' (execution), and the verb 'create' is precise. The description also clarifies that the tool saves the same definition as the web builder, reinforcing its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use context (building a pipeline in conversation) and explicitly references sibling tool 'run_workflow' for execution. It briefly notes that steps run sequentially and that 'depends_on' is metadata only, which helps avoid misuse. However, it lacks explicit 'when not to use' guidance or comparison to alternative tools like 'update_workflow_template' or 'plan_workflow', which could further clarify boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
decide_approvalDecide ApprovalAInspect
Answer a waiting checkpoint by request id: approve, reject, or amend. 'amend' means send the step back to be redone with the change described in notes, so notes are required for it. Spends money: approve continues the run and amend re-runs the step, both billed. Fails with a clear error, rather than silently doing nothing, if the run is no longer waiting. Requires authentication and the workflows:approve scope.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | What you want changed or why. Required when decision is amend; optional otherwise. | |
| decision | Yes | approve continues the run; reject sends the step back to be redone; amend does the same but requires notes saying what to change. | |
| approval_id | Yes | The request's id, from list_approvals. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds critical behavioral details beyond annotations: both approve and amend are billed (spends money), it fails with a clear error if the run is no longer waiting, and it requires authentication with the workflows:approve scope. These are not evident from the annotations and provide safety-critical information. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each dense with value: the purpose, the meaning of 'amend', the money implication, error behavior, and auth. No filler or redundancy, with the core action stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (so return values are documented elsewhere) and the annotations are present, the description covers the essential operational expectations: how decisions map to actions, cost implications, failure modes, and required permissions. Nothing significant is left unclear for an agent to invoke this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reiterates the notes requirement for amend and explains the decision meanings, but it adds minimal new semantic information beyond the schema's field descriptions. The 'notes' parameter is already documented as required for amend, so the description adds little.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clearly that it answers a waiting checkpoint by request id, with three explicit decisions (approve, reject, amend). The description names the specific resource (waiting checkpoint) and verb (decide), and the generic nature distinguishes it from sibling approval tools like approve_consulting_deliverable or reject_content_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies when to use: when a checkpoint is waiting and you have the request id. It does not explicitly list alternatives or exclusions, but it clarifies that the run must be waiting to succeed. Lacks a clear 'do not use if...' statement or named alternative, so not a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_accounting_runDelete Accounting RunADestructiveInspect
Permanently delete one private Accounting audit run owned by the caller. This is the only Accounting MCP deletion; it never files taxes, moves money, or contacts an external service.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description adds that deletion is permanent and clarifies the tool does not perform financial actions or contact external services, providing useful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, immediately front-loads the core action and scope, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and an output schema, the description covers ownership, scope, and constraints, making it fully adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the run_id parameter despite 0% schema coverage. However, the single parameter is self-explanatory and required, making its purpose clear enough for an agent to use correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the verb 'delete', the resource 'Accounting audit run', and the scope 'private' and 'owned by the caller'. It also distinguishes from siblings by noting it is 'the only Accounting MCP deletion'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool (to delete a run) and what it does not do (e.g., never files taxes), but does not explicitly mention when not to use it or name alternative tools like get_accounting_run.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_monitorDelete MonitorAInspect
Delete one of your standing watches, so it stops firing. Does not touch anything it already started. Requires authentication and the monitors:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| monitor_id | Yes | The monitor's id, from create_monitor or list_monitors. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly describes a destructive operation ('Delete one of your standing watches'), but the annotations set destructiveHint=false, which contradicts the described behavior. Per the rubric, this is an annotation contradiction, so the score is 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the key action and add only essential clarifications: the effect, the non-effect, and the required scope. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete tool with an output schema, the description covers the effect, what it does not affect, and authentication requirements. The only notable gap is the annotation contradiction, which is already penalized in behavioral transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter, including a clear description of monitor_id. The tool description does not add parameter-specific semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Delete') and resource ('standing watches'), and clarifies the effect ('so it stops firing'), which distinguishes it from create_monitor/list_monitors and other delete_* siblings. The purpose is immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool ('so it stops firing') and explicitly states a non-effect ('Does not touch anything it already started'). However, it does not name alternatives or provide when-not-to-use guidance, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_saved_viewDelete Saved ViewAInspect
Permanently delete one of YOUR OWN saved views. UNRECOVERABLE -- there is no undo and the definition is not retained. archive_saved_view is the reversible retirement and is almost always what is wanted instead; use this only for a view that should actually be gone. Deleting a shared view removes it for the team too. Requires authentication and the tickets:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| view_id | Yes | The view's id, from list_saved_views. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description transparently discloses that deletion is permanent and unrecoverable, and mentions authentication requirements. However, the annotation `destructiveHint: false` contradicts this, as deleting a saved view is clearly destructive. This contradiction undermines transparency and warrants a score of 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct yet comprehensive, front-loading the core action and including essential warnings, alternative guidance, shared view implications, and auth requirements in a few sentences. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature, the description thoroughly covers the irreversible aspect, suggests a safer alternative, notes the team-wide impact, and specifies authentication and scope needs. It is complete for a tool with this complexity and existing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description covers 100% of the single parameter, view_id, with a clear explanation of its source (from list_saved_views). The tool description adds no extra meaning beyond that, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: permanently delete a user's own saved view. It also distinguishes from the sibling archive_saved_view by explicitly naming it as a reversible alternative, which differentiates the tool and clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus archive_saved_view, stating that archive is 'almost always what is wanted instead' and that delete is only for views that should truly be removed. It also warns about the impact on shared views, offering clear exclusions and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_workflow_templateDelete Workflow TemplateAInspect
Delete a custom workflow template the caller owns. Built-in templates cannot be deleted. This removes the saved definition; runs already started from it are unaffected. Requires authentication and the workflows:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Slug of the template to delete, from list_workflows. | |
| expected_template_fingerprint | No | Optional. The definition fingerprint you last saw for this template, returned by update_workflow_template when it last succeeded. Supply it and the write refuses, changing nothing, if the stored template is no longer the one that fingerprint names -- someone else edited or deleted it since you read it. Omit it and the write proceeds as it always has, overwriting whatever is there. This is not the definition_sha reported for a run: that one also reflects global configuration, this one names the stored file alone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly says 'removes the saved definition,' which is inherently destructive, yet the annotation declares destructiveHint: false. This is a direct contradiction. The description does disclose that runs are unaffected and requires auth/scope, but the destructive nature contradicts the annotation, warranting the lowest score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, all purposeful. It front-loads the core action and ownership, then adds built-in exclusion, impact on runs, and auth requirements. Every sentence adds value without redundancy, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it's a delete operation with an output schema, the description covers essential context: scope, ownership, impact on existing runs, and auth requirements. It doesn't explain the fingerprint parameter, but the schema does. It also doesn't mention failure conditions, which are presumably in the output schema. Overall, it is quite complete for the tool's complexity, though not flawless.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with detailed descriptions (e.g., slug and expected_template_fingerprint). The tool description adds no parameter-specific information beyond what the schema already provides, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete), the resource (custom workflow template), and the ownership constraint (caller owns). It distinguishes from siblings like create_workflow_template and update_workflow_template by specifying that built-in templates cannot be deleted. This is a specific, unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: only for custom templates owned by the caller, not built-ins. It also notes that runs already started are unaffected, giving insight into the impact. While it doesn't explicitly name alternative tools, the ownership and built-in exclusions effectively guide when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diff_portfolio_snapshotsDiff Portfolio SnapshotsARead-onlyIdempotentInspect
Compare two of your own portfolio snapshots and return the per-dimension movement between them. snapshot_id is always the 'to' side; against is the 'from' baseline, defaulting to your newest snapshot strictly older than it -- the 'what changed since last time' read, which is reported as not found when this is your first snapshot. Comparing an older snapshot against a newer one is allowed and disclosed rather than silently confusing: the result says whether the pair is chronological and the elapsed days go negative. Both sides are immutable, so a diff is reproducible indefinitely. Requires authentication and the tickets:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
| against | No | The baseline to compare against -- the 'from' side. Omit for your newest snapshot older than snapshot_id. | |
| snapshot_id | Yes | The snapshot being examined -- the 'to' side, from list_portfolio_snapshots. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive. The description adds significant behavior beyond this: immutability ('Both sides are immutable, so a diff is reproducible indefinitely'), default rule for the baseline, the 'not found' result for the first snapshot, and the explicit disclosure of reverse-chronological behavior with negative elapsed days. It also states auth requirements (tickets:read scope). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is composed of four purposeful sentences. It starts with the core action, then explains parameter direction and defaults, then covers edge-case disclosure, then immutability and auth. No redundant or filler content; every sentence contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 params, output schema present, annotations provided), the description covers all essential aspects: purpose, parameter behavior, edge cases, side effects (none, immutability), and required permissions. The output schema presumably documents the return shape, so no further detail is needed. The description is self-sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters already have descriptions in the schema. The tool description reinforces the 'to'/'from' side semantics and explains the defaulting rule for 'against', which adds clarity beyond the schema's individual parameter descriptions. Since the schema already carries most of the meaning, the description's incremental value is moderate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Compare two of your own portfolio snapshots and return the per-dimension movement between them." This clearly distinguishes it from sibling tools like get_portfolio_snapshot (single snapshot) or list_portfolio_snapshots (listing). The 'your own' scope and the output type (per-dimension movement) are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to use the tool, including the direction semantics ('snapshot_id is always the to side; against is the from baseline') and the default behavior ('defaulting to your newest snapshot strictly older than it'). It also covers edge cases like first snapshot and reverse comparisons. However, it does not explicitly name alternative tools or state when not to use this tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_outreach_emailDraft Outreach EmailAInspect
Save a draft email subject and/or body onto one of the user's leads. This only stores the draft for human review — it does NOT send anything. A human sends from the dashboard. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| lead_id | Yes | Lead id to draft for (from search_outreach_leads). | |
| email_body | No | Draft email body. | |
| subject_line | No | Draft subject line. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds key behavioral context beyond annotations: it does NOT send anything, it only stores for review, and requires authentication. No contradiction with annotations; readOnlyHint=false is consistent with creating a draft.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding essential information: action, non-sending clarification, authentication requirement. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple draft-saving tool with an output schema, the description covers core behavior, safety (no send), and auth. Could mention error handling but still adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by specifying that lead_id comes from search_outreach_leads, which helps in selecting the correct parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it saves a draft email subject and/or body onto a lead, using specific verbs and resource. It distinguishes from siblings by emphasizing it does NOT send anything.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use (storing a draft for human review) and when not (does not send, human sends from dashboard). It does not name alternative tools but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_costEstimate CostARead-onlyIdempotentInspect
Estimate what a panel or saved workflow would cost before running it: returns a per-agent/per-step price breakdown, the total for the requested number of runs, your remaining quota and platform credit, an honest list of any models the platform could not price, and a go/no-go decision. Reserves nothing, charges nothing, starts nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | What to price: a council panel or a saved workflow. | |
| runs | No | How many runs to price (default 1). | |
| model | No | Optional single model override applied to every agent or step. A model absent from the pricing catalog is reported in unpriced_models rather than silently priced as the default. | |
| panel | No | Panel slug when kind is 'council' (default: 'default'). | |
| workflow | No | Workflow slug — required when kind is 'workflow'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds concrete behavioral clarity with 'Reserves nothing, charges nothing, starts nothing', which explains the operational side-effect-freedom in domain terms. It also discloses honest reporting of unpriced models, going beyond the generic annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense sentence with front-loaded purpose ('Estimate what a panel or saved workflow would cost before running it'), followed by a colon-separated list of outputs and a final safety clause. Every clause earns its place, and it avoids fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description appropriately avoids detailing return fields. It covers the tool's scope (pre-run estimation), key output categories, the unpriceable-models edge case, and its non-destructive nature. This is a complete picture for an AI agent to decide when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already includes detailed parameter documentation (e.g., the model parameter explicitly states that absent models are reported in unpriced_models). The description's references to 'per-agent/per-step price breakdown' and 'requested number of runs' vaguely map to the runs parameter but add no new semantic details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Estimate what a panel or saved workflow would cost before running it'. It also enumerates concrete outputs (per-agent/per-step breakdown, total, quota, credit, unpriced models, go/no-go), which clearly distinguishes it from sibling tools like run_council or run_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before running it' establishes the core use context as a pre-execution cost estimation step. It does not explicitly name alternatives like run_council or run_workflow, nor list when not to use it, but the contrast with running tools is implied clearly enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_saved_viewExecute Saved ViewARead-onlyIdempotentInspect
Run a saved ticket view's stored filters against live tickets and return the matching tickets, the view that produced them, and group counts when the view groups. Results are always YOUR tickets: a shared view shares the question, not the answers, so opening a teammate's view runs it against your own work and never reveals theirs. An archived view is refused rather than executed. Returns the same payload the web app receives. Requires authentication and the tickets:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many tickets to return. Defaults to 200. The ceiling is above the ordinary ticket page size because group counts need to see more rows in one call than a paged list does. | |
| offset | No | How many tickets to skip. Defaults to 0. | |
| view_id | Yes | The view's id, from list_saved_views. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses behavior beyond annotations: it notes results are always the user's own tickets, that shared views do not reveal others, and that archived views are refused. It also states the return payload and required auth/scopes, adding transparency not fully 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative and front-loaded with the core purpose, but it repeats the phrase 'your tickets' and could be slightly trimmed without losing meaning. Still, it is well-structured and not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the core behavior, result semantics, edge cases (archived views), return payload, and authentication/scoping requirements, making it complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides descriptions for all three parameters (limit, offset, view_id). The description adds no extra meaning to these parameters, so it stays at the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool runs a saved view's stored filters against live tickets and returns matching tickets, which distinguishes it from sibling tools like get_saved_view or list_saved_views.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context on when to use (has a saved view and wants tickets) and clarifies semantics around shared and archived views, but does not explicitly compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accounting_runGet Accounting RunARead-onlyIdempotentInspect
Get one private Accounting run owned by the caller, including its deterministic estimates, disclaimer, engine revision, and audit timestamps. Source input stays omitted unless include_input=true is explicitly requested.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| include_input | No | Also return the caller's decrypted source text; use sparingly. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly, idempotent, non-destructive), the description adds that the response includes deterministic estimates, disclaimer, engine revision, audit timestamps, and that source input is omitted unless explicitly requested. This 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy, front-loaded with the core action. Every sentence adds necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the tool is a simple get with two parameters, the description covers all key behavioral aspects: what is included in the response and the conditions for including input. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; the description indirectly explains run_id's purpose but adds no format details. It does explicitly explain include_input's effect, but overall adds limited parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('private Accounting run'), and clearly distinguishes itself from sibling list_accounting_runs by specifying it retrieves a single run owned by the caller.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for retrieving a single run by ID and includes guidance on when to use include_input. However, it does not explicitly state when not to use it or mention alternatives like list_accounting_runs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_detailGet Agent DetailARead-onlyIdempotentInspect
Full detail on one expert agent by slug (from list_agents): role, description, default model, domain, tags, and tools.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The agent slug, e.g. 'safety_officer'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds value by listing the returned fields but does not disclose additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that immediately conveys the action (get full detail) and resource (agent by slug). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one simple parameter, an output schema exists (so return details not needed), and the description lists the fields returned. Given the low complexity, the description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the slug parameter already described. The description mentions slug implicitly but adds no further semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets full detail on an expert agent by slug, listing specific fields (role, description, default model, domain, tags, tools). It distinguishes from the sibling tool list_agents by using the phrase 'from list_agents'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly references list_agents as the source for slugs, providing clear context for when to use this tool. It implies a two-step workflow: list agents to get slugs, then use this tool for details. No explicit when-not, but guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_key_infoGet Api Key InfoARead-onlyIdempotentInspect
Report the scopes, plan tier, expiry and remaining quota of the API key making this call, so an agent can check what it is allowed to do before attempting it rather than by being refused. Requires API-key authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, and non-destructive. The description adds valuable context beyond annotations by specifying that it requires API-key authentication and that it reports on the API key making the current call. This gives the agent the necessary behavioral context without redundancy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and return fields, followed by a necessary authentication note. Every word adds value; there is no fluff or repetition of schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters), rich annotations, and the existence of an output schema, the description provides all essential context: what the tool returns, why it should be used, and its authentication requirement. It fully equips an agent to decide when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is trivially 100% covered. The description does not need to explain parameters. Per the rubric, a zero-parameter tool receives a baseline of 4, and the description adds no extra but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb 'Report' and the resource 'API key'. It enumerates the exact information returned (scopes, plan tier, expiry, remaining quota), which distinguishes it from all sibling tools that focus on business operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context: use this tool to check permissions before making other calls, avoiding refusals. It does not explicitly name alternatives, but no direct alternative exists among siblings. It implies a 'when to use' without excluding any particular scenario, so it falls just short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_consulting_engagementGet Consulting EngagementARead-onlyIdempotentInspect
Get one owned engagement with its document revisions, milestones, and internal deliverables. Long document bodies are previewed.
| Name | Required | Description | Default |
|---|---|---|---|
| engagement_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, destructiveHint) indicate safe read. The description adds that long document bodies are previewed, providing useful nuance 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences deliver key information without redundancy. Front-loaded with the main action and then additional details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description appropriately focuses on input and behavior. It covers the returned entity structure and the note on long document previews, making it substantially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter engagement_id is clear from the schema. The description mentions 'owned engagement', hinting at authorization scope, but does not add detailed semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a single engagement along with its related entities (document revisions, milestones, internal deliverables). It explicitly distinguishes from list_consulting_engagements by focusing on a single record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need a specific engagement with its children, but does not explicitly contrast with other retrieval tools like get_deal or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_content_assetGet Content AssetARead-onlyIdempotentInspect
Get one owned content revision, including its review state and exact content hashes.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | Full UUID from the matching list tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds minor context (owned revision, included fields) but does not significantly expand 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the verb and resource, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter and an output schema, the description is complete: it specifies what is retrieved and key included fields (review state, hashes). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already describes the asset_id parameter. The tool description adds no additional meaning for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves one owned content revision, specifying what is included (review state, content hashes). It distinguishes from sibling list_content_assets and create/update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool vs alternatives like list_content_assets. Usage is implied from the purpose but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_content_calendarGet Content CalendarARead-onlyIdempotentInspect
List scheduled owned content between optional ISO-8601 boundaries. Scheduling is planning metadata, not publishing.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | ||
| start | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
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 valuable context that scheduling is metadata and does not involve publishing, enhancing transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the action and scope, the second clarifies the nature of scheduling. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (two optional parameters, simple types, existing annotations and output schema), the description adequately covers what the tool does and the nature of the data, making it complete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions 'optional ISO-8601 boundaries' which hints at the start and end parameters, but does not explicitly describe each parameter's role. With 0% schema description coverage, more detail would be beneficial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'scheduled owned content', distinguishing it from sibling tools like list_content_assets. The clarification that scheduling is planning metadata, not publishing, further refines the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing scheduled content within a date range using ISO-8601 boundaries. While it does not explicitly name alternatives, the context makes it clear when this tool is appropriate compared to general listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dealGet DealARead-onlyIdempotentInspect
Fetch one of the caller's deals by id with its full activity timeline (notes, calls, meetings, emails, tasks; newest first).
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | The deal id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds context that the result includes a full activity timeline sorted newest first, which goes beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that front-loads the action and includes key details (timeline contents, sort order). Every word is necessary and efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the output schema exists, and the description covers the main return value (activity timeline). It omits error behavior or pagination details, but these are standard for a fetch-by-id tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already documents 'deal_id'. The description adds no extra meaning beyond implying the parameter is used for fetching, which is already clear. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and specifies the resource 'one of the caller's deals by id' with the unique added value of including the full activity timeline. This distinguishes it from siblings like list_deals and get_deal_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you have a specific deal_id and need the full timeline, contrasting with list_deals for browsing. It does not explicitly list when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deal_healthGet Deal HealthARead-onlyIdempotentInspect
Health scores for the caller's OPEN deals: each scored 0-100 on how likely it is to be slipping (healthy >= 70 / watch / at_risk), worst first, with plain-language reasons — days since last logged contact, whether it is past its own expected close date, and how its age compares to the caller's average won-deal cycle. Includes per-band counts, an average score, and the reference cycle. Read-only and deterministic over the caller's own deals + activities; nothing is executed or sent. Pair with get_sales_recommendations to act on what is slipping. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds critical details: deterministic over caller's own deals+activities, nothing executed or sent. Fully consistent with annotations and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence that front-loads the main purpose and systematically details scoring, ranking, reasons, and output components. Every phrase adds value with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema referenced, the description is complete: explains scoring logic, ranking order, reasons included (last contact, close date, age vs cycle), and output summary (per-band counts, average score, reference cycle). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description adds no parameter info needed. It implicitly clarifies the scope (caller's OPEN deals). Baseline for 0 params is 4, but the description exceeds by providing context about scope.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns health scores for the caller's OPEN deals, with specific scoring details (0-100, bands, reasons). It distinguishes from siblings like 'get_deal' (single deal) and 'get_sales_recommendations' (recommendations to act on slipping).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the tool is read-only, deterministic, and does not execute or send anything. Provides guidance to pair with 'get_sales_recommendations' for action, offering a clear alternative. Implicitly advises when to use: for assessing deal health.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoiceGet InvoiceARead-onlyIdempotentInspect
Fetch one of the caller's invoices by id, including its line items.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | The invoice id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable behavioral context beyond annotations: it states the invoice must belong to the caller (restricting valid ids) and that line items are included in the result. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and resource. Every piece of information (caller scope, id parameter, line items) earns its place; no filler or redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with annotations and an output schema, the description is fully adequate. It communicates the essential selection criteria (caller-scoped, single invoice, line items) and does not need to explain return values because an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description ('The invoice id.') is straightforward. The tool description adds semantic nuance by implying that invoice_id must reference one of the caller's invoices, which is not stated in the schema. This qualifies as extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch'), identifies the resource ('one of the caller's invoices'), and adds scope ('by id') and content details ('including its line items'). This clearly distinguishes it from list_invoices, get_deal, and other retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one of the caller's invoices' clearly conveys the access scope, and 'by id' indicates a prerequisite (having the invoice_id). It does not explicitly name alternatives like list_invoices, but the context is clear enough for an agent to know when to use it: when a specific invoice id is known and line items are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_invoice_agingGet Invoice AgingARead-onlyIdempotentInspect
Summarize the caller's unpaid invoices by how long they have been past due. This owner-scoped, read-only report is computed live; an invoice is overdue only when its status is sent and its due_date is before today.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds valuable behavioral context by noting 'owner-scoped' and 'computed live', and precisely defines overdue as status 'sent' and due_date before today, going 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, directly front-loaded with the primary purpose. No filler or redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and no parameters, the description covers key contextual aspects: scope, live computation, and overdue definition. The only minor ambiguity is whether the report includes all unpaid invoices or only overdue ones, but the phrasing leans toward all unpaid with aging buckets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema is empty. Per the rubric, baseline for 0 parameters is 4; the description adds no parameter info but also needs none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Summarize' and identifies the resource as 'the caller's unpaid invoices' with a focus on aging. It clearly distinguishes from sibling tools like get_invoice and list_invoices by describing the aging summary scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states this is an owner-scoped, read-only report computed live, which implies when to use it. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketing_audienceGet Marketing AudienceARead-onlyIdempotentInspect
Get one owned audience definition with pain points and channels.
| Name | Required | Description | Default |
|---|---|---|---|
| audience_id | Yes | Full UUID from the matching list tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive. The description adds that the response includes pain points and channels, which is useful but minimal. No discussion of error handling or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero waste. Front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple (1 param, safe, has output schema). Description covers the core goal, but lacks guidance on when to use versus listing audiences. Still adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains the parameter (UUID from list tool). The description adds no additional parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'audience definition', and specifies the contents (pain points and channels). It distinguishes from sibling tools like list_marketing_audiences (which lists all) and create/update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like list_marketing_audiences. The context implies using it for retrieving a specific audience by ID, but no when-not-to or alternative naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketing_brandGet Marketing BrandARead-onlyIdempotentInspect
Get one owned brand identity with its voice, value proposition, and guidelines.
| Name | Required | Description | Default |
|---|---|---|---|
| brand_id | Yes | Full UUID from the matching list tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds minimal behavioral context beyond listing the returned attributes (voice, value proposition, guidelines). No additional safety or side-effect information is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the verb and resource. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET-by-ID tool with one required parameter, full schema coverage, and an output schema, the description sufficiently explains what the tool returns. It is complete enough for an AI agent to understand its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the brand_id parameter as 'Full UUID from the matching list tool.' The description does not add new semantics beyond what the schema provides, and schema coverage is 100%, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'owned brand identity', specifying that it includes voice, value proposition, and guidelines. This distinguishes it from sibling tools like list_marketing_brands or create_marketing_brand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for retrieving a single brand but lacks explicit guidance on when to use this tool versus alternatives like list_marketing_brands or update_marketing_brand. No exclusions or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketing_campaignGet Marketing CampaignARead-onlyIdempotentInspect
Get one owned marketing campaign with its brand, audience, channels, and dates.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Full UUID from the matching list tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. Description adds value by specifying the returned data (brand, audience, channels, dates), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence of 12 words. Front-loaded with verb and resource. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, annotations covering behavioral traits, and a single well-described parameter, the description provides complete context for an agent to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description 'Full UUID from the matching list tool.' Description adds subtle context by specifying 'owned' campaign, implying ownership constraint, slightly enhancing schema meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' and identifies resource 'one owned marketing campaign', listing returned fields (brand, audience, channels, dates). Clearly distinguishes from sibling tools like list_marketing_campaigns and create_marketing_campaign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for retrieving a specific campaign by ID. Context from sibling tools provides clear differentiation (list vs get). Lacks explicit when-not or alternatives, but sufficient for a simple retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_meta_council_platform_metricsGet Meta Council Platform MetricsARead-onlyIdempotentInspect
OPERATOR ONLY: cross-owner analytics for the META COUNCIL PLATFORM itself — every account added together, NOT the caller's workspace (use get_workspace_metrics for that). Requires both the platform:admin scope AND an ADMIN_EMAILS operator account; everyone else gets a permission error. Returns content-free aggregates only: account counts, 30-day active owners, session counts by status and token totals, ticket open/done, deal pipeline value, invoice outstanding and overdue totals, feedback backlog, per-pillar adoption, the busiest panel slugs, and a per-account activity table (email and counts). It never returns query text, answers, feedback bodies, deal or invoice detail, or any other text a user typed — the aggregate reports how much, never what about. Note that open + done need not equal the ticket total: cancelled tickets are neither.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows it's a safe read. The description adds substantial behavioral context beyond annotations: it returns only content-free aggregates, lists explicit categories of data it NEVER returns (query text, answers, feedback bodies, etc.), and clarifies edge-case semantics (open + done need not equal ticket total due to cancelled tickets). This is rich, non-redundant disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence in the description adds value: the front-loaded 'OPERATOR ONLY' flags access restrictions, the scoping/differentiation sentence is functional, the aggregate list is comprehensive but compact, and the exclusions and caveat are critical. The description is appropriately sized for the tool's complexity—there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 0 params and an output schema exists, the description goes above and beyond by itemizing the aggregate metrics, specifying the never-returned data types, and clarifying the relationship between counts. It also covers permission errors, making it complete for an agent to safely invoke. The output schema enriches the return structure, but the description independently ensures full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, so the input schema provides no parameter semantics. Per rubric, 0 params = baseline 4. The description does not need to explain parameters, but it compensates by thoroughly describing the output dimensions (account counts, sessions, tickets, pipeline, etc.), which effectively defines what the tool returns. No additional parameter explanation is possible.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb+resource: 'cross-owner analytics for the META COUNCIL PLATFORM itself'. It immediately distinguishes from the sibling get_workspace_metrics by explicitly stating what it is NOT ('the caller's workspace') and pointing to the alternative. The scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use guidance: use for cross-owner platform analytics, not for caller workspace (directing to get_workspace_metrics). It also states the exact permission prerequisites ('platform:admin scope AND an ADMIN_EMAILS operator account') and the consequence for others ('permission error'). This is model usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portfolio_snapshotGet Portfolio SnapshotARead-onlyIdempotentInspect
Fetch one portfolio snapshot by id: its label, schema version, the exact stored rollup payload, its content hash, who recorded it and when. The payload is served from storage and is never recomputed from live tickets, so a snapshot read today reports what was true when it was taken. A snapshot you do not own is reported as not found rather than as forbidden. Requires authentication and the tickets:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
| snapshot_id | Yes | The snapshot's id, from list_portfolio_snapshots. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent, but the description adds crucial behavioral traits: the payload is served from storage and never recomputed, ownership semantics (not found vs forbidden), and required auth scope (tickets:read). These go beyond annotations and help the agent anticipate edge cases and security requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and then concise behavioral details. Every clause adds value, with no redundancy or vague language. It is efficiently structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it's a simple read operation with a single parameter and an output schema exists, the description covers all necessary context: return fields, storage behavior, ownership handling, and authentication. It is fully complete for an agent to correctly invoke the tool without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter snapshot_id is already well described in the schema ('The snapshot's id, from list_portfolio_snapshots'). The description does not add further parameter-level detail (e.g., format constraints, examples) 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool fetches one portfolio snapshot by id and enumerates the exact fields returned (label, schema version, rollup payload, content hash, recorder, timestamp). This distinguishes it from siblings like list_portfolio_snapshots (listing) and diff_portfolio_snapshots (comparison) while clearly specifying the resource and action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (to fetch a specific snapshot's stored details) and clarifies that the payload is not recomputed, so for current live data one would use other tools. However, it does not explicitly name alternatives or state when not to use it, though the param description references list_portfolio_snapshots as the source for ids, providing some context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sales_analyticsGet Sales AnalyticsARead-onlyIdempotentInspect
Sales pipeline analytics for the caller: probability-weighted forecast, per-stage $ rollup, win rate (won / decided, by count and by value), average sales-cycle days over won deals, and open-deal aging with a stale count. Read-only; computed from the caller's own deals. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by specifying that data is 'computed from the caller's own deals' and requires authentication, providing context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundancy. The first sentence lists all key metrics, and the second adds constraints (read-only, auth). Every sentence is informative and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter analytics tool with an output schema, the description covers all necessary aspects: metrics, scope, read-only nature, and authentication. It is complete without needing to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema coverage, so no additional explanation is needed. Baseline 4 is appropriate as the description adds no param info, but none is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies 'Sales pipeline analytics for the caller' and enumerates specific metrics (forecast, rollup, win rate, aging), clearly identifying the resource and scope. It distinguishes from sibling tools like get_deal (single deal) and campaign_pipeline_stats (campaign-level).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool is 'Read-only; computed from the caller's own deals' and 'Requires authentication,' providing clear context for when to use. It lacks explicit when-not-to-use or alternatives, but the purpose is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sales_recommendationsGet Sales RecommendationsARead-onlyIdempotentInspect
The caller's prioritized next-best sales actions: interested leads to convert, open deals gone stale enough to need a follow-up, and overdue tasks — each with a rationale and the exact governed tool to run next (convert_lead_to_deal / log_deal_activity / complete_sales_task) plus its arguments. Read-only; ranks the caller's own CRM data (overdue > convert > follow-up). Nothing is executed or sent — approve an item by calling the named write tool. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature, ranking logic (overdue > convert > follow-up), that it operates on caller's own CRM data, and that it requires authentication, complementing annotations (readOnlyHint, idempotentHint). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
All sentences are essential, well-organized, and front-loaded with the main purpose. No redundancy, under 150 words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is an output schema, the description appropriately covers the items returned, rationale, and next steps without needing to detail return values. Complete for a read-only recommendation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so description doesn't need to add parameter details. Baseline score of 4 is appropriate as per guidelines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it delivers 'prioritized next-best sales actions' specifying the types (interested leads, stale deals, overdue tasks) and distinguishes from siblings by being read-only and recommending specific write tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (to get next actions) and when not (nothing is executed/sent), provides alternatives (convert_lead_to_deal, log_deal_activity, complete_sales_task), and mentions authentication requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_saved_viewGet Saved ViewARead-onlyIdempotentInspect
Fetch one saved ticket view's definition by id: its name, filters, columns, grouping, sort and whether it is shared. This returns the view itself, not the tickets it selects -- use execute_saved_view to run it. A view you cannot read is reported as not found rather than as forbidden, so this cannot be used to discover that someone else's view exists. Requires authentication and the tickets:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
| view_id | Yes | The view's id, from list_saved_views. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond annotations: it returns the view definition and not its results, it treats unreadable views as not found to prevent discovery, and it requires authentication and tickets:read scope. This complements the annotations (readOnlyHint, idempotentHint) 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, leading with the core action, then clarifying the output difference, security behavior, and prerequisites. No unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with a rich output schema and informative annotations, the description covers the essential behavior: what is returned, what is not, privacy implications, and authentication requirements. It is sufficiently complete for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully documents view_id with a description including its source (list_saved_views). The tool description does not add additional parameter details, but the parameter is simple. Since schema coverage is 100%, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and the resource 'one saved ticket view's definition' with specific fields (name, filters, columns, grouping, sort, shared). It also distinguishes itself from the sibling tool execute_saved_view by explicitly clarifying it returns the definition, not the tickets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent to use execute_saved_view to run the view, providing an alternative. It also explains the not-found versus forbidden behavior, which guides usage. However, it does not explicitly state when NOT to use this tool, though the alternative is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sessionGet SessionARead-onlyIdempotentInspect
Get the full results of a previous Meta Council session, including all agent opinions and the synthesis.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The session ID to retrieve |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds only that it returns 'all agent opinions and the synthesis', but does not disclose any additional behavioral traits such as error handling, performance, or access restrictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 15 words, front-loaded with the core purpose. Every part is necessary, with no redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description is mostly complete. It mentions the included content, but lacks mention of prerequisites (e.g., session must exist and be from a previous run).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for session_id ('The session ID to retrieve'). The tool description does not add meaning beyond this schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'full results of a previous Meta Council session', including what is returned (all agent opinions and synthesis). It distinguishes from sibling tools like get_workflow_session and run_council by specifying the context of Meta Council sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It lacks context about prerequisites (e.g., a session must exist from run_council) and does not mention any exclusions or conditions. Usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_settingsGet SettingsARead-onlyIdempotentInspect
Get the authenticated user's Meta Council settings — preferred model, plan tier, and which provider/tool API keys are configured (booleans only, never the secret values). Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, idempotent, and not destructive. The description adds value by noting that API keys are returned as booleans only (never secrets), which is critical behavioral context for safety. There is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose, and contains no extraneous information. Every word adds value, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with an output schema, the description covers necessary context: what is retrieved (specific settings), that secrets are not exposed, and the authentication requirement. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% schema description coverage. The description adds no parameter meanings because none exist, which is acceptable. Baseline 4 is appropriate given the schema already fully describes the absence of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and title clearly indicate it retrieves settings. The description specifies it gets the authenticated user's Meta Council settings, listing preferred model, plan tier, and API key configuration booleans. This distinguishes it from other sibling tools like get_agent_detail or get_consulting_engagement by focusing on user-specific settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'Requires authentication,' which is a clear prerequisite. It implicitly indicates this tool is for retrieving personal settings, but it does not explicitly exclude cases or mention alternatives. Given the tool's simplicity and uniqueness among siblings, the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_analyticsGet Site AnalyticsARead-onlyIdempotentInspect
OPERATOR ONLY: visitor traffic for the META COUNCIL PLATFORM's own website — every visitor added together, NOT the caller's workspace (use get_workspace_metrics for that) and NOT the business rollup (use get_meta_council_platform_metrics for that). Requires both the platform:admin scope AND an ADMIN_EMAILS operator account; everyone else gets a permission error naming which of the two requirements failed. Covers a window of whole UTC days ending today, set by days. Returns total views, unique visitors, the authenticated/anonymous split, the busiest public paths, the busiest in-app sections, top referrers and a per-day series, plus the window it covers so the caller need not track what it asked for. Page paths and in-app sections are counted separately and are not comparable to one another. It never returns per-visitor rows, email addresses, IP hashes, user agents, session identifiers or query text — the rollup reports how many, never who.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Whole UTC days to cover, ending today. Defaults to 7. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) by detailing the exact permission requirements and the error message behavior, the window of whole UTC days, the separation of page paths and in-app sections, and the explicit list of data that is never returned (per-visitor rows, emails, IP hashes, etc.). This provides rich behavioral context that annotations alone do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph that packs a lot of information. It is front-loaded with the key purpose and differentiators, but the length is substantial. While every sentence adds value, the density could be slightly improved with better structure (e.g., separating permission requirements from data details). Still, it is efficient and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple metrics, permission requirements, exclusions), the description is remarkably complete. It covers what is returned, what is not returned, the window semantics, the permission model, and the relationship to sibling tools. The output schema exists, so return values are documented, and the description adds the necessary context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the 'days' parameter with a description, min/max, and default. The description adds context about the window being whole UTC days ending today, which aligns with the schema. Since schema coverage is 100% and the description reinforces the semantics without adding new parameter-specific details, a score of 4 is appropriate (baseline 3 plus the added context about UTC days).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns visitor traffic for the META COUNCIL PLATFORM's own website, explicitly distinguishing it from workspace metrics and business rollup metrics. It names the specific metrics returned (views, unique visitors, split, paths, sections, referrers, per-day series) and the window covered, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (for platform website traffic) and when not to (not for caller's workspace, not for business rollup), naming the alternative tools get_workspace_metrics and get_meta_council_platform_metrics. It also specifies the required permissions (platform:admin scope AND ADMIN_EMAILS operator account) and the error behavior for unauthorized callers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticket_burndownGet Ticket BurndownARead-onlyIdempotentInspect
Daily burndown series replayed from the append-only ticket ledger: per-day scope (existing, non-cancelled), remaining, done levels plus added/completed flows, with a summary. Optionally scope to one epic's current subtree via root_id. Backfill (legacy_snapshot) rows seed state but never count as additions. days clamps to 7-180 (default 30). Optionally pass target_date to overlay a straight-line plan: an ideal series descending from the window-start remaining to zero on that date, for reading actual against plan.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| root_id | No | ||
| target_date | No | Optional plan-line end date, YYYY-MM-DD. Must be strictly after the window start. Omitting it leaves the output exactly as it is without a plan line. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only/idempotent, but the description adds crucial non-obvious behavior: backfill rows seed state but never count as additions, and the daily series is replayed from a ledger. These details go beyond the annotation hints and prevent misinterpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses five sentences, each covering a distinct aspect: core series, root_id scoping, backfill semantics, day clamping, and target_date plan overlay. There is no filler or repetition; the primary function is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an existing output schema, the description explains the ledger-replay mechanism, definition of scope (existing, non-cancelled), and backfill handling. All optional parameters are behaviorally specified, making the tool self-contained for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only target_date has a description), yet the description fully defines all three parameters: days default and clamping, root_id epic-subtree scoping, and target_date plan-line behavior. This compensates for the sparse schema and gives agents exact parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Daily burndown series replayed from the append-only ticket ledger,' specifying the exact output components (scope, remaining, done, added/completed flows). It clearly distinguishes this analytics tool from siblings like get_ticket_projects or ticket_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use optional parameters: root_id scopes to an epic subtree, target_date overlays a plan line, and days clamps to 7–180. Although it doesn't explicitly name alternative tools, the purpose is unambiguous among the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ticket_projectsGet Ticket ProjectsARead-onlyIdempotentInspect
Projects overview of the caller's board: one entry per top-level epic with recursive descendant progress (done %, counts by status, blocked, points, sub-epics, last activity), plus a triage strip of unrouted work (backlog + unassigned root tickets). Read-only, recomputed live. Use this before planning a session to see initiative health at a glance; use ticket_list/ticket_get to drill into any id it returns.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds behavioral context by noting that the data is 'recomputed live' and explaining the composition ('one entry per top-level epic with recursive descendant progress' and 'triage strip'). There is no contradiction. A slight deduction because it doesn't discuss potential performance implications of live recomputation, but annotations lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and includes a concise list of included metrics. It then provides usage guidance in the same sentence without waste. Every phrase contributes value, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's zero parameters, rich annotations, and existing output schema, the description sufficiently covers what the tool does, when to use it, and how to proceed after using it. It does not need to detail return values because the output schema exists. It also provides useful context about live recomputation and the triage strip, making it complete for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, making schema coverage 100% vacuously. The description cannot add parameter-level meaning because there are none. Baseline for 0 params is 4. It does describe the output structure, which helps but is not directly parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it returns a projects overview of the caller's board with detailed per-epic progress and a triage strip. It uses a specific verb ('Get') and resource ('Ticket Projects'), and distinguishes itself from siblings by explicitly directing to ticket_list/ticket_get for drilling into IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool ('before planning a session to see initiative health at a glance') and provides an alternative for further drill-down ('use ticket_list/ticket_get to drill into any id it returns'). This gives clear context and alternatives, satisfying the guideline requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_visualizationGet VisualizationARead-onlyIdempotentInspect
Fetch a chart artifact generated by a council session or LOCUS determination. Returns the machine-readable spec (the data behind the chart) plus the stable SVG URL, or the raw SVG itself with include_svg=true. Artifact ids appear in session results as 'visualizations' / 'visualization' reference blocks. Requires authentication and enforces the artifact owner's tenant boundary.
| Name | Required | Description | Default |
|---|---|---|---|
| artifact_id | Yes | 32-hex artifact id from a visualization reference | |
| include_svg | No | Also return the full SVG markup (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only, idempotent, non-destructive. The description adds what the tool returns (spec, SVG URL, optionally raw SVG) and notes authentication and tenant boundary enforcement, adding 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a purpose: what it does, what it returns, and operational context. No superfluous words, well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple parameters, presence of output schema, and annotations, the description covers purpose, parameter details, return types, ID source, and auth requirements. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds context about the artifact_id's format and source (session results), and explains the include_svg parameter's effect, providing meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'fetch', the resource 'chart artifact', and the context 'council session or LOCUS determination'. It clearly distinguishes from sibling tools which are mostly create/update/delete on other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains where artifact IDs come from (session results) and notes authentication and tenant boundary requirements. However, it lacks explicit 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.
get_workflow_sessionGet Workflow SessionARead-onlyIdempotentInspect
Poll a previously started workflow run for its current step-by-step status and output (useful when run_workflow timed out or is awaiting a checkpoint). Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | The workflow session ID returned by run_workflow. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that it polls for status/output and requires authentication, complementing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy. First sentence states action and resource, second provides usage context and requirement. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with one parameter, full schema coverage, and an output schema, the description adequately covers the polling use case. Slight lack of detail on output format, but output schema fills the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the parameter session_id is described as 'The workflow session ID returned by run_workflow.' The tool description adds no extra parameter info beyond schema, meeting baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: poll a previously started workflow run for step-by-step status and output. It distinguishes from sibling tools like run_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'useful when run_workflow timed out or is awaiting a checkpoint,' providing clear context for when to use it. Does not exhaustively list when not to use, but sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workspace_metricsGet Workspace MetricsARead-onlyIdempotentInspect
One cross-domain rollup of the caller's own workspace: council sessions (total, last 30 days, by status, tokens), feedback ratings, tickets (open/done), deals (count by stage, open pipeline value) and invoices (count by status, outstanding total, overdue count). Read-only, recomputed live, and scoped to the caller — it never aggregates across accounts. Use it for a single 'how is this workspace doing' answer instead of calling the per-domain analytics tools one by one; use those (get_sales_analytics, get_ticket_projects, list_invoices) to drill into whatever this surfaces. Counts of unrecognised stages or statuses are reported under 'unknown' rather than dropped, so each breakdown sums to its own total. Note that open + done need not equal the ticket total: cancelled tickets are neither. Invoice overdue status is computed at read time by comparing due dates against now, not stored on the record, so it is current as of this call and an invoice due today does not yet count as overdue.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint), the description adds substantial behavior: 'Read-only, recomputed live, and scoped to the caller — it never aggregates across accounts.' It also discloses edge-case handling (unknown statuses reported under 'unknown', cancelled tickets not counted in open/done, invoice overdue computed at read time). These traits are not derivable from the annotations and are highly valuable for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though the description is longer than typical, it is tightly structured: an opening summary, followed by usage guidance, then three distinct edge-case clarifications with no redundancy. Each sentence earns its place, and the front-loaded summary gives immediate orientation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all domains included, explains the tool's scope and read-only nature, and addresses subtle pitfalls (ticket cancellation, unknown status aggregation, invoice overdue timing). Given the output schema exists, the description need not detail return fields; it provides the necessary context for selection and invocation completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is empty with 100% coverage. Per the baseline for 0 parameters, a score of 4 is appropriate. The description does not need to explain parameter semantics, and it instead focuses on output semantics, which is acceptable here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'One cross-domain rollup of the caller's own workspace' and enumerates the exact metric domains (council sessions, feedback, tickets, deals, invoices). It clearly differentiates from sibling per-domain tools by naming get_sales_analytics, get_ticket_projects, and list_invoices as alternatives, so the purpose is unmistakably specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Use it for a single how is this workspace doing answer' and directs to alternatives for deeper dives: 'use those ... to drill into whatever this surfaces.' This provides clear when-to-use and when-not-to-use guidance, referencing sibling tools directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initialize_consulting_milestonesInitialize Consulting MilestonesBInspect
Idempotently initialize stable engagement milestones. Retries return the same ids and external refs.
| Name | Required | Description | Default |
|---|---|---|---|
| milestones | No | ||
| engagement_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description claims idempotency ('Idempotently initialize') but annotations set idempotentHint=false, a direct contradiction. No other behavioral details provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences with key information front-loaded. Every word adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists, the description omits critical input context (engagement_id, milestones structure). For a tool with two parameters and nested objects, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter-specific meaning. It fails to explain the engagement_id or milestones array, despite the schema having complex nested fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'initialize stable engagement milestones' with a specific verb and resource. The idempotency mention and retry behavior distinguish it from sibling tools like update_consulting_milestone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for initial setup via 'initialize' and idempotency, but does not explicitly state when to use versus update_consulting_milestone or other alternatives. No exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accounting_runsList Accounting RunsARead-onlyIdempotentInspect
List only the caller's private Accounting-run audit metadata, newest first. Raw source text and analysis results are intentionally omitted.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context: the data is private to the caller, only metadata is returned, and raw text/analysis are intentionally omitted. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Ideal structure for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (which might document return structure), the description covers purpose and behavior. However, parameter details are missing, and there is no mention of pagination or status filtering. Adequate but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It only mentions ordering ('newest first') but does not describe limit, offset, or status. The agent must infer from type names and enum values, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'private Accounting-run audit metadata', with ordering ('newest first') and exclusions ('Raw source text and analysis results omitted'). It distinguishes itself from siblings like get_accounting_run (detailed single record) and delete_accounting_run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use: to list one's own audit metadata. It does not explicitly state when not to use or name alternative tools, but the context from sibling tools provides some guidance. A 4 is appropriate as it is clear but lacks explicit exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsList AgentsARead-onlyIdempotentInspect
List all available expert agents with their roles, domains, and specialties.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | Filter agents by domain (e.g., 'finance', 'technology', 'healthcare') |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
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 covered. The description adds context about return fields ('roles, domains, and specialties') but does not disclose other behaviors like pagination, sorting, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core action and resource. Every word adds value, with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter, a clear output schema, and comprehensive annotations, the description is complete. It covers the tool's purpose, resource, and returned fields adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description repeats the schema's parameter description ('Filter agents by domain') without adding new meaning or usage details. Thus, no additional value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'available expert agents', and specifies the returned information ('roles, domains, and specialties'). This distinguishes it from sibling list tools for other entities and from get_agent_detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating 'List all available expert agents', making it clear when to use this tool. However, it lacks explicit exclusions or alternatives (e.g., for filtering by agent name or getting a single agent's details).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_approvalsList ApprovalsARead-onlyIdempotentInspect
List workflow checkpoints waiting on you, soonest deadline first, with which step is paused and when it runs out. Defaults to the pending ones. Requires authentication and the workflows:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Which lifecycle status to list. Defaults to pending -- the ones still waiting for an answer. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotency, but the description adds key behaviors: default to pending, ordering, and—critically—authentication scope ('Requires authentication and the workflows:read scope'). It also hints at what data is returned, providing value beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and no redundant wording. Every phrase adds information, and it's immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with one optional parameter and an existing output schema, the description covers the essentials: what is listed, default behavior, output nuances, and required scope. No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a complete description for the `status` parameter (coverage 100%), including its default. The tool description repeats the default without adding new parameter-level semantics. With full schema coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('workflow checkpoints'), adds user focus ('waiting on you'), and specifies sorting ('soonest deadline first') and return content ('which step is paused and when it runs out'). This clearly distinguishes it from sibling list_* tools like list_workflows or list_deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (for checkpoints needing attention) and includes a default behavior note. It does not explicitly state exclusions or name alternative tools, but the context is clear given the sibling set. A slightly higher score would require explicit 'use this instead of X' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_campaign_repliesList Campaign RepliesARead-onlyIdempotentInspect
List sent / received emails for an outreach campaign, newest first — subject, body preview, and reply classification. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (default 50, max 200). | |
| direction | No | 'inbound' (replies from prospects — the default), 'outbound' (sent), or '' for all. | |
| campaign_id | Yes | Campaign UUID (from list_outreach_campaigns). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only operation (readOnlyHint, idempotentHint, destructiveHint). The description adds value by specifying the ordering ('newest first') and the content returned (subject, body preview, reply classification). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the main action and includes key details. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and robust annotations, the description adequately covers purpose, ordering, content fields, and authentication. It is complete for a simple listing tool, though it could briefly mention pagination via the limit parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters well-described. The description does not add new meaning beyond the schema; it only implicitly references direction via 'sent / received'. Baseline score of 3 is appropriate as schema carries the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'sent / received emails for an outreach campaign', specifies ordering (newest first) and included fields (subject, body preview, reply classification). It effectively distinguishes from sibling tools like list_outreach_campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Requires authentication' as a prerequisite, but does not explicitly state when to use this tool over alternatives such as outreach_analytics or campaign_pipeline_stats. No exclusions or specific context guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_campaign_triggersList Campaign TriggersARead-onlyIdempotentInspect
List automation triggers (auto-reply rules, status updates, notifications) configured for an outreach campaign. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign UUID (from list_outreach_campaigns). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds value by specifying the types of triggers included (auto-reply rules, status updates, notifications), providing behavioral context beyond what annotations offer. However, it does not address edge cases like invalid campaign_id or empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that efficiently communicates the tool's purpose and context. No unnecessary words, and the key information is presented first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with one parameter, required authentication, and an output schema (assumed to document return structure), the description is complete. It explains what triggers are listed and the prerequisite (campaign_id). No additional details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema description already explains the campaign_id parameter (Campaign UUID from list_outreach_campaigns). The tool description does not add any additional meaning or clarification beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('automation triggers'), and the context ('for an outreach campaign'). It specifies the types of triggers (auto-reply rules, status updates, notifications), distinguishing it from sibling tools like list_campaign_replies or list_outreach_campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when triggers need to be viewed, but does not provide explicit guidance on when not to use it or mention alternative tools. The note 'Requires authentication' is a basic prerequisite, not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_consulting_clientsList Consulting ClientsBRead-onlyIdempotentInspect
List consulting clients owned by the API-key account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which the description does not contradict. The description adds marginal context by specifying ownership scope but does not elaborate on behavior like pagination or result format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous words or repetition. It is front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While annotations and the output schema reduce the burden, the description is missing details such as the intended use of the `limit` parameter for pagination and the `status` filter. It provides minimal context beyond the tool's basic function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation for the `limit` and `status` parameters. While the schema itself includes constraints and enums, the description fails to add value beyond what is already structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'consulting clients', and the scope 'owned by the API-key account'. It effectively differentiates from sibling tools like `create_consulting_client` or `list_consulting_engagements`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit usage guidelines are provided; the description does not specify when to use this tool versus alternatives like `list_consulting_engagements` or indicate any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_consulting_engagementsList Consulting EngagementsARead-onlyIdempotentInspect
List consulting engagements owned by the API-key account.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| client_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. Description adds ownership scope, which is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, no fluff, clearly states purpose. Front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with optional parameters and output schema, the description is minimal but adequate. However, lack of parameter descriptions and no guidance on filtering limits completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning parameters have no descriptions. The tool description does not explain the parameters (limit, status, client_id) beyond their names, which are self-explanatory but not fully specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb (list), resource (consulting engagements), and scope (owned by the API-key account), distinguishing it from siblings like get_consulting_engagement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use versus alternatives. Usage is implied by the resource name, but no direct comparison with get_consulting_engagement or other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_content_assetsList Content AssetsARead-onlyIdempotentInspect
List owned content assets and immutable revisions; content is never published by this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| campaign_id | No | Full UUID from the matching list tool. | |
| approval_state | No | ||
| include_archived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context that content is never published, which aligns with annotations but doesn't disclose additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the primary action and add a critical caveat. No redundant information; every word contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, return values are handled externally. However, the description and low parameter coverage leave gaps: filtering by approval_state or archived status are not explained, and the effect of limit is unclear. The tool's simplicity is somewhat undercut by undocumented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (1 of 4 parameters described). The tool description does not explain the remaining parameters (limit, approval_state, include_archived) or their usage, leaving significant ambiguity for the agent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists owned content assets and immutable revisions, with explicit note that it does not publish. This verb+resource combination is distinct from sibling tools like create_content_asset or approve_content_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description hints at appropriate use by stating it does not publish, it does not explicitly guide when to choose this tool over alternatives like get_content_asset or update_content_asset. No direct when-not or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dealsList DealsARead-onlyIdempotentInspect
List the caller's sales deals (newest first) together with a weighted pipeline forecast (open/weighted/won totals). Optionally filter by stage or lead_id. Deals are private to the API-key owner.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | No | Optional stage filter. | |
| lead_id | No | Optional: only deals linked to this lead. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive. The description adds useful behavior: sorting (newest first), pipeline forecast aggregation, and privacy scoping. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first covers main function and output, second covers filters and privacy. No extraneous words, front-loaded with key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of output schema and comprehensive annotations, the description covers core functionality, sorting, aggregation, and privacy. It does not mention pagination or limits, but overall complete for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description merely restates 'Optionally filter by stage or lead_id', adding no new semantic detail. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the caller's sales deals with a pipeline forecast, sorted newest first. It distinguishes from siblings like get_deal (single deal) and addresses scope ('private to API-key owner').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional filters and privacy but does not explicitly guide when to use this tool versus alternatives. It implies usage for listing deals with aggregation but lacks direct comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_integrationsList IntegrationsARead-onlyIdempotentInspect
List which outside services the authenticated user has connected — ticket boards, stored connector credentials (name, kind, whether configured, and when last verified) and the connectors available to call them. Returns configured / not configured facts, names and dates ONLY, and never returns a secret value. Read this before planning a workflow that reaches an external service, so a step is not written against a credential the user has not registered. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value beyond these by detailing the return content (configured/not configured, names, dates, never secrets). This aligns with and expands on the annotations. No contradictions. Minor gap: does not mention pagination or rate limits, but with zero parameters, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place. The first sentence front-loads the main purpose. The second clarifies return specifics and exclusions. The third gives usage guidance. No filler or redundancy. Excellent structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no nested objects, output schema exists), the description is fully complete. It covers purpose, return values, exclusions, and when to use it. The output schema handles return type details, so no further description needed. The description is sufficient 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is trivially 100%. The description does not need to explain parameters. The baseline of 4 applies because the description adds no parameter info (not needed) but does provide context about the output, which is helpful. No enums or required params to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists outside services connected by the user, including ticket boards, connector credentials, and available connectors. It specifies what is returned (configured/not configured facts, names, dates) and explicitly says it never returns secrets. This distinguishes it from other list tools by its specific subject (integrations).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Read this before planning a workflow that reaches an external service, so a step is not written against a credential the user has not registered.' This tells the agent exactly when to use the tool. It also notes 'Requires authentication,' setting a prerequisite. While no alternatives are named, the unique subject makes this unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_invoicesList InvoicesARead-onlyIdempotentInspect
List the caller's invoices (newest first), optionally filtered by status (draft/sent/paid/void). Each entry includes its computed overdue flag.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Optional status filter. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds behavioral context: invoices are returned newest-first, the status filter is optional, and each entry includes a computed overdue flag. It doesn't contradict annotations and provides useful ordering/computation details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and includes all essential details (ordering, filtering, output flag). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with one optional parameter, an output schema, and strong annotations, the description covers the key behavioral aspects: what is listed, ordering, filtering, and a notable output field. It doesn't need to list every field since an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'status' parameter with 100% description coverage, including enum values. The description merely repeats 'optionally filtered by status' without adding syntax or format details. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List the caller's invoices' with clear scoping ('caller's'), ordering ('newest first'), optional status filter, and a specific output detail (overdue flag). This distinguishes it from sibling tools like get_invoice (single retrieval) and mutation tools like create_invoice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use it: to list invoices, with optional filtering. It doesn't explicitly mention alternatives or when-not-to-use, but the listing context is clear. Sibling tools like get_invoice imply a single retrieval, but the description doesn't direct users there. This is slightly below explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_marketing_audiencesList Marketing AudiencesARead-onlyIdempotentInspect
List reusable marketing audiences owned by the API-key account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. Description adds context that audiences are 'reusable' and 'owned by the API-key account,' which are behavioral traits beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear verb-first structure. Every word is necessary; no filler. Highly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, known annotations, and an output schema (present but not detailed here), the description fully accounts for what's needed: it lists reusable audiences owned by the API-key account. Complete for its simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in input schema (0 params, coverage 100%). Description adds meaning by specifying what is listed (reusable audiences, ownership). Baseline for 0 params is 4, and description meets it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'List' and identifies the resource 'reusable marketing audiences' with ownership scoping 'owned by the API-key account.' Clearly distinguishes from sibling tools like get_marketing_audience and create_marketing_audience.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states what it does (list audiences) and the ownership scope. Though it doesn't mention when not to use, the simplicity of the operation makes context clear. No alternative tools are named, but the sibling list suggests uniqueness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_marketing_brandsList Marketing BrandsARead-onlyIdempotentInspect
List brand identities owned by the API-key account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive. The description adds ownership scope (API-key account), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler. Front-loaded verb 'List' and resource. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and an existing output schema, the description sufficiently covers purpose and scope. Could mention return format or pagination but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero parameters with 100% coverage; description adds nothing beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), the resource ('brand identities'), and the scope ('owned by the API-key account'), distinguishing it from sibling tools like create or get brand.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like search or get. However, as a simple list with no parameters, usage is implied; but explicit context would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_marketing_campaignsList Marketing CampaignsARead-onlyIdempotentInspect
List owned marketing campaigns. These are separate from Sales outreach campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| include_archived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
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 that it lists only 'owned' campaigns, which is a useful behavioral constraint. However, it does not disclose other behaviors like pagination or default filtering, which are not covered 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, front-loaded sentences with zero waste. It clearly states the purpose and the key differentiator. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (list with two optional filters) and an output schema exists, so detailed return value explanations are unnecessary. However, the description lacks context about what 'owned' means (e.g., user-specific context) and whether there are limits on the list. For a straightforward list tool, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning no parameters are described in the schema. The description does not explain the 'status' enum or the 'include_archived' boolean, both of which could benefit from context (e.g., default behavior, interaction between filters). The enum values are somewhat self-explanatory, but the description should compensate for the lack of schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'owned marketing campaigns.' It also distinguishes from sales outreach campaigns, which is a specific sibling tool (list_outreach_campaigns). 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'These are separate from Sales outreach campaigns,' which provides clear context for when to use this tool versus alternatives. It does not, however, include when-not-to-use or other exclusionary guidance, but the distinction is effective.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_meta_council_feedbackList Meta Council FeedbackARead-onlyIdempotentInspect
ADMIN ONLY: list platform-feedback reports — feedback about Meta Council itself, never a tenant's own business data — across all users for triage (requires an ADMIN_EMAILS account; everyone else gets a permission error). Filter by status, category, or severity.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| category | No | ||
| severity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses critical authorization behavior: non-admins receive a permission error. It also clarifies the data scope (across all users, never tenant business data), adding valuable context not present in schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that leads with the critical 'ADMIN ONLY' warning and immediately states the tool's core function. Every clause adds meaningful information (scope, permission, filtering), with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple filtered list tool with an output schema and comprehensive annotations, the description covers the essential operational aspects: access control, data scope, and filterable fields. It lacks pagination details, but the output schema likely covers return structure, making the description sufficient for safe and correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description states 'Filter by status, category, or severity,' which directly maps three of the four parameters to their intended usage. It does not mention the 'limit' parameter, but the primary filtering semantics are clearly conveyed, partially compensating for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('list platform-feedback reports'), the specific resource ('feedback about Meta Council itself, never a tenant's own business data'), and its purpose ('for triage'). It also differentiates itself from sibling tools by explicitly scoping to platform-level feedback and requiring admin privileges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong usage context: it is ADMIN ONLY, requires an ADMIN_EMAILS account, and is intended for triage of Meta Council feedback. It implicitly contrasts with tenant business data, signaling when not to use it, but does not explicitly name alternative tools or state 'when not to use' in a direct way.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_monitorsList MonitorsARead-onlyIdempotentInspect
List the standing watches you have saved, newest first, with what each one watches, what it does, and when it last fired. Requires authentication and the monitors:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and idempotent hints, the description adds concrete behavioral details: ordering (newest first), output fields, and permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no redundancy or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation, the description covers the return content and access requirements; the output schema would detail the structure, but this description is complete in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is complete; the description adds no parameter-specific information, which is acceptable per the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists saved monitors with specific details (newest first, what each watches, what it does, when last fired), distinguishing it from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions the required authentication and scope, which are prerequisites, but does not explicitly compare with alternative list tools; however, the purpose is specific enough for clear usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_outreach_campaignsList Outreach CampaignsARead-onlyIdempotentInspect
List the authenticated user's outreach campaigns with live lead / sent / reply counts. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint. The description adds that it returns 'live lead / sent / reply counts' and requires authentication, providing value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient, front-loaded with key information. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with an output schema, the description adequately states what it returns (list with counts) and the authentication requirement. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description does not need to explain parameters; baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (list), resource (outreach campaigns), scope (authenticated user's), and additional detail (live lead/sent/reply counts). This distinguishes it from sibling tools like create_outreach_campaign or list_campaign_replies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly mentions 'Requires authentication' implying context. While it does not explicitly state when not to use or list alternatives, the simplicity of the tool (no parameters) makes usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_panelsList PanelsARead-onlyIdempotentInspect
List all available expert panels with their descriptions and agent counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by specifying the output includes descriptions and agent counts, which is useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, an output schema exists, and the description mentions the output content (descriptions and agent counts), it is mostly complete. It could optionally mention if results are sorted or paginated, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters and schema coverage is 100%, so the description does not need to add parameter information. A baseline of 4 is appropriate as it correctly lists zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all available expert panels and specifies the output includes descriptions and agent counts. It effectively distinguishes itself from sibling tools like list_agents and list_deals by focusing on panels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives (e.g., recommend_panel). However, since it has no parameters and is straightforward, the context is mostly clear but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_portfolio_snapshot_notesList Portfolio Snapshot NotesARead-onlyIdempotentInspect
Read the decision and comment thread recorded against one of your portfolio snapshots, oldest first. Each note carries the snapshot content hash it was written against plus binding_intact comparing that hash to the snapshot's hash now, so a note can be read as evidence of what was actually on the screen when it was written. Counts are over the notes actually returned, so a truncated page never reports a total it did not show. This reads the thread; it does not approve, reject or block anything. Requires authentication and the tickets:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many notes to return. Defaults to 100. | |
| snapshot_id | Yes | The snapshot's id, from list_portfolio_snapshots. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and non-destructive, but the description adds substantial behavioral detail: notes are returned oldest first, each note carries the snapshot content hash plus binding_intact for evidence, and count fields reflect only returned notes so truncated pages don't misreport totals. It also discloses authentication and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five sentences, front-loaded with purpose, and every sentence adds unique value: purpose, evidence semantics, count behavior, non-mutation, and required scope. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter set, existing output schema, and rich annotations, the description is fully complete. It covers ordering, evidence provenance, pagination count behavior, permissions, and non-mutating nature—enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters already have descriptions. The description adds value beyond the schema by explaining count semantics under pagination/truncation and clarifying that snapshot_id refers to 'one of your portfolio snapshots,' which supports correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Read the decision and comment thread recorded against one of your portfolio snapshots, oldest first.' This clearly distinguishes it from sibling tools like list_portfolio_snapshots (which lists snapshots themselves) and from approval/mutation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: to read a decision/comment thread for a specific snapshot. It also explicitly states what it does not do—'does not approve, reject or block anything'—and notes the required tickets:read scope. It does not name a specific alternative tool, but the exclusion is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_portfolio_snapshotsList Portfolio SnapshotsARead-onlyIdempotentInspect
List your own portfolio snapshots, newest first: the immutable rollups of how your ticket portfolio stood at the moments you captured them. Each carries its label, schema version, stored payload, content hash, recording actor and creation time. Snapshots are owner-private and never span accounts. Returns the same payload the web app's snapshot list returns. Requires authentication and the tickets:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many snapshots to return. Defaults to 50. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits beyond annotations: snapshots are immutable, owner-private, never span accounts, and require tickets:read scope. It also states the return payload matches the web app's snapshot list. Annotations (readOnlyHint, idempotentHint, destructiveHint) are consistent, and the description adds valuable context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it front-loads the purpose, then adds context on immutability, fields, privacy, and auth. Every sentence adds value without redundancy. It is appropriately brief for a simple list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter), the description is complete. It covers what snapshots are, their ordering, fields, privacy constraints, authentication requirements, and the return payload consistency. The presence of an output schema further reduces the need to detail return formats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'limit' parameter is fully documented in the schema (description, default, min, max), so schema coverage is 100%. The description adds minimal extra meaning beyond what the schema provides, though it does note the ordering ('newest first') which indirectly relates to the parameter's effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the user's own portfolio snapshots, newest first, and explains what they are (immutable rollups). It distinguishes from get_portfolio_snapshot and diff_portfolio_snapshots by context, though not explicitly naming them. The verb 'list' and resource are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates it is for listing one's own snapshots and emphasizes owner-privacy and account scoping. It mentions authentication and scope requirements but does not explicitly contrast with get_portfolio_snapshot or diff_portfolio_snapshots, though the purpose is clear enough for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sales_tasksList Sales TasksARead-onlyIdempotentInspect
List the caller's open sales tasks (activities of type 'task' not yet done), bucketed overdue / today / upcoming and ordered most-urgent-first with per-bucket counts. Close one with complete_sales_task.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context: bucketing, ordering, and per-bucket counts, which go 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the purpose and key details (bucketing, ordering) and immediately direct to a sibling tool. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an existing output schema, the description fully explains the behavior (bucketing, ordering, counts) and provides sufficient context for an agent to decide when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and 100% schema description coverage, the description has no need to elaborate on parameters. It meets the baseline for a no-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool lists open sales tasks, with bucketing (overdue/today/upcoming) and ordering (most-urgent-first), and explicitly mentions 'activities of type task not yet done'. It distinguishes itself from the sibling 'complete_sales_task'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (to view open tasks and their urgency) and even directs the agent to a companion tool ('Close one with complete_sales_task'). It lacks explicit when-not-to-use instructions, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_saved_viewsList Saved ViewsARead-onlyIdempotentInspect
List saved ticket views you can open: the stored filter, column, grouping and sort combinations saved by you, plus any shared with a team you belong to. Shared views appear under the active and all scopes and never once archived, because an owner's archive is their own working state. Returns the same payload the web app's saved-view list returns. Requires authentication and the tickets:read scope.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many views to return. Defaults to 50. | |
| scope | No | Which of YOUR OWN views to include: active (the default, excluding archived), archived (your recovery list), or all. Shared views are unaffected by archived and never appear under it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint and destructiveHint. The description adds meaningful behavioral details, such as how shared views are scoped and the archived state behavior, which goes beyond the annotations. No contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and repetitive, particularly the sentences about shared views and archived scope. It could be condensed to a single clear sentence without losing meaning. The redundancy detracts from conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions the return payload type (same as web app) but lacks details on pagination, potential errors, or the exact structure of the returned data. It is adequate for a simple list operation but not fully complete given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for both parameters (limit and scope). The tool description does not add additional semantic information beyond what the schema states, so it remains at the baseline for fully documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: listing saved ticket views, including both personal and shared views. It specifies the resource (saved views) and the action (list), making it distinct from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context about what the tool returns (e.g., shared views, archived behavior) but does not explicitly indicate when to use this tool over alternatives like get_saved_view. It implies usage for listing all accessible views but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workflowsList WorkflowsARead-onlyIdempotentInspect
List available multi-step workflow pipelines (composable bundles that chain several steps, each able to run on its own model/provider). Returns each workflow's slug, description, per-step model, and definition_sha — a fingerprint of that definition as loaded right now, comparable against the definition_sha reported by a run you start later.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent. The description adds detail about the output fields and explains the meaning of definition_sha, providing transparency about the snapshot nature of the returned data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with clear structure, front-loading the action and providing necessary context in parentheses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes the return fields and explains definition_sha. Lacks mention of potential limitations such as pagination or error cases, but for a simple list with no parameters, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and the schema already covers everything. The description doesn't need to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (list) and the resource (workflow pipelines), and explains what a workflow pipeline is. Distinguishes from other list tools by specifying 'workflow pipelines'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly state when to use this tool versus alternatives. It is clear that it lists workflows, but lacks explicit guidance on when to choose it over other list operations or workflow-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
locus_determine_from_scoresLocus Determine From ScoresARead-onlyIdempotentInspect
Compute a LOCUS Level of Care from dimension ratings you already have. Deterministic — no LLM, instant: composite + Determination Grid + the inviolable override floors (e.g. Risk-of-Harm=4 → minimum Level 5), applied in code. Provide EITHER the seven flat D* ratings (1-5 each; Dimension IV splits into IV-A Stress / IV-B Support) OR a per-reviewer agent_scores map. Sending both is refused (422) rather than scored: agent_scores would win and your flat ratings would be discarded, override floors included. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| D4A_Stress | No | Recovery Environment — Stress (1-5). | |
| D4B_Support | No | Recovery Environment — Support (1-5). | |
| agent_scores | No | Per-reviewer scores keyed by reviewer name, aggregated by median. Shape: {"<reviewer>": {"D1_RiskOfHarm": 4, ...}}. Mutually exclusive with the flat D* fields — sending both is refused (422), not merged. An empty map {} counts as not supplied. | |
| D1_RiskOfHarm | No | Risk of Harm (1-5). | |
| D6_Engagement | No | Engagement & Recovery Status (1-5). | |
| D3_CoMorbidity | No | Medical/Addictive/Psychiatric Co-Morbidity (1-5). Capital M in CoMorbidity. | |
| D2_FunctionalStatus | No | Functional Status (1-5). | |
| D5_TreatmentHistory | No | Treatment & Recovery History (1-5). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds rich behavioral context: deterministic (no LLM), instant, the use of composite + Determination Grid + inviolable override floors (e.g., Risk-of-Harm=4 → Level 5), the 422 refusal behavior when both input modes are sent, and authentication requirements. This goes well 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by the deterministic nature and algorithm specifics. Every sentence adds value: the input modes, the rejection behavior, and authentication. It is compact yet information-dense, with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with 8 parameters, nested objects, and multiple input modes. The description covers the algorithm, override floors, input alternatives, failure behavior, and authentication. An output schema exists, so return-value documentation is not needed in the description. The agent has enough information to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description groups the parameters into two mutually exclusive modes (flat D* ratings vs. agent_scores map) and explains that Dimension IV splits into IV-A/IV-B, but the schema already contains this mutual exclusivity in the agent_scores field. No additional per-parameter meaning is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes a LOCUS Level of Care from already-available dimension ratings, using a deterministic code-based algorithm. This distinguishes it from the sibling score_locus_case by explicitly noting 'Deterministic — no LLM'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use: when you have existing flat ratings or an agent_scores map and need a deterministic, instant result. It also specifies a when-not: sending both inputs is refused (422) rather than scored. However, it does not explicitly name an alternative tool to use instead, only implying the contrast with LLM-based scoring.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_deal_activityLog Deal ActivityAInspect
Log an activity on a deal (or lead) — a note/call/meeting/email, or a follow-up task with a due date. Pass deal_id and/or lead_id (each must be owned by the caller). type defaults to 'note'; for a task set type='task' and a due_date (YYYY-MM-DD). Tasks appear in list_sales_tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| done | No | Mark a task already done. | |
| type | No | note|call|meeting|email|task (default note). | |
| deal_id | No | Owned deal to attach to. | |
| lead_id | No | Owned lead to attach to. | |
| subject | No | ||
| due_date | No | ISO date YYYY-MM-DD (for tasks). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (all false) provide no behavioral info, so the description carries full burden. It discloses that the tool creates a log entry (write operation), requires ownership of deal_id/lead_id, and tasks become visible in 'list_sales_tasks'. It does not describe error handling or side effects beyond that, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a distinct purpose: stating the action, detailing required inputs and defaults, and providing task-specific instructions with a sibling reference. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (covering return values) and sufficient annotations, the description provides all necessary context: what the tool does, how to use parameters, ownership constraints, and the relationship to 'list_sales_tasks'. It is complete for an activity logging tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71% (5 of 7 params described). The description adds value beyond the schema by specifying ownership constraints for deal_id/lead_id, the default value for type, and the format requirement for due_date. It does not clarify body or subject parameters, but the schema's lack of description for these is partially offset by the overall clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Log an activity on a deal (or lead)' and specifies the resource (deal/lead) and types of activities (note/call/meeting/email/task). It distinguishes from sibling tools like 'complete_sales_task' by mentioning tasks appear in 'list_sales_tasks', implying this tool logs new activities rather than completing or listing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use: to log an activity on a deal/lead. It provides guidance on IDs (must be owned by caller) and defaults ('type' defaults to 'note'). For tasks, it instructs to set type='task' and provide due_date. It does not explicitly state when not to use or point to alternatives like 'complete_sales_task', but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_invoice_paidMark Invoice PaidAInspect
Mark a draft or sent invoice as paid (stamps paid_at). Cannot be applied to a void invoice. invoice_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only negative hints (readOnly=false, idempotent=false, etc.) which do little to describe behavior. The description adds the side effect 'stamps paid_at' and the constraint about void invoices. However, it does not mention what happens if the invoice is already paid, reversibility, or required permissions, leaving some behavioral gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, front-loaded with the main action, followed by a key exclusion and a note on the required parameter. Every sentence carries useful information, with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives the essential constraints (draft/sent, not void, requires invoice_id) and an output schema exists. However, it omits important edge cases like idempotency or behavior on already-paid invoices, and annotations do not fill this gap. For a simple tool it is mostly sufficient, but not fully complete for an agent to predict all outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description only repeats 'invoice_id is required,' which is already in the schema's required array. It adds no semantic meaning about what invoice_id refers to or any format/constraints. The parameter name is self-explanatory, but the description fails to compensate for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Mark a draft or sent invoice as paid (stamps paid_at).' This distinguishes it from sibling tools like update_invoice (general updates) and void_invoice (voiding), making the purpose immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: it applies to 'draft or sent invoice' and notes a clear exclusion: 'Cannot be applied to a void invoice.' While it does not name alternative tools, the when/when-not conditions are stated. This is almost at the level of naming alternatives, but falls short of explicit sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_child_api_keyMint Child Api KeyAInspect
Mint a short-lived child API key for a delegated subtask. The child can never exceed the calling key: requested scopes must be a subset of what the caller holds, its expiry is capped by the caller's, and it may never itself mint keys (delegation is exactly one level deep). A caller whose own scopes were never recorded explicitly cannot delegate at all until it rotates first. The child key is returned exactly once in the response and cannot be retrieved again; revoking the parent immediately revokes the child. Requires the keys:mint scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Label for the child key (default 'delegated key'). | |
| scopes | Yes | Scopes to grant the child. Must be a subset of the calling key's own scopes and may not include keys:mint. | |
| expires_in_minutes | No | Child lifetime in minutes (default 60, maximum 1440). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide minimal safety hints (all false), so the description carries the full burden. It thoroughly discloses behavior: scope subset constraint, expiry cap, one-level delegation only, one-time return of the child key, immediate revocation when parent is revoked, and the rotation prerequisite. This is exceptional transparency beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact paragraph with no wasted words. It front-loads the core purpose, then efficiently covers constraints, edge cases, and safety-relevant behaviors. Every sentence contributes meaningful information, making it appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description is remarkably complete. It covers purpose, delegation constraints, a prerequisite, a specific edge case (unrecorded scopes), the one-time return property, parent-child revocation coupling, and required scope. The presence of an output schema means the return format need not be described. No material gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds dynamic context on top of the schema, such as the expiry being capped by the caller's expiration, which is not fully captured by the schema's max value. It also reinforces the scope subset rule, but most parameter details already exist in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb+resource: 'Mint a short-lived child API key for a delegated subtask.' It distinguishes itself from siblings like get_api_key_info (viewing) and rotate_api_key (rotating) by focusing on key creation for delegation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool, such as 'for a delegated subtask' and the prerequisite 'Requires the keys:mint scope.' It also notes a critical condition: a caller whose scopes were never recorded cannot delegate until rotating. However, it does not explicitly name exclusions or alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
outreach_analyticsOutreach AnalyticsARead-onlyIdempotentInspect
Outreach summary for the user — total leads, sent, replied, and reply rate. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the safety profile is clear. The description adds the need for authentication, which is useful but not expansive. It does not disclose other behaviors like data freshness or scope (e.g., time range).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core purpose and follows with a key requirement. Every word earns its place; there is no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless tool with an output schema, the description covers the returned fields and authentication. It could be slightly more precise about scope (e.g., 'for the authenticated user'), but overall it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and coverage is 100%, so the description naturally has nothing to add. Per guidelines, 0 parameters yields a baseline of 4. The description does not need to elaborate on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides an outreach summary with specific metrics (total leads, sent, replied, reply rate). While it doesn't explicitly differentiate from siblings like 'get_sales_analytics' or 'campaign_pipeline_stats', the purpose is specific to outreach and the metrics are distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes 'Requires authentication' as a prerequisite but provides no guidance on when to use this tool versus alternatives. No context about scenarios, exclusions, or trade-offs is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_workflowPlan WorkflowARead-onlyIdempotentInspect
Preview what a workflow WOULD do, without running it. Costs nothing and runs no models: returns the step execution order, each step's role/model/max_tokens and whether it pauses for a human checkpoint, the workflow's declared parameters (validated if you supply values), which required integrations your account already has credentials on file for, an upper-bound cost estimate, and definition_sha — a fingerprint of the definition this plan was built from, which tells you whether the definition changed between planning and running but never hands back the definition itself. Starts no session and records no usage. Use before run_workflow to check a pipeline fits before spending on it. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| workflow | Yes | The workflow slug (from list_workflows), e.g. 'due_diligence'. | |
| parameters | No | Optional values for the workflow's declared parameters, as a flat name-to-value object, e.g. {"region": "EU"}. Supply them to have them validated; omit to skip validation. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already declare readOnlyHint=true and idempotentHint=true, the description adds substantial behavioral context: it 'Starts no session and records no usage,' costs nothing, and runs no models. It thoroughly details what the return value includes (step order, roles, cost estimate, definition_sha) and explicitly notes what it does NOT return ('never hands back the definition itself'). This exceeds the baseline by providing comprehensive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but relatively concise for the wealth of information it conveys. It's structured in two long sentences followed by a short usage directive. While packed with useful content, the first sentence is very long and could be seen as slightly unwieldy despite being information-dense. It front-loads the most important information (what it does and its cost-free nature) and ends with an actionable usage statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only preview tool with no output schema to explain return values, the description completely covers what's needed. It explains the cost implications, security posture (requires authentication), side-effect behavior, and the meaning of the definition_sha fingerprint. It even explains a limitation (doesn't return the definition itself) preemptively. With sibling alternatives like run_workflow and estimate_cost present, the description effectively positions this tool's role in the broader workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters well. The description complements the schema by adding context about how parameters behave in this tool: supplying values triggers validation, omitting them skips it. It also provides a concrete example ({"region": "EU"}) that illustrates the expected flat object format. Slight deduction because the description doesn't add extensive meaning for the 'workflow' parameter beyond what the schema states, but the validation semantics are helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Preview what a workflow WOULD do, without running it.' It specifies the primary verb (preview) and resource (workflow), and distinguishes it from run_workflow by emphasizing it does not execute. The extensive detail about what it returns and its cost-free nature clearly differentiates it from siblings like run_workflow and estimate_cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use before run_workflow to check a pipeline fits before spending on it.' It also provides exclusions by noting what it does NOT do ('Starts no session and records no usage'). The direct alternative (run_workflow) is named, and the context for using it over alternatives is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_accounting_ticket_syncPreview Accounting Ticket SyncARead-onlyIdempotentInspect
Preview, without writing, how one completed owned Accounting run's WRITEOff work plan would map to stable Meta Council tickets. Reports creates, updates, unchanged tickets, human-edited generated fields that will be preserved, and identity conflicts. Requires both accounting:read and tickets:read; tickets:write also satisfies the ticket-read grant. Preview before committing because tickets are not field-encrypted; work-plan text may reproduce source-derived snippets or parser details, and after commit tickets:read can read it without accounting:read.
Check the item count before committing. Statement-derived runs currently plan one ticket per unclassified transaction line, so a several-hundred-row statement plans several hundred tickets. When the count is large, report it and confirm with the owner rather than committing a board-flooding sync.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavioral context beyond annotations: it confirms read-only execution ('without writing'), discloses permission requirements, and reveals privacy risks (tickets not field-encrypted, source-derived snippets may be exposed to tickets:read after commit). It also warns about large ticket counts and suggests confirming with the owner—details annotations do not capture. No contradiction with readOnlyHint/idempotentHint/destructiveHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every sentence contributes: purpose, permissions, privacy risk, and item-count caution. It is front-loaded with the main action and reports before caveats. Could be tightened with bullet points, but the density is justified given the safety-critical context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a preview tool with an output schema, the description covers what is needed: inputs (run_id context), expected outputs (creates/updates/unchanged), edge cases (human-edited fields, identity conflicts), prerequisites, and operational warnings. Combined with output schema and annotations, the agent has everything to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter (run_id) and 0% schema description coverage, the description compensates by specifying it refers to a 'completed owned Accounting run's WRITEOff work plan.' This adds constraints beyond the raw uuid format, clarifying which run is valid. Since the parameter is singular and self-contained, the description fully covers its semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Preview, without writing') and resource ('WRITEOff work plan' mapping to 'stable Meta Council tickets'), clearly distinguishing it from sibling tools like sync_accounting_tickets. It enumerates the exact reports produced (creates, updates, unchanged tickets, preserved fields, identity conflicts), leaving no ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'Preview before committing' and warns against committing a 'board-flooding sync' when item count is large, indicating when to use and when not. It also states required permissions (accounting:read, tickets:read) and notes that tickets:write satisfies the read grant, providing clear eligibility for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recommend_panelRecommend PanelARead-onlyIdempotentInspect
Recommend the best expert panel for a query (semantic match with keyword fallback). Returns the top panel + confidence and the runner-up options — feed the result into run_council's panel argument. Requires authentication because the query may be sent to the configured embedding provider.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The question or decision to match to a panel. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by disclosing that the query may be sent to the configured embedding provider, a behavioral trait not captured by annotations. It also details the return format (top panel, confidence, runner-up). No contradictions with annotations (readOnlyHint, idempotentHint, etc.) are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that front-load the core purpose and immediately provide actionable usage guidance. Every sentence contributes value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single parameter, output schema exists), the description is complete. It explains what the tool returns, how to use the result (as input to run_council), and mentions authentication. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the single parameter 'query' with a description. The description adds minor context (the query is a question or decision) but does not significantly enhance understanding beyond the schema. Given high schema coverage (100%), a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: recommending the best expert panel for a query using semantic match with keyword fallback. It specifies the verb 'recommend', the resource 'expert panel', and the return value (top panel, confidence, runner-up), distinguishing it from sibling tools like list_panels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to feed the result into run_council's panel argument, providing clear guidance on when to use this tool. It also notes authentication requirements. However, it does not explicitly mention when not to use it or list alternative tools, which would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reject_content_assetReject Content AssetAInspect
Reject a submitted owned revision with optional reviewer notes. Requires marketing:approve.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| asset_id | Yes | Full UUID from the matching list tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and non-destructiveness (destructiveHint=false). Description adds permission requirement but does not detail behavioral implications like reversibility or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences that front-load the action and resource, with no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description need not detail return values. It covers the core action, permission, and optional notes, but could elaborate on the concept of 'owned revision' or the result of rejection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema describes asset_id with a note about UUID source but no description for notes. The tool description mentions 'optional reviewer notes,' adding some context for the notes parameter, but overall does not fully compensate for the 50% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (reject), the resource (a submitted owned revision), and differentiates from sibling tools like approve_content_asset and submit_content_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear prerequisite ('Requires marketing:approve') and implies when to use this tool (for rejection) rather than approval or submission, but lacks explicit when-not or alternative tool mentions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reopen_consulting_deliverableReopen Consulting DeliverableAInspect
Return an unapproved review deliverable to editable draft status.
| Name | Required | Description | Default |
|---|---|---|---|
| deliverable_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-readOnly and non-destructive, and the description adds that the tool changes status from 'unapproved' to 'draft'. However, it does not disclose potential side effects, error conditions, or whether reversible. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that captures the essential action without unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter and the existence of an output schema, the description adequately explains the state transition. It could mention error conditions or required permissions, but for a simple toggle operation, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the burden on the description is higher, but the single parameter (deliverable_id) is self-explanatory from the tool name and description. No additional context is provided beyond the schema, so it meets the minimum but does not exceed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb ('return') and the resource ('unapproved review deliverable' to 'editable draft status'), distinguishing it from sibling tools like approve_consulting_deliverable or submit_consulting_deliverable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when a deliverable is unapproved and needs to be reverted to draft, but it does not explicitly state when to use it versus alternatives or mention prerequisites (e.g., the deliverable must be in 'unapproved' state).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_saved_viewRestore Saved ViewAInspect
Return one of YOUR OWN archived saved views to the working set with its definition intact. Idempotent -- restoring a view that is already active is a no-op rather than an error. Use list_saved_views with scope=archived to find restorable views. Requires authentication and the tickets:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| view_id | Yes | The view's id, from list_saved_views with scope=archived. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states 'Idempotent' and explains the no-op behavior, but the annotations include idempotentHint: false. This is a direct contradiction. According to the rubric, a contradiction with annotations mandates a score of 1, regardless of other disclosed context (auth, definition intact). Flagging as annotation_contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with a clear purpose: purpose, idempotency behavior, and discovery/auth. No wordiness, front-loaded with the most critical information. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema present, the description covers the key aspects: what it does, idempotency, how to find the view, and auth requirements. The output schema handles return-value documentation. Minor gaps: no mention of error conditions or behavior if the view doesn't exist, but these are not critical given the output schema and the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter view_id is fully described in the schema with 'The view's id, from list_saved_views with scope=archived.' Schema description coverage is 100%, so per the rubric, the baseline is 3. The tool description itself doesn't add extra parameter semantics, but none are needed since the schema covers it and the description's pointer to list_saved_views aligns with the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Return one of YOUR OWN archived saved views to the working set with its definition intact.' It uses a specific verb ('return') and resource ('archived saved views'), and the word 'YOUR OWN' distinguishes ownership. It differentiates from siblings like archive_saved_view and delete_saved_view by focusing on restoration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a direct pointer to list_saved_views with scope=archived to find restorable views, which is excellent practical guidance. It also mentions the required auth scope ('tickets:write') and the tool's idempotent behavior. However, it doesn't explicitly state when NOT to use it or compare to alternatives like restore vs. execute_saved_view, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
retry_workflowRetry WorkflowAInspect
Continue a stalled or finished workflow run from a chosen step. This starts a NEW run that reuses the outputs the original run already recorded and only executes — and only pays for — the steps from 'from_step' onward. The original run is left untouched and the new one records which run it continues. Omit 'from_step' to resume at the first step that has no recorded output. A step whose output was never recorded is re-run, never skipped. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| from_step | No | Zero-based index of the first step to actually execute. Defaults to the first step with no recorded output. | |
| session_id | Yes | The workflow session id to continue from. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description goes beyond annotations by explaining that a new run is created, original untouched, only steps from 'from_step' are executed and paid for, and steps without recorded output are re-run. It also states 'Requires authentication.' Annotations only provide hints; this adds crucial behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is four sentences, front-loaded with the main action. Each sentence adds distinct information: purpose, new run behavior, default behavior, and re-run rule. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only two parameters and an output schema, the description is complete. It covers purpose, usage, parameter behavior, cost, and authentication. It does not need to explain return values as output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters with descriptions. The description adds the default behavior for 'from_step' (resume at first step with no output) and clarifies that steps without output are re-run, not skipped. This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool continues a stalled or finished workflow run from a chosen step, creating a new run that reuses outputs. This distinguishes it from siblings like 'run_workflow' (starts new) and 'advance_workflow' (likely advances). The verb 'continue' and resource 'workflow run' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides usage guidance: omit 'from_step' to resume at first step without recorded output. It implies use when workflow is stalled or finished and you want to resume from a specific point. However, it does not explicitly compare to sibling tools 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.
rotate_api_keyRotate Api KeyADestructiveInspect
Replace the API key making this call with a fresh one carrying the same scopes. WARNING: this IRREVERSIBLY deactivates the current key the moment it succeeds — every other caller using that key stops working immediately, so do not call it on a shared credential. The new key is returned exactly once in the response and cannot be retrieved again. A delegated child key cannot rotate itself. Requires API-key authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| expires_in_days | No | Lifetime of the replacement key in days (default 90). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds rich behavioral context beyond the destructiveHint annotation: it warns that the key is 'IRREVERSIBLY deactivates' and that 'every other caller using that key stops working immediately.' It also discloses that 'the new key is returned exactly once in the response and cannot be retrieved again,' covering side effects and return semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, stating the core action first, then issuing a clear WARNING, and ending with essential constraints. Every sentence carries operational information; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the action, irreversible consequences, impact on other callers, one-time return of the new key, child-key limitations, and authentication. With a single optional parameter documented in schema and an output schema presumably describing the new key, nothing critical appears missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter expires_in_days is fully documented in the input schema with min, max, and default, providing 100% coverage. The description does not revisit the parameter, so it adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Replace the API key making this call with a fresh one carrying the same scopes,' which precisely identifies the action and resource. This clearly distinguishes it from siblings like get_api_key_info (read-only) and mint_child_api_key (creates a separate key).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit when-not warning: 'do not call it on a shared credential' and notes that 'a delegated child key cannot rotate itself.' It also states the auth prerequisite, but does not point to alternative tools for creating new keys without invalidating the current one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_councilRun CouncilAInspect
Submit a question or decision to Meta Council. A panel of specialized AI agents will independently analyze it, then a synthesis step combines their opinions into a unified recommendation with full transparency. Starts asynchronously by default; use get_session with the returned session id.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Model to use (e.g., 'claude-sonnet-4-6', 'gpt-4o', 'deepseek-chat'). Omit to use user's default. | |
| panel | No | Panel slug to use (e.g., 'default', 'technology', 'healthcare'). Use 'auto' for automatic panel selection. Omit to use default panel. | |
| query | Yes | The question or decision to analyze | |
| wait_seconds | No | Optional synchronous wait (0-90 seconds). Default 0 returns the session id immediately, avoiding reverse-proxy timeouts. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond annotations: async start, multi-agent analysis, synthesis, transparency. No contradiction with annotations (readOnlyHint=false, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and process, followed by actionable usage hint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a tool of this complexity: covers what it does, how it works (asynchronous, multi-agent), and how to retrieve results. Output schema likely handles return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds meaning: explains async/sync behavior tied to wait_seconds, and frames parameters (panel, model) within the council process. Baseline 3, plus extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Submit' and resource 'Meta Council', explains the process of independent analysis by AI agents and synthesis into a recommendation. Differentiates from sibling tools which are CRUD, workflow, or outreach related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Starts asynchronously by default; use get_session with the returned session id' and mentions optional synchronous wait via wait_seconds. Lacks explicit when-not or alternatives, but provides clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_workflowRun WorkflowAInspect
Start a multi-step workflow pipeline and return its session id immediately by default. Poll get_workflow_session for each step's model/provider and output. synthesis. Steps run on YOUR configured provider keys, so a pipeline can chain models across providers. If a step is a human checkpoint, returns the session id to advance. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The input to run the pipeline on. Be specific, e.g. 'Analyze NVDA as an investment'. | |
| workflow | Yes | The workflow slug (from list_workflows), e.g. 'live_market_pipeline', 'due_diligence', 'coding_tdd'. | |
| parameters | No | Values for the workflow's declared parameters, as a flat name-to-value object, e.g. {"region": "EU"}. Omitted names use their declared defaults. Workflows that declare no parameters take none. | |
| wait_seconds | No | Optional synchronous wait; default 0 returns immediately. | |
| idempotency_key | No | Caller-supplied key: sending the same key again returns the run that already exists instead of starting a second, paid run. Use a stable key derived from your own request so an uncertain retry converges. Max 120 chars, [A-Za-z0-9._:-]. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true. The description adds useful context: 'Steps run on YOUR configured provider keys' (explaining authentication and cost model), 'If a step is a human checkpoint, returns the session id to advance' (checkpoint behavior), and 'Requires authentication' (reinforcing auth needs). It does not mention rate limits, error handling, or cost implications beyond the key usage, but the existing annotations already cover the core safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is five sentences long, starting with the primary action. It is efficient and front-loads the key information. It could be slightly more structured (e.g., bullet points for the checkpoint and polling guidance), but it remains clear and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown but present) and the description covers the main workflow behavior, polling pattern, checkpoint handling, and authentication, it is fairly complete. It does not discuss error scenarios or what happens if the workflow slug is invalid, but the existence of sibling tools like 'list_workflows' mitigates this. The description sufficiently equips an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already documents all five parameters. The description adds minimal parameter-specific value: it mentions the default return behavior (related to wait_seconds) and the provider key usage (context for the workflow parameter). For a fully covered schema, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Start a multi-step workflow pipeline and return its session id immediately by default,' which is a specific verb+resource combination. It clearly distinguishes from siblings like 'advance_workflow' (for checkpoints) and 'get_workflow_session' (for polling individual steps).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says to 'Poll get_workflow_session for each step's model/provider and output' and explains checkpoint handling ('If a step is a human checkpoint, returns the session id to advance'). It implies when to use the tool versus polling, but it does not explicitly mention when not to use it (e.g., alternative tools like 'test_workflow_step' or 'plan_workflow').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_locus_caseScore Locus CaseAInspect
Score an anonymized adult mental-health / addiction case against LOCUS. Convenes the LOCUS Assessment Panel (psychiatrist, addiction specialist, clinical social worker, utilization reviewer, peer specialist, safety officer); each reviewer independently rates all six LOCUS dimensions, then a DETERMINISTIC engine aggregates the ratings and applies the Determination Grid and the inviolable override floors IN CODE (safety floors like Risk-of-Harm=4 → Level 5 cannot be reasoned away). Returns the recommended Level of Care with a full audit trail. Adults only (CALOCUS/CASII covers child/adolescent); use ONLY anonymized cases. Starts asynchronously by default; poll get_session. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| case | Yes | The anonymized clinical case text (presentation, history, substance use, functional status, environment, engagement). | |
| model | No | Optional model override; omit for the platform default. | |
| wait_seconds | No | Optional synchronous wait; default 0 returns immediately. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it is deterministic, async by default with synchronous option, requires authentication, and provides an audit trail. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly concise given the complexity, with the core action front-loaded. Some details (e.g., listing all panel roles) could be trimmed, but overall it is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, output schema exists), the description covers purpose, usage, behavioral traits, and parameter semantics. It lacks details on output format, but the output schema provides that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions (100% coverage). The description adds context for the 'case' parameter (specifying the kind of text) and 'wait_seconds' (synchronous wait), but does not provide information beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool scores anonymized adult mental-health/addiction cases against LOCUS, names the six dimensions, mentions the panel and deterministic engine, and distinguishes from child/adolescent tools (CALOCUS/CASII). This differentiates it from siblings like locus_determine_from_scores.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using only anonymized cases and for adults, implicitly excluding child/adolescent cases. It mentions asynchronous default and requirement for authentication. It does not explicitly name alternatives but sets clear scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_outreach_leadsSearch Outreach LeadsARead-onlyIdempotentInspect
Search the user's outreach leads — filter by a text query (company / contact / email), pipeline status, and/or campaign. Returns company, contact, status, pitch, and reply info. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max leads to return (default 20, max 100). | |
| search | No | Text to match against company / contact name / title / email. | |
| status | No | Filter by pipeline status (e.g. 'ready', 'sent', 'replied'). | |
| campaign_id | No | Filter to a single campaign id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds authentication requirement and that it returns specific fields, but does not provide deeper behavioral context beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences plus a third for authentication. Front-loaded with the main action and filters. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with 4 optional params, output schema exists, and annotations present, the description covers the purpose, filters, and authentication. Missing details on pagination or default behavior, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. Description adds value by explaining what the text query matches (company, contact, email) and that results include specific fields, which helps understand parameter usage beyond schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'search', resource 'outreach leads', and what filters are available (text query, pipeline status, campaign). Distinguishes from sibling tools like add_outreach_lead or update_outreach_lead_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context on when to use the tool: to search leads with filters. No explicit when-not or alternatives, but the description implies it's the primary search tool for leads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_invoiceSend InvoiceBInspect
Mark a draft invoice as sent (stamps issued_at). Re-sending an already-sent invoice is a harmless no-op. invoice_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the tool stamps issued_at and that re-sending is a no-op, but this directly contradicts the idempotentHint: false annotation. Since the claim of idempotency conflicts with the structured metadata, this is a serious transparency failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the purpose front-loaded and no filler. The idempotency clarification is useful and brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the core state change and idempotency behavior, but the contradiction with annotations and lack of explicit prerequisites (e.g., must be a draft) leave gaps. The output schema exists, so return values need not be described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description merely states 'invoice_id is required', which repeats the schema's required field. It adds no extra meaning about the parameter's format, accepted values, or behavior. With 0% schema description coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Mark') and resource ('draft invoice') and clarifies the state transition ('as sent (stamps issued_at)'), distinguishing it from related tools like create_invoice, update_invoice, or mark_invoice_paid.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for draft invoices by stating 'Mark a draft invoice as sent' and adds that re-sending is a harmless no-op, providing context for repeated calls. However, it does not explicitly mention when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_consulting_deliverableSubmit Consulting DeliverableBInspect
Submit an owned draft deliverable for internal review without publishing it.
| Name | Required | Description | Default |
|---|---|---|---|
| deliverable_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations indicate a mutation (readOnlyHint=false), the description does not disclose side effects (e.g., whether it triggers notifications), required permissions, or the ability to undo. The phrase 'without publishing it' adds some context but is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no unnecessary words. It is front-loaded and concise, though a bit more detail would not harm conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown), the description fails to mention prerequisites (e.g., the deliverable must be owned and in draft state) or what happens after submission. For a mutation tool in a complex domain, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (deliverable_id) with no description (0% coverage). The tool description provides no additional meaning about the parameter, such as how to obtain the ID or acceptable values, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('submit'), the resource ('owned draft deliverable'), and the purpose ('for internal review without publishing it'). It stands out from siblings like 'approve_consulting_deliverable' and 'create_consulting_deliverable', which are distinct steps in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a specific use case (submitting for internal review) but lacks explicit guidance on when not to use it, such as when the deliverable is not owned or should be published directly. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_content_assetSubmit Content AssetAInspect
Submit an owned draft for review, freezing that exact revision and content hash.
| Name | Required | Description | Default |
|---|---|---|---|
| asset_id | Yes | Full UUID from the matching list tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal and set readOnlyHint=false and destructiveHint=false. The description adds value by disclosing that the tool 'freezes that exact revision and content hash,' indicating a non-reversible state change beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately conveys the core action. No extraneous words or information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are covered. However, the description could benefit from mentioning that submission triggers a review workflow or specifying ownership requirements, given the large number of related sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with the single parameter asset_id already described as 'Full UUID from the matching list tool.' The description does not add further parameter details, but the tool-level context about freezing revision relates to the parameter's role.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Submit an owned draft for review, freezing that exact revision and content hash.' It uses a specific verb (submit) and resource (draft), and distinguishes from siblings like approve_content_asset and reject_content_asset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as approve_content_asset or reject_content_asset. The description implies usage for owned drafts, but does not state prerequisites 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.
submit_meta_council_feedbackSubmit Meta Council FeedbackAInspect
Report feedback about the META COUNCIL PLATFORM itself — a noticeable performance failure, a lacking/missing capability, a bug, or a UX/docs gap in Meta Council's tools, councils, workflows, or MCP surface. Platform feedback only: do NOT use this for anything about your own business, customers, deals, invoices, or other data Meta Council manages on your behalf — use the relevant business tool for that instead (e.g. create_deal, create_invoice). Use it the moment a tool result, council run, or workflow falls short. Stored per-user and visible only to platform admins — the response returns an id + acknowledgement and submissions cannot be read back. Include machine context (tool name, session id, model) in the context object.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| title | Yes | ||
| context | No | Machine context: tool name, session id, model, timings. | |
| category | No | ||
| severity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnly=false, destructive=false) are neutral, so the description carries the burden of explaining behavior. It adds critical details: submissions are stored per-user, visible only to platform admins, return an id + acknowledgement, and cannot be read back. These are exactly the kind of behavioral traits an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, with each sentence serving a distinct purpose: purpose, exclusions, usage timing, and behavioral/parameter notes. There is no fluff or repetition of schema fields; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema presumably covering return values, the description covers the tool's scope, exclusions, trigger conditions, privacy/storage, and context parameter. This is more than sufficient for an agent to decide when and how to use the tool correctly, even with 5 parameters and a nested object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 20% of parameters are described in the schema, and the description partially compensates by specifying what belongs in the context object (tool name, session id, model) and mapping feedback categories (performance, bug, UX) to enum values. However, it does not explain the title, body, or severity parameters, leaving some gaps unanswered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as a feedback tool for platform issues, listing concrete examples like performance failures, missing capabilities, bugs, and UX/docs gaps. It explicitly distinguishes itself from business-data tools by naming alternatives (create_deal, create_invoice), which sets it apart 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('Use it the moment a tool result, council run, or workflow falls short') and when-not-to-use ('do NOT use this for anything about your own business...use the relevant business tool instead'). It even names alternative tools, giving clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_accounting_ticketsSync Accounting TicketsAIdempotentInspect
Commit a previously previewed completed Accounting run's WRITEOff work plan to stable owner-private Meta Council tickets. The expected_plan_hash from the preview is required, retries are idempotent, stable references prevent duplicate tickets across reprocessed runs, and human edits to generated content fields are preserved. Status, assignee, hierarchy, and completion are not reset. Requires both accounting:read and tickets:write. This creates or updates only in-platform planning tickets; they are not field-encrypted and become readable through tickets:read without accounting:read. It never files, pays, sends, or publishes anything.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | ||
| expected_plan_hash | Yes | Exact plan_hash returned by preview_accounting_ticket_sync. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are supplemented with details on idempotency, stable references, human edit preservation, lack of reset on status/assignee/hierarchy, and explicit disclaimers (never files/pays/sends/publishes). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense single paragraph covers action, inputs, behaviors, auth, and limitations. Front-loaded with main purpose, but could benefit from clearer sentence breaks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity and sibling tools, description covers key aspects: idempotency, permissions, what it doesn't do. Output schema exists, so return value details are unnecessary. Slight gap in explaining ticket scope (owner-private Meta Council).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds context that expected_plan_hash must match preview output, but does not elaborate on run_id beyond schema. With 50% schema coverage, it partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it commits a previewed Accounting run's work plan to Meta Council tickets, with specific verb 'commit' and resource. It distinguishes from sibling tools like preview_accounting_ticket_sync (preview) and ticket_create (generic).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage after preview, mentions idempotency and required auth, but lacks explicit when-not-to-use or alternative tools beyond the preview sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_workflow_stepTest Workflow StepAInspect
Run exactly ONE step of a workflow and return what it produced, so you can iterate on a single step's wording without running the steps before it. THIS SPENDS CREDITS EXACTLY LIKE A REAL STEP: the step runs on a real model through the same engine a full run uses and is billed identically -- it is not a simulation, a dry run, or a free preview. If you want to check a workflow's shape, parameters, models and cost estimate for free, use plan_workflow instead; that one runs nothing. Starts no session, so there is nothing to poll and nothing to advance. Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | The input the step works on, exactly as you would pass it to run_workflow. Optional -- omit for a step whose instruction already carries everything it needs. | |
| workflow | Yes | The workflow slug (from list_workflows), e.g. 'due_diligence'. | |
| parameters | No | Optional values for the workflow's declared parameters, as a flat name-to-value object, e.g. {"region": "EU"}. They are substituted into the step wording the same way a real run substitutes them. | |
| step_index | Yes | Which step to run, counting from 0. A workflow with 4 steps accepts 0 to 3; anything else is refused without spending. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly states it runs a real model, spends credits, is billed identically, and is not a simulation. It also notes that it starts no session and requires authentication. Annotations provide no hints, so the description carries the burden well; could add idempotency or rate limit info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the purpose, then provides important caveats about credits and alternatives. It is efficient but could be more scannable with bullet points for the key points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 params, output schema exists, annotations silent), the description covers purpose, usage guidance, behavioral traits, parameter semantics, and alternatives. It provides enough for an agent to decide when and how to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds significant context: it explains the query parameter's relation to run_workflow, workflows as slugs from list_workflows, parameters as flat objects with substitution, and step_index validation with cost behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Run exactly ONE step of a workflow' with a clear verb and resource, and distinguishes itself from run_workflow, advance_workflow, and plan_workflow by specifying the single-step scope and credit cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly tells when to use (iterate on a single step's wording) and when not (for checking shape/parameters, use plan_workflow instead). It also warns about credit spending. Lacks an explicit directive against full runs, but the name and context imply it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_archiveTicket ArchiveAInspect
Retire an owned ticket from the working set, or restore one. Archiving is a different axis from status: the ticket keeps whatever status it had, so a done ticket stays done and a blocked one comes back still blocked — never use status 'cancelled' to mean 'archived'. An archived ticket disappears from ticket_list, the stats, the buckets, the attention queue, and outbound JIRA/Linear sync, but keeps its id and URL so citations stay valid, and it refuses edits until restored. Cascades to the active subtree; restore brings back exactly what was archived alongside it. Nothing is destroyed — this is not a delete, and no delete tool is exposed.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | archive | |
| ticket_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate readOnlyHint=false and destructiveHint=false, but the description adds substantial behavior: status is preserved, tickets keep id/URL, edits are refused until restored, cascades to the active subtree, and restore brings back exactly what was archived. None of this contradicts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the action, then uses a few tightly packed sentences to explain status preservation, side effects, cascade behavior, and non-destructiveness. Every sentence adds unique value with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, the description covers all important invocation context: side effects on listing/statistics/sync, edit refusal, subtree cascade, restore semantics, and relationship to status and delete. This is sufficient for an agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only ticket_id and action, with 0% schema description coverage. The description explains the two actions ('archive or restore') and refers to 'owned ticket' for ticket_id, but it never explicitly maps parameter names to their meanings or discusses parameter constraints beyond that. It partially compensates with rich behavioral context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Retire an owned ticket from the working set, or restore one,' naming both the action and resource precisely. It also distinguishes archiving from status and from deletion, making its purpose clear relative to sibling ticket tools like ticket_update and ticket_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-not guidance: 'never use status cancelled to mean archived' and clarifies archiving is a different axis from status. It also warns that archived tickets disappear from ticket_list and sync and that no delete tool is exposed, which helps an agent choose this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_batch_createTicket Batch CreateAIdempotentInspect
Preview or idempotently commit one atomic owner-private batch of structured tickets and nested subtickets. Preview is non-mutating and returns the normalized commit payload, exact preview_token, and deterministic predicted IDs as JSON. Commit requires that exact token: combine commit_payload with mode=commit, the caller-held idempotency_key, and preview_token. It returns the same IDs plus replay status. A caller-stable visible-ASCII idempotency_key is always required. MCP authorship is stamped by the server; callers cannot spoof it. Nested subtickets are bounded and validated by the ticket handler before any write. This never executes, sends, publishes, deletes, or mutates an external provider.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| tickets | Yes | ||
| parent_id | No | ||
| preview_token | No | Exact preview_token returned by preview mode. | |
| idempotency_key | Yes | Caller-stable visible-ASCII key. Reuse only for the exact same operation and payload. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate idempotentHint=true, but the description adds substantial context: preview is non-mutating, commit requires a token and returns replay status, MCP authorship is server-stamped and cannot be spoofed, subtickets are bounded/validated, and the tool never touches external providers. This goes well beyond the annotations and clarifies all key behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds value: purpose, preview behavior, commit flow, idempotency key requirement, server authority, validation, and external boundary. It is front-loaded with the main purpose and uses a logical flow without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (preview/commit, atomicity, idempotency, nested subtickets) and that an output schema exists, the description covers the necessary workflow, return behaviors (normalized payload, predicted IDs, replay status), and constraints. It does not mention edge cases like what happens if the idempotency_key is reused with a different payload, but it is reasonably complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, so the description must compensate. It explains the roles of mode, preview_token, and idempotency_key clearly, but does not describe the 'tickets' or 'parent_id' parameters. The schema itself does provide descriptions for some fields (idempotency_key, preview_token, status, ticket_type), so the description partially fills the gaps but not completely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Preview or idempotently commit one atomic owner-private batch of structured tickets and nested subtickets,' which clearly identifies the tool's action (preview/commit), resource (batch of tickets), and key characteristics (atomic, owner-private). It distinguishes itself from single-ticket tools like ticket_create by emphasizing batch and preview/commit flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly outlines the two-phase usage: preview first, then commit with the exact returned preview_token. It also specifies that idempotency_key is always required and confirms the tool never mutates external providers. However, it does not directly name alternative tools or state when to use batch create over single create, though the batch context is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_claimTicket ClaimAInspect
Claim a ticket to work on: sets assignee to your agent name and moves it to in_progress in one step (the move is audit-logged). Refuses if another agent already has it in progress unless force=true. Follow up with ticket_comment progress updates and finish via ticket_update status='done'.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Take over a ticket another agent holds. | |
| assignee | Yes | Your agent name, e.g. 'claude_code_local'. | |
| ticket_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses mutation behavior (sets assignee, moves to in_progress), audit logging, and force parameter behavior. Annotations are minimal, so description adds value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main action, no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core action, force option, and follow-up steps. Output schema exists, so return values are handled. Missing potential error conditions but adequate for a simple claim tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 2 of 3 parameters with descriptions. The tool description reinforces assignee purpose and force usage but adds nothing for ticket_id. Slight improvement over schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb ('Claim'), resource ('ticket'), and specific actions: sets assignee and moves to in_progress. Distinguishes from sibling tools like ticket_comment, ticket_update, and ticket_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a workflow hint: 'Follow up with ticket_comment... and finish via ticket_update...' and explains condition with force=true. Does not explicitly contrast with all alternatives but gives clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_commentTicket CommentAInspect
Add a comment to an owned ticket's activity trail. Use kind='progress' for work updates while a ticket is in progress. The authenticated API-key UUID is stamped as author; callers cannot supply or spoof it. Open the comment in plain language before any technical detail — these are read during escalations by people who were not part of the work.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment text (Markdown ok). Lead with a plain-language summary: what changed as observable behaviour, and what still needs a human decision — or say plainly that nothing does. Keep SHAs, paths and symbol names out of that opening; put them in the detail below it. | |
| kind | No | ||
| ticket_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden. It adds meaningful behavioral context: the API-key UUID is stamped as author and cannot be spoofed, only owned tickets can be commented on, and comments are read during escalations by people outside the work. These details go well beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then kind usage, then authorship and audience. Each sentence earns its place with distinct, useful information; there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the rich body schema and existence of an output schema, the description covers purpose, key usage, auth behavior, and audience expectations. It lacks explicit detail on ownership eligibility or failure modes, but for a simple comment tool it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only 'body' has a description). The description adds semantics for kind='progress', but ticket_id remains undocumented in both schema and description. Body guidance is largely duplicated from the schema's existing detailed description, so the description only partially compensates for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+scope: 'Add a comment to an owned ticket's activity trail.' This clearly distinguishes the tool from ticket_create, ticket_update, and ticket_get siblings, and the additional line about kind='progress' clarifies a key sub-purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on when to use kind='progress' for work updates while a ticket is in progress. It implies this is the comment-adding tool, but does not explicitly contrast it with ticket_update or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_createTicket CreateAInspect
Create a ticket on the caller's board — optionally as a subticket via parent_id. Recommend degree of difficulty with effort (trivial|small|medium|large|epic) and the kind of work with action_type (strategy|implementation|research|validation|testing|coordination). The authenticated API-key UUID is stamped by the server as creator provenance; callers cannot supply or spoof it. Session/workflow ids are opaque metadata links only. New epics cannot be created already done.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| effort | No | ||
| labels | No | ||
| status | No | New epics cannot be created already done; task statuses use the lifecycle authority. | |
| assignee | No | ||
| priority | No | ||
| parent_id | No | Parent ticket UUID. | |
| session_id | No | ||
| action_type | No | ||
| description | No | Open with one plain sentence saying what needs to happen and why it matters, for someone picking this up cold; put specifics and jargon after it. | |
| order_index | No | ||
| external_ref | No | ||
| effort_points | No | ||
| acceptance_criteria | No | ||
| workflow_session_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotation hints false, the description carries the burden and does well: it discloses server-side provenance stamping and non-spoofability, clarifies that session/workflow ids are opaque metadata links, and states the constraint that new epics cannot be created as done. This goes well beyond the boolean annotations and adds meaningful behavioral context, though it omits side effects like notifications or validation errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact at four sentences, front-loaded with the primary action, and every sentence adds value—provenance, opaque IDs, and the epic constraint. It earns its length given the tool's complexity, though a slightly tighter phrasing of the effort/action_type sentence could improve it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and 15 parameters with a nested external_ref, the description provides solid operational context: creation scope, subticket support, effort/action_type guidance, provenance, ID semantics, and a creation constraint. It does not cover all parameters or potential error behavior, but for a create tool with an output schema, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description must compensate. It adds useful semantics for effort (degree of difficulty), action_type (kind of work), parent_id (subticket creation), and session/workflow ids (opaque metadata). However, many other parameters (labels, priority, order_index, external_ref, etc.) are left to self-evident naming or the sparse schema, leaving gaps for a 15-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: "Create a ticket on the caller's board," and immediately distinguishes itself from sibling tools like ticket_batch_create (single vs batch) and ticket_update (creation vs modification). The optional parent_id subticket behavior adds precise scope. This is unambiguous and fully distinguishes the tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when creating a single ticket) and explains the optional subticket capability, giving clear context. However, it does not explicitly mention alternatives (e.g., ticket_batch_create for bulk creation) or provide when-not-to-use guidance, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_dependency_addTicket Dependency AddAInspect
Record that an owned ticket cannot complete until another owned ticket is done. The edge is never erased: correct a mistake with ticket_dependency_remove, which marks the edge removed and appends to a ledger rather than deleting anything. Re-adding the same prerequisite reinstates that original edge instead of creating a second one, so an edge removed and restored says so. An edge stops blocking when the prerequisite reaches done, and only then — archiving the prerequisite does not release it. Only epics are gated, so an edge on a task is recorded and reported but never blocks its completion. Rejections carry a stable code: dependency_self (422), dependency_duplicate, dependency_cycle, dependency_graph_too_large (409), ticket_not_found (404).
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | ||
| depends_on_ticket_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations by disclosing key behavioral traits: the edge is never erased, removal appends to a ledger, re-adding reinstates the original edge, archiving does not release the block, only epics are gated, and specific rejection codes with statuses. These details are not present in the annotation flags (all false) and provide essential runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds meaningful behavior (edge persistence, removal, re-add, blocking conditions, rejection codes). It is not overly verbose for the complexity of the tool, though it could be structured with bullet points for readability. Still, it earns each sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers the purpose, lifecycle (add/remove/readd), edge cases (archived prerequisite, non-epics), and error handling, all in one place. An output schema exists, so return values are not needed. This is a comprehensive description that leaves no significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does by defining the relationship: 'owned ticket' (likely ticket_id) cannot complete until 'another owned ticket' (depends_on_ticket_id) is done, and later refers to the 'prerequisite' (depends_on_ticket_id). This allows the agent to infer parameter roles, despite not explicitly labeling them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Record that an owned ticket cannot complete until another owned ticket is done.' This uses a specific verb ('record') and resource ('ticket dependency'), and it distinguishes the tool from siblings like ticket_dependency_remove by explaining the difference in behavior (never erased vs. marks removed).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names ticket_dependency_remove as the corrective alternative ('correct a mistake with ticket_dependency_remove'), and it clarifies when the dependency actually blocks completion (only epics, only when prerequisite is done, not when archived). This gives the agent clear context for when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_dependency_listTicket Dependency ListARead-onlyIdempotentInspect
List the prerequisites an owned ticket waits on. Read-only. Each edge reports satisfied, which is true only when the prerequisite is done, plus active/removed_at/removed_by_actor. Removed edges are omitted unless include_removed is true; they never gate completion, and are readable as history.
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | ||
| include_removed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail: 'satisfied' semantics, edge fields, and the behavior of removed edges with include_removed. This goes beyond the readOnlyHint and destructiveHint annotations, providing meaningful historical/filtering context. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states purpose, the second adds necessary behavioral details. No filler words or redundant content. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description sufficiently covers the essential behavior: prerequisite listing, satisfied condition, removal filtering, and history. It doesn't mention pagination, but for a dependency list that is likely negligible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though schema coverage is 0%, the description explains include_removed's effect in detail. The ticket_id parameter is understood contextually from 'an owned ticket' but could be more explicit. This partially compensates for lacking schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (List) and resource (prerequisites of an owned ticket), making it distinct from sibling tools like ticket_dependency_add/remove (mutations) and ticket_get. This precision removes ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this to list prerequisites. However, the description does not explicitly state when to prefer this over alternatives or mention exclusions (e.g., 'for modifying dependencies use ticket_dependency_add/remove'). A clear usage cutoff is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_dependency_removeTicket Dependency RemoveAInspect
Stop an owned ticket from waiting on a prerequisite. Removing the last unsatisfied edge can allow this ticket to close, so this is a gate-opening action. Nothing is deleted: the edge is retained, marked with who removed it and when, and the removal is appended to a ledger that survives everything after it. This is not a way to say the prerequisite work is finished — that remains a separate statement about that ticket. Removal is allowed even when either ticket is archived. Rejections carry a stable code: dependency_not_found (404), dependency_already_removed (409).
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | ||
| dependency_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses key behavioral traits: 'Nothing is deleted: the edge is retained, marked with who removed it and when, and the removal is appended to a ledger that survives everything after it.' It also notes behavior with archived tickets and stable rejection codes. This adds significant value beyond the annotations, which only state non-read-only, non-idempotent, non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: one leading sentence states the action, then a few sentences cover behavior, exclusions, archive handling, and rejection codes. Every sentence adds value with no repetition or fluff, so it earns a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description is remarkably complete. It covers the action, side effects (no deletion, ledger record), edge cases (archived tickets), error semantics (stable codes), and semantic distinction from marking work complete. The output schema is present, so return values needn't be described. This leaves no significant ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions, but the description clarifies the roles: 'ticket_id' is the owned (waiting) ticket and 'dependency_id' is the prerequisite. It also implies that the dependency is an 'edge' that can be removed. This compensates for the 0% schema coverage, though not as explicitly as it could. I give 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Stop an owned ticket from waiting on a prerequisite.' It uses a specific verb and resource, distinguishes from sibling tools (ticket_dependency_add, ticket_dependency_list) by describing the removal action, and clarifies the effect ('gate-opening action'). This is unambiguous and informative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: to remove a dependency edge that makes a ticket wait. It explicitly contrasts with a different action: 'This is not a way to say the prerequisite work is finished — that remains a separate statement about that ticket.' While it doesn't name specific alternative tools, the exclusion clarifies boundaries, so I give 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_getTicket GetARead-onlyIdempotentInspect
Full detail for one owned ticket: description, acceptance criteria, subticket progress, and the recent activity/comment trail. ticket_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds limited value by listing returned fields. It does not elaborate on behavioral traits like error handling or permission needs 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the key purpose and listing specific content, then stating the required parameter. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present), the description adequately covers the return data. It lacks mention of edge cases (e.g., missing ticket) but is sufficient for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate. It only mentions that ticket_id is required, without adding details like format, example, or constraints. For a single parameter, this is minimal additional meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full details for a single owned ticket, listing specific fields (description, acceptance criteria, etc.). This distinguishes it from sibling tools like ticket_list (which likely returns a list) and ticket_update/comment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'ticket_id is required', guiding the user on the necessary input. It implies usage when needing detailed info on a specific ticket, but does not explicitly mention when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_listTicket ListARead-onlyIdempotentInspect
Page through the caller's tickets on the Meta Council board. The opaque next_cursor is owner- and filter-bound; keep every filter unchanged on the next call. Immutable cursor ordering keeps a stable full-board traversal exact while returned tickets are edited or reordered. Filter by status, assignee, action_type, priority, parent_id (a ticket UUID, or 'none' for root tickets only), or free-text q over title/description. With recursive=true, parent_id must be an owned UUID and all descendants (not the anchor) are returned as one flat, cycle-safe traversal. Session/workflow links are opaque metadata filters, not access grants. Start here to find work, then use ticket_get for detail and ticket_claim to take a ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| limit | No | ||
| scope | No | Archived tickets are out of the working set and hidden by default. Archiving never changed their status, so an archived ticket listed under scope='archived' still shows the status it had. | active |
| cursor | No | ||
| status | No | ||
| assignee | No | ||
| priority | No | ||
| parent_id | No | Parent ticket UUID, or 'none' for roots only. | |
| recursive | No | ||
| session_id | No | ||
| action_type | No | ||
| workflow_session_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral traits beyond the annotations: the opaque cursor is owner- and filter-bound, immutable cursor ordering ensures stable traversal, recursive mode returns a flat cycle-safe traversal, and session/workflow links are not access grants. These details add significant context not captured by the readOnlyHint or idempotentHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet comprehensive, front-loading the core purpose before adding necessary nuance about cursor stability, filters, recursion, and security caveats. Every sentence adds value and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides complete context for a list operation: purpose, filtering options, cursor behavior, recursive mode, security caveat, and pointers to sibling tools. With an output schema present, no need to explain return values, and the description covers all relevant aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17%, and the description compensates by explaining key parameters: filters (status, assignee, action_type, priority, parent_id with 'none' for roots), q over title/description, recursive behavior, and cursor semantics. However, it does not add meaningful explanation for 'limit' or go beyond the schema's own description for 'scope', leaving a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool pages through the caller's tickets on the Meta Council board, using a specific verb and resource. It explicitly differentiates from sibling tools like ticket_get and ticket_claim, and notes it is the starting point for finding work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool: 'Start here to find work, then use ticket_get for detail and ticket_claim to take a ticket.' It also provides key usage constraints such as keeping filters unchanged for cursor navigation and the requirements for recursive mode, giving clear guidance on appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_planTicket PlanAInspect
Preview or idempotently commit an owner-private ticket tree generated from a planning prompt or supplied structured plan. Requires tickets:write. A preview without a supplied plan invokes the planner model and additionally requires councils:run; supplied-plan preview and commit are provider-free and need only tickets:write. Preview is non-mutating and returns the normalized commit payload, an exact preview_token, and deterministic predicted ticket IDs as JSON. To commit, combine that commit_payload with mode=commit, the caller-held idempotency_key, and that exact preview_token; the response returns the same IDs plus replay status. A caller-stable visible-ASCII idempotency_key is always required. This creates only in-platform planning tickets; it never runs them, sends, publishes, deletes, or changes an external provider.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| plan | No | ||
| model | No | ||
| prompt | Yes | ||
| context | No | ||
| session_id | No | ||
| auto_assign | No | ||
| max_tickets | No | ||
| preview_token | No | Exact preview_token returned by preview mode. | |
| idempotency_key | Yes | Caller-stable visible-ASCII key. Reuse only for the exact same operation and payload. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts annotations: it states 'idempotently commit' while the idempotentHint annotation is false. Despite providing many behavioral details (non-mutating preview, no external changes), this contradiction warrants a score of 1 per evaluation rules.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough but front-loaded with the core purpose. Every sentence adds value, though it is somewhat long. It is well-structured with clear sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, nested objects, two modes) and the presence of an output schema, the description covers most essential aspects: modes, required fields, permissions, and limitations. However, it lacks details on some parameters and the plan structure beyond the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20%, so the description must compensate. It explains mode, plan, preview_token, and idempotency_key semantics well, but omits several parameters (model, context, session_id, auto_assign, max_tickets). Partial compensation results in a middle score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Preview or idempotently commit an owner-private ticket tree generated from a planning prompt or supplied structured plan.' It specifies the verb (preview/commit), resource (ticket tree), and scope (owner-private), distinguishing it from siblings like ticket_create or ticket_batch_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidelines for when to use preview vs commit, including permissions required ('tickets:write', 'councils:run' for preview without plan). It explains the idempotency_key and preview_token requirements. However, it does not explicitly contrast this tool with other ticket-related siblings 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.
ticket_scenario_createTicket Scenario CreateAInspect
Author one Given/When/Then scenario on an owned ticket. This is the specification an epic must carry before it can be completed: record a passing run against it with ticket_validation_finalize, then transition the epic. The server owns revision 1 and returns current_version and current_definition_hash — pass those exact values to ticket_validation_finalize. Authoring a scenario is not evidence; it states what must be proven, not that it was.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| required | No | ||
| ticket_id | Yes | ||
| then_steps | Yes | Ordered clause steps; blank-only steps are rejected. | |
| when_steps | Yes | Ordered clause steps; blank-only steps are rejected. | |
| given_steps | Yes | Ordered clause steps; blank-only steps are rejected. | |
| order_index | No | ||
| scenario_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no safety hints (all false), so the description carries the burden. It discloses key behavioral facts: the server owns revision 1, returns current_version and current_definition_hash, and that those exact values must be passed to ticket_validation_finalize. It also clarifies that authoring is not evidence. It doesn't cover failure modes or permissions, but adds meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler. The first sentence delivers the core purpose, the second provides the workflow context, and the third adds a conceptual constraint. The structure is logical, though the final sentence is slightly abstract. Still, each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with 8 parameters, no annotations, and an output schema, the description covers the essential context: the role in the epic lifecycle, the coupling with ticket_validation_finalize, and a key semantic caveat. It doesn't explain the 'owned ticket' prerequisite in detail or document all parameters, but the workflow guidance is strong and mostly offsets the gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, and the description does not elaborate on any input parameter beyond what the schema already provides. It mentions return values (current_version, current_definition_hash) but leaves parameters like scenario_key, order_index, and required undocumented. The schema already describes the step arrays, so the description adds no parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Author one Given/When/Then scenario') on a specific resource ('an owned ticket'), clearly distinguishing it from sibling tools like ticket_scenario_revise (revising a scenario) and ticket_validation_finalize (validating a scenario). The verb+resource combination is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when this tool is used: 'This is the specification an epic must carry before it can be completed.' It also provides the exact next step ('record a passing run against it with ticket_validation_finalize') and how to chain the call (pass the returned current_version and current_definition_hash). The caveat 'Authoring a scenario is not evidence' prevents misuse by clarifying this is not a validation step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_scenario_listTicket Scenario ListARead-onlyIdempotentInspect
List an owned ticket's scenarios with their exact current revisions, including the current_version and current_definition_hash that ticket_validation_finalize requires. Read-only. Use it before recording a run to confirm which revision is current, and to see why an epic still reports required_scenario_missing.
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | ||
| include_archived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds value by specifying that the tool returns exact current revisions and highlights the fields needed by ticket_validation_finalize. It also scopes to 'owned ticket' but does not elaborate on ownership semantics. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the action and key output details. Every sentence adds relevant context: what the tool lists, that it's read-only, and when to use it. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, the description doesn't need to explain return values. It covers the primary purpose, use cases, and relationship to ticket_validation_finalize. However, it omits details about the include_archived parameter and what 'owned ticket' means, which are minor gaps for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% parameter description coverage, so the description must compensate. However, it does not explain either parameter. 'ticket_id' is implied by 'owned ticket,' but 'include_archived' is completely unexplained. The description adds minimal meaning beyond the schema's parameter names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List an owned ticket's scenarios with their exact current revisions.' It specifies the resource (ticket scenarios) and the key output fields (current_version, current_definition_hash), tying it to ticket_validation_finalize. This distinguishes it from sibling tools like ticket_scenario_create or ticket_scenario_revise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Use it before recording a run to confirm which revision is current, and to see why an epic still reports required_scenario_missing.' It clearly states when to use the tool. However, it does not mention when not to use it or suggest alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_scenario_reviseTicket Scenario ReviseAInspect
Replace an owned scenario's content, compare-and-swapping on expected_version. Revisions are append-only: validation runs already recorded keep naming the exact version and hash they were proven against, so revising never rewrites past evidence — it does mean the epic needs a fresh passing run against the new version. A stale expected_version conflicts rather than overwriting a concurrent edit.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| ticket_id | Yes | ||
| then_steps | Yes | Ordered clause steps; blank-only steps are rejected. | |
| when_steps | Yes | Ordered clause steps; blank-only steps are rejected. | |
| given_steps | Yes | Ordered clause steps; blank-only steps are rejected. | |
| scenario_id | Yes | ||
| expected_version | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without relying on annotations (which only carry basic boolean flags), the description discloses key behavioral traits: append-only revisions, preservation of past validation evidence with exact version/hash, CAS conflict semantics, and the need for a fresh passing run. This goes well beyond what annotations provide and is essential for the agent to avoid surprising side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two sentences that pack in the purpose, concurrency model, append-only semantics, and follow-up requirement. It is front-loaded with the main action and contains no filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's moderate complexity, the description gives the agent everything it needs to understand the behavioral contract: how revisions interact with past evidence, how concurrent edits are handled, and what action is required afterward. An output schema exists, so the absence of return-value details is not a gap. The only minor ambiguity is the meaning of 'epic', but that is likely a domain term covered by broader context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, so the description must compensate. It does clarify expected_version (the CAS token) and indirectly explains scenario_id as the target. However, it does not explain the roles of ticket_id, name, or the step arrays beyond what the schema already states. The step arrays have schema descriptions, so that part is covered, but ticket_id remains unexplained. Overall, the description adds some value but not enough to fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Replace an owned scenario's content', giving a specific verb, resource, and ownership condition. This clearly distinguishes it from sibling tools like ticket_scenario_create and ticket_scenario_list, and the rest of the description leaves no doubt it's about modifying an existing scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the main use case (modifying an existing owned scenario) and provides explicit guidance on the compare-and-swap expected_version mechanism, including that a stale version conflicts rather than overwrites. It also warns that a fresh validation run is needed after revision. However, it does not explicitly name alternatives or state when not to use the tool, which would merit a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_updateTicket UpdateAInspect
Update fields on an owned ticket — status moves (each one is auto-logged to the ticket's audit trail), reassignment, priority/effort/action_type recommendations, title/description edits, safe reparenting, opaque session/workflow links, effort points, order, and user-owned external refs. Clear flags are explicit so stdio clients never lose JSON nulls. System-owned provider, Accounting, plan, and batch refs are preserved and cannot be spoofed. The authenticated API-key UUID is stamped on the audit trail. Epic completion and terminal reopen fail closed on this generic tool until an explicit lifecycle operation supplies retry/version evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| effort | No | ||
| labels | No | ||
| status | No | Task moves are audited. Epic done or terminal reopen requires an explicit lifecycle operation with retry/version evidence. | |
| assignee | No | ||
| priority | No | ||
| parent_id | No | ||
| ticket_id | Yes | ||
| session_id | No | ||
| action_type | No | ||
| description | No | ||
| order_index | No | ||
| clear_parent | No | ||
| external_ref | No | ||
| clear_session | No | ||
| effort_points | No | ||
| acceptance_criteria | No | ||
| clear_effort_points | No | ||
| workflow_session_id | No | ||
| clear_workflow_session | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutability (readOnlyHint=false) and non-destructiveness (destructiveHint=false). The description adds valuable behavioral context: status moves are audited, clear flags handle nulls explicitly, system-owned refs are preserved, and API-key UUID is stamped on the audit trail. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and includes a long run-on sentence listing many fields. It could be better structured with bullet points or clearer separation between different parameter groups. The front-loading is adequate but the overall readability suffers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 20 parameters, nested objects, and output schema, the description covers audit logging, null handling, preservation of system fields, and authentication. It lacks guidance on when to use this tool vs. siblings and does not detail nested parameter format, but overall provides substantial context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 5% schema description coverage, the description compensates by listing parameter categories and their behaviors (e.g., 'status moves are auto-logged', 'clear flags are explicit'), but it does not explain individual parameters like effort_points or acceptance_criteria in depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Update fields on an owned ticket' and enumerates specific operations (status moves, reassignment, edits, etc.), clearly differentiating it from sibling tools like ticket_create or ticket_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that 'Epic completion and terminal reopen fail closed on this generic tool until an explicit lifecycle operation supplies retry/version evidence,' but does not name the specific alternative tool or provide explicit guidance on when to use this tool vs. its siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ticket_validation_finalizeTicket Validation FinalizeAIdempotentInspect
Finalize one immutable validation run for an exact owned ticket scenario revision. Requires the opt-in tickets:validate scope. The server derives owner and actor only from the authenticated API key. Evidence payloads are bounded opaque JSON objects; locator-looking strings are recorded but never opened, resolved, redirected, or fetched. Exact retries by the same credential actor return the original receipt; a changed actor or changed content under the same key conflicts.
| Name | Required | Description | Default |
|---|---|---|---|
| runner | Yes | ||
| summary | No | ||
| verdict | Yes | ||
| evidence | Yes | ||
| ticket_id | Yes | ||
| environment | Yes | ||
| scenario_id | Yes | ||
| scenario_hash | Yes | ||
| idempotency_key | Yes | ||
| source_revision | Yes | ||
| scenario_version | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond annotations, including how owner/actor are derived, how evidence is handled, and idempotency semantics. It does not contradict the idempotentHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at four sentences, with no redundant information. Each sentence adds valuable context, and the structure is clear and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description thoroughly covers behavioral aspects and idempotency, it fails to explain the many parameters, which are crucial for correct invocation. The output schema exists but is not mentioned. Given the complexity and 0% schema description coverage, more detail on parameters would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 11 parameters, all without descriptions, and the tool description provides no parameter-specific information. Only general behavior about evidence is noted, leaving the agent to infer parameter meanings from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Finalize one immutable validation run for an exact owned ticket scenario revision.' The verb 'finalize' and resource 'validation run' are specific, and it distinguishes itself from other ticket tools by emphasizing immutability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the required scope and idempotency behavior, but does not explicitly state when to use this tool over alternatives like ticket_create or ticket_update. It provides implicit usage context but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
triage_meta_council_feedbackTriage Meta Council FeedbackAInspect
ADMIN ONLY: triage a platform-feedback report — set its status and/or admin notes (requires an ADMIN_EMAILS account; everyone else gets a permission error). Get the full feedback id from list_meta_council_feedback.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| admin_notes | No | Triage notes; an empty string clears them. | |
| feedback_id | Yes | Full feedback UUID from list_meta_council_feedback. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds a behavioral constraint beyond annotations: the permission error for non-admin users. Annotations already indicated the tool is not read-only, so the description's addition of the auth requirement is valuable. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loaded with 'ADMIN ONLY' and the core action. Every phrase earns its place: permission requirement, action scope, ID source. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters and an existing output schema, the description is complete. It covers the action, admin restriction, and required ID source. The schema already documents parameter details and the empty-string clearing behavior for admin_notes, so the description doesn't need to repeat them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with admin_notes and feedback_id described in the schema; status has an enum but no description. The description reinforces that status and/or admin_notes can be set, but does not add new parameter-specific information beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'triage a platform-feedback report' with specific scope 'set its status and/or admin notes'. It distinguishes itself from sibling tools like list_meta_council_feedback and submit_meta_council_feedback by focusing on triage/update rather than listing or creating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly notes 'ADMIN ONLY' and the need for an ADMIN_EMAILS account, preventing misuse. Also directs users to 'Get the full feedback id from list_meta_council_feedback', providing the necessary prerequisite. It doesn't explicitly contrast with alternatives, but the admin-only context implies when it should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_consulting_clientUpdate Consulting ClientCInspect
Update mutable fields on an owned consulting client.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| notes | No | ||
| status | No | ||
| client_id | Yes | ||
| contact_name | No | ||
| organization | No | ||
| contact_email | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide basic behavioral hints (not read-only, not idempotent, not destructive). The description adds only 'mutable fields', which is redundant. It does not disclose side effects, permissions, or constraints beyond what the name implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (4 words of substance), which is concise. However, it lacks necessary detail to be minimally viable for an AI agent, making it under-specified rather than efficiently complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, 1 required, and no output schema description, the tool description is insufficient. The presence of an output schema is noted in context but the description does not hint at return values. The tool is part of a large set of consulting tools, yet no contextual completeness is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description fails to explain any parameter meaning or valid values. For example, 'status' has an enum but no clarification that it toggles client state. The description is purely generic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('update') and resource ('consulting client'), and includes the qualifier 'owned' which provides some scope. However, it does not differentiate from sibling update tools like update_consulting_deliverable or update_deal, which is needed for a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description mentions 'owned' but does not explain what that implies or when not to use it. Sibling tools like create_consulting_client or other update functions are not contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_consulting_deliverableUpdate Consulting DeliverableAInspect
Edit an internal draft deliverable; review/approval state is separate.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| due_date | No | ||
| description | No | ||
| milestone_id | No | ||
| deliverable_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond annotations: it clarifies that the tool edits a draft and does not affect review/approval state. This is consistent with the annotations (readOnlyHint=false, destructiveHint=false, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence of 12 words, perfectly concise and front-loaded with the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description omits important details such as which fields are editable, constraints (e.g., only draft state), and does not compensate for the 0% schema coverage on parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not elaborate on any parameters (deliverable_id, title, due_date, description, milestone_id). The agent gets no extra meaning beyond the field names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Edit') and the resource ('internal draft deliverable'), and distinguishes from siblings like 'approve_consulting_deliverable' by noting that review/approval state is separate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context by stating 'internal draft' and that review/approval is separate, implying this tool is for drafts only. However, it does not explicitly instruct when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_consulting_document_revisionUpdate Consulting Document RevisionBInspect
Edit an unapproved proposal/SOW revision; approved revisions are immutable.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| title | No | ||
| document_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint=false, destructiveHint=false), placing the burden on the description. The description adds context about immutability after approval but does not disclose other behaviors like overwriting behavior, authorization needs, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loading the key purpose. However, it could be more helpful by briefly mentioning the parameters, but it remains efficient and focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0% schema coverage and no parameter descriptions, the description is incomplete. It does not explain which fields can be updated (though inferable from schema), nor does it clarify the output despite an output schema existing. More context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no information about the parameters beyond what is in the schema. With 0% schema description coverage, the description should compensate but fails to explain that 'body' and 'title' are the editable fields or that 'document_id' is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Edit an unapproved proposal/SOW revision', specifying the action (edit) and resource (unapproved revision). It also adds a constraint ('approved revisions are immutable'), which distinguishes this tool from similar tools like create or approve.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by noting that only unapproved revisions can be edited, but it does not explicitly state when not to use or provide alternatives. However, the sibling tool list includes 'create_consulting_document_revision' and 'approve_consulting_document_revision', offering implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_consulting_engagementUpdate Consulting EngagementCInspect
Update mutable fields on an owned consulting engagement.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| status | No | ||
| client_id | No | ||
| objective | No | ||
| start_date | No | ||
| engagement_id | Yes | ||
| sales_deal_ref | No | ||
| target_end_date | No | ||
| accounting_run_ref | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond what annotations provide. It states the update nature, but lacks details like ownership requirements, side effects, or field mutability restrictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence) but at the cost of completeness. It is front-loaded with the action verb but lacks structure to convey necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the input schema (9 parameters) and lack of parameter descriptions, the description is insufficient. It does not clarify return values or behavioral context, despite an output schema existing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the purpose or constraints of any of the 9 parameters. The agent receives no guidance on parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and resource ('consulting engagement'), with qualifiers 'mutable fields' and 'owned' that help distinguish from read or create operations. However, it does not fully differentiate from sibling update tools for other resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as update_consulting_client or other engagement tools. No prerequisites or scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_consulting_milestoneUpdate Consulting MilestoneCInspect
Update an owned consulting milestone while preserving its stable ref.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| status | No | ||
| due_date | No | ||
| description | No | ||
| order_index | No | ||
| milestone_id | Yes | ||
| expected_version | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's not read-only and not destructive. The description adds the detail 'preserving its stable ref', which implies identity preservation during updates, but no other behavioral traits (e.g., permissions, side effects) are disclosed. The contribution is marginal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence, which is front-loaded and efficient. However, its brevity sacrifices useful details. While concise, it does not fully earn its place due to missing critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 params, 2 required, 0% schema coverage), the description is insufficient. It does not explain the update behavior, meaning of 'stable ref', or any side effects. The presence of an output schema partially compensates, but the description alone is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not explain any of the 7 parameters (e.g., milestone_id, expected_version, status enum, order_index). The description fails to add any parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'owned consulting milestone', adding specificity with 'preserving its stable ref'. This distinguishes it from sibling update tools like update_consulting_deliverable or update_consulting_engagement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or context for usage. Given many sibling update tools, explicit usage guidelines are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_content_assetUpdate Content AssetAInspect
Edit an owned draft. Submitted/approved/rejected revisions are immutable and must be revised.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| channel | No | ||
| content | No | ||
| asset_id | Yes | Full UUID from the matching list tool. | |
| asset_type | No | ||
| scheduled_for | No | ||
| revision_notes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide little behavioral info (readOnlyHint=false, destructiveHint=false). The description adds the key constraint that certain revision states cannot be edited, but omits other traits like partial vs full update behavior, authentication requirements, or what happens to unspecified fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences front-loading the main action and adding a critical constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 7 parameters and an output schema, the description only covers purpose and a single constraint. It lacks guidance on how to use optional parameters, prerequisites (e.g., needing asset_id from get_content_asset), or any details about the return value, making it incomplete for an effective agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (only asset_id described). The description 'Edit an owned draft' provides no additional meaning for the other six parameters (title, channel, content, etc.), failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool edits an owned draft, distinguishing it from sibling tools like create_content_asset (creation), approve/reject (state changes), and submit (submission). It also specifies that certain revision states are immutable, further clarifying scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use (editing an owned draft) and when not to use (when revision is submitted/approved/rejected), implying the alternative is to create a revision. However, it does not explicitly name the sibling tool create_content_asset_revision, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_dealUpdate DealAInspect
Update one of the caller's deals — most commonly to ADVANCE its stage (e.g. discovery -> proposal). Moving to closed_won/closed_lost stamps the close date; reopening to an open stage clears it. Only the fields you pass change; deal_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| stage | No | ||
| title | No | ||
| amount | No | ||
| company | No | ||
| deal_id | Yes | ||
| currency | No | ||
| probability | No | ||
| expected_close_date | No | ISO date YYYY-MM-DD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation without destruction. The description adds behavioral details: partial update only for passed fields, and side effects of stage changes (stamping close date on closed_won/closed_lost, clearing on reopen). This 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: purpose, stage behavior, and partial update note. No fluff, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the most common use (stage advancement) and partial update behavior. However, with 9 parameters and 11% schema description coverage, many parameters lack explanation. The presence of an output schema reduces the need to describe return values, but the description could be more complete regarding non-stage fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (11%). The description adds meaning for the stage parameter with transition effects, but other parameters like notes, title, amount, etc. are not described beyond the schema. The description reiterates that deal_id is required. More parameter explanation would be helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (update), resource (deal), and scope (caller's deals), with a specific common use case (advancing stage). It distinguishes from sibling tools like create_deal and list_deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use (updating stage or other fields) and provides context on stage transitions. However, it does not explicitly exclude alternatives or state 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.
update_invoiceUpdate InvoiceAInspect
Update a draft or sent invoice's header fields (client, terms, due date, tax rate, notes). Only the fields you pass change. Blocked once paid/void — void and re-issue instead. invoice_id is required.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | ||
| currency | No | ||
| due_date | No | ISO date YYYY-MM-DD. | |
| tax_rate | No | ||
| invoice_id | Yes | ||
| client_name | No | ||
| client_email | No | ||
| payment_terms | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotations false, the description carries the burden of behavioral disclosure. It reveals partial update semantics ('Only the fields you pass change') and state restrictions (draft/sent allowed, paid/void blocked). It could mention side effects like notifications, but key behaviors are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with the purpose front-loaded. No redundant wording; each sentence adds critical information about usage, behavior, and constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter update tool with an output schema, the description covers the essential constraints and alternative paths. It doesn't explain return value details (handled by output schema) or explicitly mention behavior after updating a sent invoice, but it is complete enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps several parameters to logical groups (client, terms, due date, tax rate, notes) and notes that invoice_id is required. Despite low schema coverage (13%), it adds meaning beyond raw field names, though it omits currency and client_email explicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates header fields on draft or sent invoices, distinguishing it from sibling tools like add_invoice_line_item, void_invoice, and send_invoice. The verb 'update' plus resource 'invoice' and scope 'header fields' makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when not to use the tool ('Blocked once paid/void') and provides a clear alternative ('void and re-issue instead'). Also clarifies that only passed fields change, guiding selective updates. This exceeds baseline guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_marketing_audienceUpdate Marketing AudienceAInspect
Update fields on one owned audience definition. No delete is exposed over MCP.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| channels | No | ||
| audience_id | Yes | Full UUID from the matching list tool. | |
| description | No | ||
| pain_points | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false) and non-destructiveness. Description adds 'No delete' note but no other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, no fluff. First sentence states primary action, second adds a relevant constraint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters and low schema coverage, description omits parameter details and return behavior. Despite output schema existing, mutation tool needs more context on side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20% (audience_id described). Description does not explain the other 4 parameters (name, channels, description, pain_points) beyond stating they are fields to update.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('update'), specific resource ('marketing audience'), and scope ('one owned audience definition'). Distinguishes from sibling tools like create and get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use on existing audiences; notes 'No delete is exposed' as a constraint. Lacks explicit prerequisites or when-not-to-use, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_marketing_brandUpdate Marketing BrandBInspect
Update fields on one owned brand identity. No delete is exposed over MCP.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| voice | No | ||
| brand_id | Yes | Full UUID from the matching list tool. | |
| guidelines | No | ||
| value_proposition | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds one behavioral note ('No delete is exposed') which is helpful, but lacks details on side effects, permissions, or behavior of partial updates. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Front-loaded with the action. Could be considered too terse but is effective for its core message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing key context for a mutation tool: what happens to unspecified fields, idempotency, return value (though output schema exists). The description is insufficient for an agent to understand full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20% (1 of 5 parameters have descriptions). The description adds no parameter information, leaving agents to guess meanings beyond the schema. For a tool with 5 parameters, this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Update fields on one owned brand identity' with a specific verb and resource. Distinguishes from creation by specifying 'owned' and explicitly notes no delete is exposed, differentiating from potential deletion tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like create_marketing_brand or get_marketing_brand. The only guideline is a negative statement about delete, but no positive usage context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_marketing_campaignUpdate Marketing CampaignBInspect
Update one owned marketing campaign. Campaign status never publishes content.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| status | No | ||
| ends_on | No | ||
| brand_id | No | Full UUID from the matching list tool. | |
| channels | No | ||
| objective | No | ||
| starts_on | No | ||
| audience_id | No | Full UUID from the matching list tool. | |
| campaign_id | Yes | Full UUID from the matching list tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are provided with readOnlyHint=false and destructiveHint=false, indicating a mutating but non-destructive operation. The description adds one behavioral note: 'Campaign status never publishes content', which is not covered by annotations. However, it does not disclose other potential side effects, permission requirements, or reversibility, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is remarkably concise with two sentences, both providing essential information: first sentence states the core purpose, second adds a critical behavioral constraint. There is no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, output schema present, annotations) the description is too brief. It does not explain what happens when status changes, validation rules, or how the update interacts with other campaign-related tools. The description leaves significant gaps that could lead to misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, meaning many parameters (name, status, ends_on, channels, objective, starts_on) lack descriptions in the schema. The tool description does not compensate by explaining any parameters, thus failing to add meaning beyond the schema. Only brand_id, audience_id, and campaign_id have minimal descriptions in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Update one owned marketing campaign', which clearly states the action (update), the object (marketing campaign), and a scope condition (owned). This distinguishes it from sibling tools like create_marketing_campaign or list_marketing_campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives such as create_marketing_campaign or other update tools. It lacks explicit 'when to use' or 'when not to use' information, making it insufficient for an agent to decide between this and similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_outreach_lead_statusUpdate Outreach Lead StatusCInspect
Advance a lead through the pipeline — set its status / pipeline stage and, optionally, a recorded reply, pitch, or notes. The core pipeline-drive action. Idempotent (setting the same status twice is a no-op). Requires authentication.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Optional free-text notes. | |
| status | No | New pipeline status (e.g. 'ready', 'sent', 'replied', 'closed_won', 'closed_lost'). | |
| lead_id | Yes | Lead id to update (from search_outreach_leads). | |
| pitch_id | No | Optional pitch id to attach to the lead. | |
| response_text | No | Optional recorded reply text. | |
| response_type | No | Optional reply classification (e.g. 'positive', 'negative', 'neutral'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Idempotent (setting the same status twice is a no-op)', which contradicts the annotation 'idempotentHint: false'. This is a serious inconsistency. Additionally, it mentions authentication but does not disclose side effects, permission requirements, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences totaling ~40 words. The first sentence is front-loaded with the core action and optional fields. The second adds idempotency and authentication. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, 100% schema coverage, and an output schema (not shown), the description adds idempotency and auth info. However, it lacks prerequisites (e.g., lead must exist), error handling, or integration with sibling workflows. The contradiction with annotations reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description summarizes parameters as 'optionally, a recorded reply, pitch, or notes', but this adds minimal meaning beyond the schema descriptions. It does not provide usage examples or conditional requirements.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool advances a lead through the pipeline by setting its status or pipeline stage, with optional fields. The verb 'advance' aligns with the name 'update_outreach_lead_status', and the resource is well-defined. It does not explicitly differentiate from sibling tools like 'convert_lead_to_deal', but the core purpose is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description calls it 'The core pipeline-drive action' but provides no explicit guidance on when to use this tool versus alternatives like 'convert_lead_to_deal' or 'complete_sales_task'. There is no mention of context, prerequisites, 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.
update_saved_viewUpdate Saved ViewAInspect
Revise one of YOUR OWN saved views in place, keeping its id and any existing team share. Only the fields you send change; the rest are left exactly as they were, so this is safe to call without re-reading the whole definition first. Sharing a view does not let its readers revise it -- only the owner may. Requires authentication and the tickets:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name for the view. | |
| columns | No | Replacement column list, in order. At most 20. | |
| filters | No | Which tickets the view selects. Same filter vocabulary the ticket list accepts; omitted filters are unset. | |
| sort_by | No | New sort field. | |
| view_id | Yes | The view's id, from list_saved_views. | |
| group_by | No | New grouping field. | |
| sort_dir | No | New sort direction. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-idempotent, non-destructive mutation. The description goes beyond by disclosing partial-update behavior (unsent fields unchanged), preservation of id and team share, owner-only edit rights, and authentication/scope requirements. This substantially enriches the behavioral picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: purpose and preservation, partial-update safety, owner-only restriction, and auth requirement. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 params, nested filters object), existing annotations, and output schema, the description covers all essential context: what changes, what stays, who can call, and required access. It is complete enough for an agent to select and invoke the tool correctly without further investigation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for every parameter, so the baseline is 3. The description adds value by explaining that 'only the fields you send change; the rest are left exactly as they were,' which clarifies how to interpret omitted optional parameters. This contextualizes the schema without repeating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses a specific verb ('Revise') and resource ('saved views') with an explicit scope ('YOUR OWN'), distinguishing it from sibling tools like create_saved_view, delete_saved_view, execute_saved_view, and get_saved_view. It also states key preservation behavior (keeping id and team share).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use: partial updates without re-reading, owner-only restriction, and required auth/scope. It doesn't explicitly name alternative tools, but the owner-only clause and partial-update semantics effectively imply when not to use it versus siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_workflow_templateUpdate Workflow TemplateAInspect
Replace an existing custom workflow template's definition. This is a full replacement, not a patch: supply name and steps as you want them to end up, because anything omitted is not carried over. Built-in templates are read-only, and only the template's owner may change it. Steps run sequentially in the order given; depends_on is builder metadata only and does not change execution order. Requires authentication and the workflows:write scope.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Template name after the update. | |
| slug | Yes | Slug of the template to replace, from list_workflows. | |
| tags | No | Tags after the update. | |
| steps | No | The complete step list after the update, in run order. | |
| domain | No | Grouping domain after the update. | |
| description | No | Description after the update. | |
| expected_template_fingerprint | No | Optional. The definition fingerprint you last saw for this template, returned by update_workflow_template when it last succeeded. Supply it and the write refuses, changing nothing, if the stored template is no longer the one that fingerprint names -- someone else edited or deleted it since you read it. Omit it and the write proceeds as it always has, overwriting whatever is there. This is not the definition_sha reported for a run: that one also reflects global configuration, this one names the stored file alone. |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses several non-obvious behaviors: it is a full replacement (omitted fields are not carried over), built-in templates are read-only, only the owner can modify, depends_on is metadata only and does not affect execution order, and it requires authentication and the workflows:write scope. These go beyond the annotations, which only state readOnlyHint=false and destructiveHint=false, and provide clear expectations for side effects and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long, containing five sentences. It repeats the 'full replacement' idea twice ('This is a full replacement, not a patch' and 'anything omitted is not carried over'), which is redundant. It also includes multiple clauses that could be tightened. While not excessively verbose, it is not optimally concise for its content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers the essential contextual aspects: the nature of the update (replacement), constraints (built-in read-only, owner-only), execution model (sequential, depends_on metadata), and authorization requirements. Since the output schema describes return values, no additional explanation of outputs is needed. The description is complete enough for a user to understand the tool's behavior and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with detailed descriptions for all parameters, including semantics for depends_on, params, expected_template_fingerprint, etc. The top-level description does not add significant meaning beyond the schema—it reiterates a few points like 'depends_on is builder metadata only' which are already in the schema. Therefore, the baseline of 3 is appropriate as the schema already does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Replace an existing custom workflow template's definition.' It specifies the action (replace), the target (existing custom workflow template), and distinguishes it from creation. The phrase 'full replacement, not a patch' adds precision, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use the tool by noting that built-in templates are read-only and only the owner may modify them, implying this is for custom templates owned by the caller. It also mentions that the slug comes from list_workflows and that steps run sequentially, giving operational guidance. However, it does not explicitly compare to create_workflow_template, though the distinction is clear from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
void_invoiceVoid InvoiceAInspect
Void a draft or sent invoice. Cannot be applied to an already-paid invoice (issue a credit note instead). invoice_id is required. No delete tool is exposed over MCP — void is the terminal non-destructive state.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-destructive and non-read-only; the description adds valuable context by calling void 'terminal non-destructive' and explaining the paid-invoice constraint, though it does not detail side effects or irreversibility beyond 'terminal'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each providing necessary information: function/constraint, required parameter, and state/alternative. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the core purpose, key constraint, and terminal nature. With an output schema present, return details need not be in the description. It misses only potential side effects or related actions, but overall is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter invoice_id is self-evident, but schema description coverage is 0% and the description only repeats that it is required without adding format or additional semantic meaning. The parameter is simple enough that this is adequate but not enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool voids a draft or sent invoice, using a specific verb and resource. It also distinguishes itself from a delete tool by noting void is the terminal non-destructive state, setting it apart from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when NOT to use it (already-paid invoices require a credit note instead) and clarifies that no delete tool is exposed, making the appropriate context and alternatives clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
AlicenseAqualityBmaintenanceEnables multi-model consensus decision-making for high-stakes AI decisions, using independent expert models and a judge to surface disagreements and ground decisions.11236MIT- AlicenseAqualityAmaintenanceProvides a transparent, deterministic multi-criteria decision analysis engine that ranks options against weighted criteria with exact, explainable results.6MIT
- AlicenseAqualityBmaintenanceEnables role-based, multi-model AI orchestration by assigning specialized expert roles to a hybrid panel of local and cloud LLMs, generating unified advisory council reports for complex tasks.61MIT
- AlicenseAqualityBmaintenanceEnables structured, iterative reasoning for complex problem-solving with features like confidence tracking, revision mechanisms, and branching support. Provides flexible validation and multiple output formats for systematic analysis and decision-making tasks.15372MIT