Lovie Company Formation
Server Details
Form companies, manage bank accounts, cards, invoices and more — directly from your AI coding tools.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- lovieco/lovie-company-formation-mcp-npx
- GitHub Stars
- 0
- Server Listing
- Lovie Company Formation MCP
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 3.6/5 across 202 of 202 tools scored. Lowest: 1/5.
Multiple tool pairs are nearly identical (formation_extract_cap_table / formation_extract_cap_table_ocr; formation_start_formation / formation_create_formation), and several tools lack descriptions, making selection ambiguous. The scale of 202 tools with overlapping summaries (e.g., multiple cap-table summary tools) compounds the confusion.
Dominant snake_case `module_verb_noun` pattern, but with notable deviations: `captable_send_safe_for_signature` uses an inconsistent abbreviation, `check_company_name_availability` lacks a module prefix, and `get_list_` vs `list_` prefixes are mixed. Readable but not fully consistent.
202 tools is far beyond any reasonable surface for a single server, even a broad platform. The sheer number overwhelms and makes tool discovery impractical; many tools are peripheral (ads metrics) to the core formation purpose.
The domain appears well covered: formation flows, cap-table lifecycle (import, close, simulate), accounting (journal entries, periods, schedules), cards, documents, and transactions all have CRUD or lifecycle operations. Minor gaps exist (e.g., no card deletion, no counterparty creation), but they are unlikely to cause dead ends.
Available Tools
202 toolsaccount_get_accountGet AccountARead-onlyInspect
GetAccount retrieves a single account by ID with its details
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| account | No | |
| details | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds minimal behavioral context ('single by ID') beyond what annotations provide. It does not describe error cases, authorization needs, or other edge behaviors, but for a simple read operation this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 11 words, fully front-loaded with the essential action and scope. No unnecessary words or repetition. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, output schema present, annotations cover safety). The description effectively complements the schema and output schema, making the tool's purpose and usage clear. Slight lack of explicit sibling differentiation prevents 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?
The input schema has 100% description coverage for the 'id' parameter ('UUID value wrapper'). The description only restates that the tool uses an ID, adding no new semantic detail. Baseline of 3 applies given the schema fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'retrieves a single account by ID with its details.' The verb 'retrieves' specifies the action, 'account' is the resource, and 'single by ID' distinguishes it from listing tools like account_get_list_accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 ID') but does not explicitly state when to prefer this over sibling tools like account_get_list_accounts. No exclusions or alternatives are mentioned; guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_get_list_account_detailsList Account DetailsARead-onlyInspect
GetListAccountDetails retrieves account details in batch (eliminates N+1 GetAccount calls)
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| details | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, establishing safety. The description adds the batch behavior and efficiency rationale (eliminates N+1 calls), which is useful context 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?
The description is a single, front-loaded sentence that captures the core purpose and value proposition. No fluff, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and simple read semantics, the description is adequately complete for selection and invocation. It covers the batch nature and distinguishes from single-get, though it could slightly improve by referencing pagination or filter usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no parameter-level guidance. The filter, pageSize, and pageToken semantics are only inferable from the raw schema structure (e.g., maxItems, min/max). The description does not compensate for the low detailed 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 retrieves account details in batch, with the specific benefit of eliminating N+1 GetAccount calls. This distinguishes it from the sibling tool account_get_account and emphasizes its batch capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 frames this as a batch alternative to GetAccount, implying it should be used when fetching multiple account details to avoid N+1 problems. It does not explicitly mention exclusions or compare directly with account_get_list_accounts, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_get_list_accountsList AccountsBRead-onlyInspect
GetListAccounts retrieves a list of accounts with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| accounts | No | |
| totalCount | No | |
| nextPageToken | No |
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 safe-read nature is fully covered. The description adds that the list supports filtering and pagination, which is useful operational context but not extensive. 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?
A single sentence that front-loads the core action and avoids redundant wording. It is concise and to the point, though it sacrifices detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complex filter schema and pagination parameters, the description is thin but the schema provides the parameter structure and enums. It lacks guidance on pagination behavior and relationship to sibling tools, but annotations and output schema cover safety and return fields. Adequate but minimal for full comprehension.
Complex tools with many parameters or behaviors need more documentation. 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 filtering and pagination at a high level but does not explain the filter object structure, pageSize, or pageToken. The schema has no top-level descriptions, so the description carries much of the burden for parameter semantics and only partially fulfills it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a list of accounts and highlights filtering and pagination, making the core purpose evident. However, it does not distinguish this from sibling account_get_list_account_details, which likely also lists account information, so explicit differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 account_get_account or account_get_list_account_details. The phrase 'list of accounts' implies a listing use case, but there are no explicit alternatives, exclusions, or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_cancel_scheduleCancel ScheduleADestructiveInspect
Cancel an accrual schedule so no further periodic entries are generated. Entries already posted for elapsed periods are kept. Audit-logged.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| scheduleId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but the description adds valuable behavioral details: 'Entries already posted for elapsed periods are kept' and 'Audit-logged.' These go beyond the annotation by clarifying what is not destroyed and that the action is recorded. This is consistent with the destructive hint.
Agents need to know what a tool does to the world before calling 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. The first sentence states the primary action and consequence, and the second adds important side effects. Every word earns its place, and the structure is 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?
For a tool with two parameters and an output schema, the description covers the essential behavior and side effects, including what is retained and audit logging. It does not mention prerequisites or reversibility, but the presence of an output schema reduces the need to explain return values. Overall, it is sufficient for a cancellation operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes both parameters only as 'UUID value wrapper,' which is minimal but still provides 100% coverage. The description does not elaborate on the parameters, but with full schema coverage, the baseline of 3 applies. No additional semantic value is added by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Cancel an accrual schedule so no further periodic entries are generated.' This specifies the action (cancel), the resource (accrual schedule), and the primary effect (ceasing generation of periodic entries), distinguishing it from sibling tools like accounting_create_schedule and accounting_get_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 an accrual schedule should stop producing future entries, and it provides clear context without explicitly naming alternatives or exclusions. It does not mention when not to use it, such as for deleting already-posted entries, but the purpose is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_close_periodClose PeriodADestructiveIdempotentInspect
Close an accounting period: lock the window [start_date, end_date] and post a balanced closing entry that rolls the period's net income into equity (current-year earnings for a month/quarter close, retained earnings for a fiscal-year close). Periods must not overlap an existing closed period. After closing, writes dated inside the window are rejected until the period is reopened. Re-closing the same window is a no-op. Multi-currency companies get one closing entry per currency. Every close is audit-logged.
| Name | Required | Description | Default |
|---|---|---|---|
| basis | No | ||
| endDate | No | ||
| companyId | Yes | UUID value wrapper. | |
| startDate | No | ||
| granularity | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| period | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses extensive behavioral traits beyond the annotations: the window locking, balanced closing entry, equity rollover logic (current-year earnings vs. retained earnings), overlap restriction, rejection of writes, no-op re-closing, multi-currency handling, and audit logging. This adds significant context beyond the idempotentHint and destructiveHint 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 paragraph that front-loads the purpose and then enumerates essential behaviors. Every sentence adds value—covering prerequisites, effects, idempotency, multi-currency nuance, and audit logging—without redundant 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 destructive, idempotent mutation with an output schema, the description covers all key aspects: what the operation does, constraints, side effects, edge cases, and audit behavior. The presence of sibling tools like accounting_reopen_period and accounting_preview_close further contextualizes the tool's role in the lifecycle.
Complex tools with many parameters or behaviors need more documentation. Simple 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 low (20%), so the description must compensate. It explains the startDate/endDate window and indirectly explains granularity by noting different closing entry behavior for month/quarter vs. fiscal-year closes. However, it does not clarify the basis parameter (accrual/cash) or the companyId wrapper, leaving gaps that the schema alone does not fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 ('Close') and resource ('accounting period'), and elaborates on the exact behavior: locking the date window and posting a closing entry. It naturally distinguishes from siblings like accounting_reopen_period and accounting_preview_close by detailing the closing semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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: periods must not overlap existing closed periods, and after closing, writes are rejected until reopened. However, it does not explicitly mention alternatives (e.g., preview_close for dry-run) 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.
accounting_create_scheduleCreate ScheduleAInspect
Create an accrual schedule that spreads a total amount across N monthly periods as accrual-only adjusting entries (e.g. amortize a prepaid, defer revenue, depreciate an asset). Each period posts Dr debit_gl_account / Cr credit_gl_account for its share; the split is straight-line with any rounding remainder on the final period. Pick gl_account_id values from accounting_get_chart_of_accounts. Cash-basis reports are unaffected.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| companyId | Yes | UUID value wrapper. | |
| startDate | No | ||
| periodCount | No | ||
| totalAmount | No | ||
| currencyCode | No | ||
| debitGlAccountId | Yes | UUID value wrapper. | |
| creditGlAccountId | Yes | UUID value wrapper. | |
| sourceTransactionId | No | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| schedule | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the minimal annotations (openWorldHint=false, destructiveHint=false). It discloses exactly how entries are posted (Dr/Cr per period), the straight-line allocation with rounding remainder on the final period, and the impact on cash-basis reports. This is rich behavioral context that materially assists the agent in understanding 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 three sentences, tightly packed with relevant information. It is front-loaded with the core purpose, followed by detailed mechanics and a practical note about cash-basis. Every sentence earns its place; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and the presence of an output schema, the description is complete. It covers behavior, parameter sourcing, allocation logic, and report impact. It does not need to describe return values since an output schema exists, and it references the appropriate sibling tool for account lookup.
Complex tools with many parameters or behaviors need more documentation. Simple 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 44%, so the description needed to compensate. It does well for key parameters: debit/credit account IDs are explained, 'total amount across N monthly periods' clarifies totalAmount and periodCount, and the examples map to the kind enum. However, currencyCode and sourceTransactionId are not mentioned at all, and startDate is only implied by 'monthly periods.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 and resource: 'Create an accrual schedule that spreads a total amount across N monthly periods as accrual-only adjusting entries.' It gives concrete examples (amortize prepaid, defer revenue, depreciate asset) and distinguishes itself from sibling tools like accounting_cancel_schedule and accounting_preview_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it explains when this tool is appropriate (accrual-based adjustments) and even directs the agent to pick account IDs from accounting_get_chart_of_accounts. It mentions that cash-basis reports are unaffected, which is a useful exclusion. However, it does not explicitly state to use accounting_preview_schedule for previewing or accounting_cancel_schedule for cancellation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_delete_journal_entryDelete Journal EntryADestructiveInspect
Delete or void a journal entry. For entries tied to a transaction prefer re-categorizing the transaction (the entry re-derives). Deleting a derived entry is temporary — the engine re-creates it on the next sync; deleting a manual per-transaction override reverts the transaction to its automatic entry; a standalone manual entry is voided (kept for audit, excluded from reports). Every outcome is audit-logged.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| journalEntryId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the destructiveHint annotation by detailing exact behaviors: derived entries are recreated on next sync, manual overrides revert to automatic, standalone entries are voided (kept for audit, excluded from reports), and all outcomes are audit-logged. This rich behavioral context is not present in the annotations and adds significant value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet comprehensive, with each sentence adding necessary detail. It is front-loaded with the core action, then breaks down outcomes in a structured, logical order, avoiding redundancy and 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 destructive nature and multiple behavioral branches, the description covers all essential context: when to use alternatives, what happens for each entry type, and audit implications. With an output schema present and rich annotations, the description is fully complete for an agent to understand the tool's 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?
The input schema covers 100% of parameters with descriptions, but those descriptions are generic ('UUID value wrapper') and add little semantic value. The tool description does not elaborate on the parameters beyond their names, so it does not improve on schema coverage. Baseline 3 applies due to 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 opens with 'Delete or void a journal entry', using a specific verb and resource that clearly distinguishes it from sibling tools like accounting_upsert_journal_entry or accounting_get_journal_entry_by_transaction. It also explains the different deletion semantics (derived vs manual override vs standalone), further clarifying the tool's unique 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 explicitly states 'For entries tied to a transaction prefer re-categorizing the transaction (the entry re-derives)', providing a clear alternative and when to use it instead. It also outlines the consequences for each entry type, giving the agent situational guidance on when deletion is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_get_balance_sheetGet Balance SheetARead-onlyInspect
GetBalanceSheet returns assets, liabilities, and equity balances as of a date; equity includes net income to date, so the sheet always balances. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| basis | No | ||
| asOfDate | No | ||
| companyId | Yes | UUID value wrapper. | |
| currencyCode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| assetRows | No | |
| equityRows | No | |
| totalAssets | No | |
| totalEquity | No | |
| currencyCode | No | |
| liabilityRows | No | |
| netIncomeToDate | No | |
| totalLiabilities | No | |
| totalLiabilitiesAndEquity | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful context beyond annotations: equity includes net income to date and the sheet always balances, which sets expectations about data behavior. It does not mention currency or basis handling, but annotations reduce 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?
Two sentences, no redundant fluff. Front-loads the core function and includes a key behavioral nuance. Very efficient 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?
With a read-only tool, output schema present, and annotations, the description covers the essential purpose and a key data quirk. It doesn't need to explain return structure. Minor gaps in parameter detail and alternative usage pull it below 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 description coverage is only 25% (companyId's wrapper). The description does not explain basis, currencyCode, or asOfDate semantics. It loosely references 'as of a date' but doesn't specify formats, defaults, or how basis affects the report. Since coverage is low, 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 clearly states the tool returns assets, liabilities, and equity balances as of a date, with the specific note that equity includes net income to date. This distinguishes it from siblings like profit_and_loss or trial_balance by explicitly defining the balance sheet structure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use or alternative guidance. It implies use for point-in-time balance sheet queries but does not contrast with period-based reports like P&L or trial balance. Clear context but no exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_get_chart_of_accountsGet Chart Of AccountsARead-onlyInspect
GetChartOfAccounts returns the company's chart of accounts (flat list with parent links; build the tree client-side). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| includeInactive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| accounts | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description reinforces 'Read-only.' It adds valuable behavioral context by revealing the flat list structure with parent links and that tree construction is the client's responsibility. This goes beyond the annotations by disclosing data shape and processing expectations, though it does not mention pagination or default filtering behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the core purpose and includes a critical implementation detail. Every word earns its place, with no redundancy or fluff, making it optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with an output schema, the description is mostly sufficient. It conveys the essential output shape (flat list with parent links) and the client-side tree construction need. However, it omits any mention of the includeInactive parameter's behavior, which feels like a minor gap given the tool's simplicity and the presence 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?
Schema description coverage is only 50% (companyId has a wrapper description, includeInactive has none), and the tool description does not explain either parameter. The boolean 'includeInactive' is particularly left ambiguous; the description offers no insight into its default or effect. The description adds no value beyond the schema for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'returns the company's chart of accounts.' It also specifies the output format ('flat list with parent links') and instructs the caller to 'build the tree client-side,' distinguishing it from related tools like balance sheet or general ledger. The verb 'returns' and specific resource make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. While it implies usage for retrieving a chart of accounts, it does not differentiate from sibling tools like account_get_list_accounts or accounting_get_general_ledger, nor does it state any exclusions or preferred scenarios. There is no 'use X instead' or '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.
accounting_get_general_ledgerGet General LedgerARead-onlyInspect
GetGeneralLedger pages through one account's posted lines with opening, running, and closing balances — the account register. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| basis | No | ||
| endDate | No | ||
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No | ||
| startDate | No | ||
| glAccountId | Yes | UUID value wrapper. | |
| currencyCode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | |
| totalCount | No | |
| currencyCode | No | |
| nextPageToken | No | |
| closingBalance | No | |
| openingBalance | No |
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 description's 'Read-only.' is redundant. However, it adds valuable behavioral context beyond annotations: pagination ('pages through'), the restriction to 'posted lines' (excluding unposted entries), and the balance structure (opening, running, closing). This enriches the agent's understanding of what happens when invoking the 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, front-loaded sentence with an em-dash clarification, plus a redundant but short 'Read-only.' note. Every word earns its place; it is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations cover the safety profile, the description provides sufficient core context: pagination, single-account scope, posted lines, and balance types. It does not elaborate on parameter usage, but the required parameters are obvious from the schema and the description's focus on 'one account'. This is slightly above adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (just 'UUID value wrapper' for companyId and glAccountId), and the description does not compensate. It mentions 'one account' which hints at glAccountId and 'pages through' which relates to pagination parameters, but it does not explain optional parameters like basis, startDate, endDate, or currencyCode. The description adds minimal meaning beyond the schema param names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'pages through' and clearly identifies the resource: one account's posted lines with opening, running, and closing balances. It distinguishes from siblings by emphasizing 'one account' and 'account register', which differentiates it from broader financial reports like balance sheet or trial balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one account's posted lines' gives clear context that this tool is for single-account detail, implying it is not for multi-account or financial statement views. However, it does not explicitly name alternatives or exclusions, 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.
accounting_get_journal_entry_by_transactionGet Journal Entry By TransactionARead-onlyInspect
GetJournalEntryByTransaction returns the journal entry derived for one transaction (empty when none exists yet). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| transactionId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| entry | No |
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 known. The description adds the useful behavioral detail that the result is empty when no journal entry exists yet, which goes beyond the annotations and helps the agent interpret the response.
Agents need to know what a tool does to the 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 no filler. The first sentence states the purpose and behavior, and the second reinforces read-only nature. Every word earns its place, and it is front-loaded with the 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 tool is simple, has an output schema, full parameter descriptions, and strong annotations. The description covers the key edge case (empty result) and does not need to explain return format due to output schema. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters having descriptions ('UUID value wrapper'). The description does not add any parameter-specific meaning beyond what the schema already provides, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns the journal entry derived for one transaction, using the specific verb 'returns' and resource 'journal entry'. It distinguishes itself from siblings by specifying 'by transaction' and 'for one transaction', which differentiates it from list-oriented journal entry 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 clear context that this tool is scoped to a single transaction, implying it is for fetching a single derived journal entry rather than listing multiple. It does not explicitly name alternatives or exclusions, but the 'for one transaction' phrasing gives sufficient guidance for when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_get_list_journal_entriesList Journal EntriesBRead-onlyInspect
GetListJournalEntries pages through the journal register with filters — the review queue is filter{needs_review: true}. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| entries | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it 'pages through' (pagination) and that the review queue filter is `needs_review: true`, which is useful behavioral context. However, it does not disclose return format, rate limits, or other behavioral traits, and 'Read-only' merely repeats the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief and front-loaded with the main action. It wastes little space, though it redundantly starts with the function name 'GetListJournalEntries' and ends with 'Read-only' which duplicates the annotation. Still, it is efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, return values need not be described. The description covers the core purpose, pagination, and a key filter scenario. It lacks details about other filters and required parameters, but the schema provides that structure. It is adequate for a listing tool with annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (25%) with only companyId described. The description does not explain pageSize, pageToken, or most filter fields. It gives one example related to the filter object (`needs_review: true`), but the key name differs from the schema's `needsReview`, adding confusion. Overall, parameter semantics are minimally compensated by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'pages through the journal register' with filters, identifying the resource (journal entries) and operation (listing/paginating). It distinguishes from siblings like accounting_get_journal_entry_by_transaction and accounting_upsert_journal_entry by focusing on the list/register aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 vs alternatives. It does not mention any siblings or exclusions. The only hint is the review queue filter example, which is a use case, but not a comparative guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_get_list_periodsList PeriodsARead-onlyInspect
GetListPeriods pages through a company's periods, newest first. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| periods | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds 'pages through' (pagination behavior) and 'newest first' (ordering), which are useful behavioral traits not present in the schema. 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. It is concise with zero filler, earning full marks for 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?
With 4 parameters including nested filter and pagination, plus an output schema, the description is minimal. It fails to address filter semantics, pagination mechanics, or how to use pageToken/pageSize, leaving significant gaps despite the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% (only companyId has a description). The description adds minimal context for companyId ('a company's periods') but does not explain the filter, pageSize, or pageToken parameters. Low coverage requires the description to compensate, which 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?
The description clearly states it pages through a company's periods, which is a specific verb+resource, and includes ordering ('newest first') and safety ('Read-only'). This distinguishes it from single-resource tools like accounting_get_period and aligns with its listing 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 use when listing periods, but does not explicitly state when to use it over alternatives like accounting_get_period or other list tools. No exclusions or alternative guidance are provided beyond the name and basic phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_get_list_schedulesList SchedulesARead-onlyInspect
GetListSchedules pages through a company's schedules. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| schedules | No | |
| totalCount | No | |
| nextPageToken | No |
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 'Read-only' phrase is redundant. However, 'pages through' reveals pagination behavior and 'a company's schedules' scopes the operation to a single company, adding 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?
The description is brief and front-loaded with the primary action. The second sentence 'Read-only' is redundant with the annotation, but the overall size is appropriate. It loses one point for unnecessary 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?
Despite having an output schema, the description omits important operational details: the filter parameter is not mentioned, pagination semantics are only implied, and status values are undocumented. Given the low schema coverage, this description is insufficient for an agent to correctly leverage the tool's full capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple 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 companyId has a description). The description doesn't explain filter, pageSize, or pageToken. 'Pages through' hints at pagination but provides no details about parameter usage or filtering by statuses. The description fails to compensate for the low 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 action ('pages through') and the resource ('a company's schedules'), making it obvious this is a paginated listing operation. It distinguishes itself from sibling tools like accounting_get_schedule (singular), accounting_create_schedule, and accounting_cancel_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 fetching multiple schedules in a paginated fashion but does not explicitly state when to prefer it over alternatives, nor does it provide exclusions or mention the filter capability. The read-only context is clear from the annotation, but no explicit guidance on when to use this tool vs. others is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_get_periodGet PeriodARead-onlyInspect
GetPeriod returns one closed period by id. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| periodId | Yes | UUID value wrapper. | |
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| period | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false. The description adds the 'closed period' and 'by id' behavior, but does not disclose error handling, auth requirements, or the meaning of 'closed.' With strong annotation coverage, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences containing only essential information: the operation and its read-only nature. There is no filler or redundancy, and it is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id tool with an output schema and comprehensive annotations, the description is mostly complete. It identifies the resource, the closed state, and safety. Minor gap: it doesn't clarify that periodId must belong to companyId, but this is not critical for a well-named 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% since both parameters have descriptions, though those descriptions are only 'UUID value wrapper' and not truly meaningful. The tool description does not elaborate on the parameters. Per the baseline rule for high schema coverage, a 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 states a specific verb ('returns') with a clear resource ('one closed period by id'), and the qualifier 'closed' distinguishes it from the list-periods sibling. This is a precise, non-tautological 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 fetching a single closed period when its ID is known, and 'Read-only' gives a safe context. However, it does not explicitly compare against accounting_get_list_periods or mention when not to use this tool, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_get_profit_and_lossGet Profit And LossBRead-onlyInspect
GetProfitAndLoss returns the income statement for a period: revenue and expense accounts with activity, totals, and net income. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| basis | No | ||
| endDate | No | ||
| companyId | Yes | UUID value wrapper. | |
| startDate | No | ||
| currencyCode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| netIncome | No | |
| expenseRows | No | |
| revenueRows | No | |
| currencyCode | No | |
| totalRevenue | No | |
| totalExpenses | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Read-only' simply repeats this. No additional behavioral context is provided—such as what happens with invalid date ranges, whether basis affects results, or any authentication/rate-limit considerations. The description adds no new behavioral disclosure 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 two concise sentences, with the key content in the first. The second sentence 'Read-only' adds no value beyond the annotations, slightly reducing efficiency, but the overall structure is tight and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters including basis (accrual/cash) and date boundaries, the description is too thin. It doesn't clarify which parameters are needed for a meaningful report, how basis changes the output, or what the date range defaults to. An output schema exists, but parameter semantics still require explanation.
Complex tools with many parameters or behaviors need more documentation. Simple 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% (only companyId has a wrapper description). The description does not explain the meaning of basis, date range, currencyCode, or how they shape the report. 'For a period' is too vague to compensate for the low schema coverage, so the agent must guess at 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 returns an income statement for a period, listing revenue and expense accounts with activity, totals, and net income. This specific verb+resource makes it easy to distinguish from sibling tools like balance sheet or trial balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (for income statement/reporting) but does not explicitly contrast it with alternatives such as accounting_get_balance_sheet or accounting_get_trial_balance. There is no clear 'when not to use' guidance, so usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_get_scheduleGet ScheduleARead-onlyInspect
GetSchedule returns one schedule with its postings. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| scheduleId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| schedule | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes this is a safe read operation, and the description's 'Read-only' is redundant. The description does add the useful detail that the response includes postings, which goes beyond the annotation, but it does not disclose error behavior or other operational nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two short sentences, front-loaded with the primary action and outcome. Every word is purposeful, and the 'Read-only' clarification is acceptable given the annotation, though slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the presence of an output schema, and annotations declaring it a read-only operation, the description covers the essential behavior. It lacks explicit usage guidance or alternative mentions, but these are not critical for a get-by-ID tool where parameters and return structure are already defined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have 'UUID value wrapper' descriptions), so the baseline is 3. The tool description does not provide any additional meaning beyond the schema; it does not clarify how to obtain or format the IDs, leaving the agent to rely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'returns' and names the resource 'one schedule with its postings,' making the purpose clear. It also distinguishes from sibling tools like accounting_get_list_schedules by explicitly noting it returns a single schedule, not a 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 implies usage for retrieving one specific schedule but does not explicitly state when to choose this tool over alternatives like accounting_get_list_schedules. There is no mention of required identifiers, although they are in the schema, and no 'use this when...' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_get_trial_balanceGet Trial BalanceARead-onlyInspect
GetTrialBalance returns every account's debit and credit totals for a period; total debits equal total credits when the books balance. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| basis | No | ||
| endDate | No | ||
| companyId | Yes | UUID value wrapper. | |
| startDate | No | ||
| currencyCode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | |
| totalDebits | No | |
| currencyCode | No | |
| totalCredits | No |
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 read-only nature is covered. The description adds context beyond annotations by explaining the output semantics: per-account debit/credit totals and the balancing property. This is useful behavioral context about the report's nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, with two sentences covering the core function and a read-only note. However, the 'Read-only.' statement is redundant with the annotation, slightly reducing efficiency, but it doesn't detract significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values are likely covered. The description adequately covers the main purpose but omits parameter semantics and edge cases (e.g., what happens if dates are omitted, default basis). It's adequate for a report tool 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 only 20%, with only companyId having a minimal description. The description text does not explain parameters like basis, startDate, endDate, or currencyCode, nor does it clarify that 'period' relates to the date parameters. It fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns every account's debit and credit totals for a period, which is a specific verb+resource. The balancing condition ('total debits equal total credits') adds distinctive semantic detail that differentiates it from sibling reports like general ledger or balance sheet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by describing the trial balance report, but it doesn't explicitly state when to use this tool versus alternatives such as accounting_get_general_ledger or accounting_get_balance_sheet. There are no exclusions or alternative scenarios mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_list_accounting_audit_eventsList Accounting Audit EventsARead-onlyInspect
ListAccountingAuditEvents pages through the append-only accounting audit log — who changed what and when across journal entries and the chart of accounts, newest first. Filter by entity_id for one record's history. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| entityId | No | UUID value wrapper. | |
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive. The description adds valuable context by noting the log is 'append-only' and 'newest first', which explains the immutable, ordered nature beyond what annotations provide. 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 sentences deliver purpose, scope, ordering, filtering, and read-only status with zero filler. The description is front-loaded with the core 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?
For a read-only, paginated list tool with an output schema and annotations, the description covers the essential behavior: purpose, scope, ordering, and filter. It does not explain companyId semantics or pagination token details, but these are partially inferable from the schema and required context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains entityId as a filter for one record's history and implies pageSize/pageToken via 'pages through'. However, companyId, a required parameter, is only described as a 'UUID value wrapper' in the schema, with no additional meaning in the description. Coverage is 50%, so partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 tool as paginating through the append-only accounting audit log, specifying the exact scope (journal entries and chart of accounts) and ordering (newest first). It distinguishes from siblings like cap_table_list_cap_table_audit_events by explicitly stating 'accounting audit log'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: use when you need to see who changed what and when in accounting, and use entity_id for a single record's history. It lacks explicit exclusions or alternative tool references, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_preview_closePreview CloseARead-onlyInspect
PreviewClose computes the per-currency revenue/expense totals and the net income a close would roll, without writing anything. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| basis | No | ||
| endDate | No | ||
| companyId | Yes | UUID value wrapper. | |
| startDate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| previews | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the behavioral detail that it computes per-currency totals and net income, but does not disclose prerequisites, rate limits, or other side effects. This modest addition beyond annotations warrants a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, stating the core computation first. However, 'without writing anything' and 'Read-only' are redundant, making the second sentence slightly repetitive. It is still efficient 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?
While the output schema exists, the tool description leaves parameter semantics unexplained, particularly startDate, endDate, and basis, which are essential for correct invocation. The high-level overview does not compensate for the low schema coverage, making the tool contextually 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 only 25%, with companyId receiving a minimal 'UUID value wrapper' description and basis, startDate, endDate lacking any descriptions. The tool description does not explain the meaning of the date range or basis enum, leaving the agent without enough information to populate these parameters correctly. It fails to compensate for the sparse 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 computes per-currency revenue/expense totals and net income a close would roll, using a specific verb and resource scope. It explicitly distinguishes itself from sibling tools like accounting_close_period by stating 'without writing anything' and 'Read-only', clarifying this is a non-mutating preview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies the use case: previewing the financial impact of a close before executing it. While it does not explicitly name alternatives, 'without writing anything' contrasts with actual close tools, providing clear context. No explicit when-not-to-use scenarios are given, but the intent is apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_preview_schedulePreview ScheduleARead-onlyInspect
PreviewSchedule computes the straight-line per-period split for the given amount and period count without persisting anything. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| startDate | No | ||
| periodCount | No | ||
| totalAmount | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| postings | No |
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 description's 'without persisting anything' and 'Read-only' largely duplicate that safety profile. It adds the straight-line calculation method but does not disclose additional behavioral traits such as failure modes, auth requirements, or precisely how startDate affects the result.
Agents need to know what a tool does to the world before calling 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 core action. However, it redundantly states 'without persisting anything' and 'Read-only,' which are essentially the same point, slightly undermining efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter read-only tool with an output schema, the description covers the basic purpose and safety profile. But it lacks explicit usage guidance and fails to explain startDate, making it only minimally complete for selecting and invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for parameter meaning. It mentions 'amount and period count' but omits startDate entirely, leaving its role in the calculation unclear. It also does not clarify formats beyond the schema patterns or whether all parameters are required despite schema stating none are 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 the tool computes a straight-line per-period split for a given amount and period count, which is a specific verb and resource. It also explicitly notes that nothing is persisted, distinguishing it from schedule creation and retrieval tools like accounting_create_schedule and accounting_get_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 preview use case by stating 'without persisting anything,' which contrasts with creation tools. However, it does not explicitly name alternatives or state when to use this tool versus others. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_propose_schedulesPropose SchedulesARead-onlyInspect
Scan a company's recent posted transactions and suggest accrual schedules (e.g. amortize a large annual prepaid over 12 months). Returns proposals only — nothing is created until you confirm one by calling accounting_create_schedule with the proposal's fields. Each proposal carries the suggested kind, total amount, start date, period count, debit/credit GL accounts, the source transaction, and a rationale.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| proposals | No |
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. The description reinforces this by stating 'Returns proposals only — nothing is created.' It also adds context about the input source (recent posted transactions) and the contents of each proposal, exceeding what annotations alone 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?
Three focused sentences. The first sentence states the core action, the second clarifies the workflow and non-mutating nature, and the third lists proposal contents. No redundant wording or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (so return values are structured separately), the description fully covers purpose, workflow, and relationship to sibling tools. It tells the agent exactly what to do with the result, making invocation and follow-up clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only companyId with a minimal 'UUID value wrapper' description. The tool description implies companyId selects the company whose transactions are scanned, adding partial meaning beyond the schema. Since schema coverage is 100% but thin, this is a baseline 3 with some added context from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scans recent posted transactions and suggests accrual schedules. It distinguishes itself from accounting_create_schedule by explicitly noting that nothing is created until confirmed, so the agent knows this is a proposal-generation tool, not a mutation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: use this to get proposals, then call accounting_create_schedule to confirm. The example (amortize a prepaid) clarifies typical use. This directly tells the agent when to use this tool versus the create alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_reopen_periodReopen PeriodADestructiveInspect
Reopen a closed accounting period: void its closing entry(ies) and lift the write lock so entries dated inside the window can be edited and the period re-closed. Audit-logged.
| Name | Required | Description | Default |
|---|---|---|---|
| periodId | Yes | UUID value wrapper. | |
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful detail beyond the destructiveHint annotation: it voids closing entries, lifts the write lock, allows editing, permits re-closing, and is audit-logged. This explains the consequences of the destructive action, increasing transparency. 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, well-structured sentence that front-loads the core purpose ('Reopen a closed accounting period') and then provides essential details. Every word earns its place, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with two parameters and an output schema, the description provides sufficient context: the scope, the side effects (voiding entries, lifting lock), and the audit trail. It does not mention prerequisites like period must be closed, but that is implied. Overall, it is fairly complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters (companyId and periodId) with full coverage, so the baseline is 3. The description does not add any additional semantics beyond what the schema provides, so it stays at baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to reopen a closed accounting period by voiding its closing entries and lifting the write lock. This specific verb-resource combination distinguishes it from siblings like accounting_close_period (the inverse operation) and read-only period queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when a closed accounting period needs to be reopened so entries inside its date window can be edited. It implies the alternative of leaving the period closed and contrasts with close_period, though it does not explicitly mention when NOT to use it or list alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
accounting_upsert_journal_entryUpsert Journal EntryAIdempotentInspect
Create or replace a double-entry journal entry (manual adjustment or per-transaction override). Lines must balance: total debits == total credits, 2-64 lines, positive decimal amounts with the sign carried by side. Pick gl_account_id values from accounting_get_chart_of_accounts (postable accounts only). An entry with transaction_id replaces that transaction's derived entry and is preserved across re-enrichment. The entry is recorded as source=user and status=POSTED regardless of what is supplied, and every save is written to the audit log.
| Name | Required | Description | Default |
|---|---|---|---|
| entry | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| skipped | No | |
| journalEntryId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (idempotentHint, destructiveHint), the description discloses critical behavior: lines must balance, source is forced to user and status to POSTED, every save is audit-logged, and entries with transaction_id replace derived entries and survive re-enrichment. These are valuable contextual details not present in annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with purpose, then constraints, then behavioral traits. Every sentence provides necessary information with zero 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 complex nested-parameter tool, the description covers the key aspects: balance rules, line limits, amount formatting, account selection, transaction override semantics, and forced fields. An output schema is present, so return values need no explanation. The description is sufficiently 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 0%, so the description carries a heavy burden. It adds significant meaning to the 'entry' object: constraints on lines (2-64, debits == credits), amount format (positive decimal with side carrying sign), glAccountId selection from chart of accounts, and transactionId behavior. Some fields like entryDate, memo, currencyCode are not elaborated, but the most critical semantics 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 specifies a clear verb and resource: 'Create or replace a double-entry journal entry', with explicit scope ('manual adjustment or per-transaction override'). It distinguishes this tool from siblings like accounting_delete_journal_entry and accounting_get_journal_entry_by_transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context by stating when to use the tool (manual adjustment or per-transaction override) and even points to accounting_get_chart_of_accounts for selecting gl_account_id. However, it does not explicitly mention when not to use it or name alternative tools for similar operations, just missing that explicit exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ads_insight_summarize_campaign_windowSummarize Campaign WindowCInspect
SummarizeCampaignWindow summarises one charge against the campaigns in its billing window. Results are cached per company + account + window + charge, so repeated panel opens do not re-run the agent.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | ||
| accountId | No | ||
| companyId | No | ||
| periodEnd | No | ||
| periodStart | No | ||
| chargeAmount | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| cached | No | |
| summary | No | |
| highlights | No | |
| generatedAt | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations limited to openWorldHint=false and destructiveHint=false, the description adds value by disclosing caching behavior ('Results are cached per company + account + window + charge, so repeated panel opens do not re-run the agent'). However, it does not explicitly state whether the operation is read-only or what side effects, if any, exist beyond caching.
Agents need to know what a tool does to the world before calling 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 and reasonably concise. The first sentence conveys the core action, and the second adds useful caching context without excessive verbosity. Minor awkward phrasing in 'summarises one charge against the campaigns in its billing window' prevents 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?
With 6 optional parameters, an output schema, and limited annotations, the description only explains the primary purpose and caching. Lacking usage context, parameter details, and distinct behavior against siblings, it is not complete enough for an agent to confidently invoke the tool without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameter semantics. It indirectly references 'company + account + window + charge' which maps to companyId, accountId, periodStart/periodEnd, and chargeAmount, but does not detail formats or relationships. Given 6 parameters, the description must compensate more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 'summarises one charge against the campaigns in its billing window', which is a specific verb and resource. However, it does not explicitly distinguish itself from sibling tools like provider-specific campaign window getters, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It mentions 'panel opens' but does not explain conditions for invocation or exclusions, leaving the agent without direction on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approval_session_get_approval_session_statusGet Approval Session StatusARead-onlyInspect
GetApprovalSessionStatus is a lightweight poll (status only) for the gated action to check whether it can proceed
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| updatedAt | No |
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 agent knows it is a safe read operation. The description adds 'lightweight' and 'status only' which reinforce the non-mutating, poll-like behavior, but it does not disclose any additional behavioral details such as rate limits, authentication requirements, or what happens when the action cannot proceed. Still, given the annotation coverage, the description adds some value beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the tool's name (GetApprovalSessionStatus) and clearly communicates its purpose in a compact form. Every word adds value: 'lightweight,' 'poll,' 'status only,' and 'gated action' all contribute to understanding the tool's function without wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one simple parameter), the presence of a read-only annotation, and an output schema (as indicated by hasOutputSchema=true), the description sufficiently covers the essential context. It tells the agent exactly what the tool checks and its lightweight nature, leaving no critical gaps for basic usage. The output schema presumably details the return values, so the description does not need to explain 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?
The input schema has one parameter, sessionId, with a description ('UUID value wrapper') that fully covers its meaning (100% schema description coverage). The tool description does not mention the parameter, so it adds no additional semantic value beyond the schema. This aligns with the baseline score of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 ('poll') and resource ('approval session status'), and defines its scope as a lightweight, status-only check for whether a gated action can proceed. It effectively distinguishes itself by focusing on the approval session domain and its polling nature, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when you need to poll the status of a gated action to see if it can proceed. It provides clear context by labeling it a 'lightweight poll,' but it does not explicitly mention alternatives or when not to use it, though no direct sibling tool exists for approval sessions, making this less critical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_clear_cap_table_stakeholdersClear Cap Table StakeholdersAInspect
ClearCapTableStakeholders deletes every stakeholder of a company in a single DB-level operation. Used by the "replace cap table" import flow.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deletedCount | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly states the operation is destructive ('deletes every stakeholder'), but the annotations declare destructiveHint false. This is a direct contradiction, making the behavioral transparency misleading. The description adds the important detail of 'single DB-level operation' but the annotation conflict overrides that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each adding value: the first defines the exact action and scope, the second explains its intended usage. 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?
The description covers the essential aspects: what it does, scope, and use case. It does not explain irreversibility, permissions, or downstream effects, but given the simple single-parameter signature and presence of an output schema, this is mostly adequate. The annotation contradiction reduces trust but not completeness per se.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with companyId documented as 'UUID value wrapper.' The description adds no additional parameter semantics beyond what the schema provides. Baseline of 3 is appropriate because the schema fully covers the single 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 uses a specific verb 'deletes' and clearly identifies the resource 'every stakeholder of a company'. It distinguishes itself from sibling tools like cap_table_delete_cap_table_stakeholder by emphasizing the bulk, all-stakeholders scope and single DB-level operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear use case: 'Used by the "replace cap table" import flow.' This gives context for when to invoke this tool versus the singular delete alternative. However, it does not explicitly list exclusions or alternative tools for partial deletes, 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.
cap_table_close_cap_table_roundClose Cap Table RoundADestructiveInspect
CloseCapTableRound PERMANENTLY closes the round: runs the calc engine, persists the SAFE conversions + ownership snapshots, and flips the round to CLOSED. This is the action for "close the round", "make it permanent", or "finalize the round" — it CANNOT be undone and writes the cap-table of record, so confirm with the user first. To only estimate the outcome without closing, use PreviewCloseCapTableRound.
| Name | Required | Description | Default |
|---|---|---|---|
| roundId | Yes | UUID value wrapper. | |
| companyId | Yes | UUID value wrapper. | |
| newMoneyRaise | No | ||
| preMoneyValuation | No | ||
| carryForwardUnwired | No | ||
| targetOptionPoolPct | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| round | No | |
| result | No | |
| snapshots | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds extensive context: it 'CANNOT be undone', 'writes the cap-table of record', 'persists the SAFE conversions + ownership snapshots', and advises to 'confirm with the user first'. This goes well beyond the annotation, disclosing the irreversible and consequential nature of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the tool's core action, and every sentence adds essential information: what it does, how to interpret user intent, and the warning about irreversibility. No redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, irreversible mutation tool, the description gives sufficient context: the exact workflow, the permanent impact, the user-confirmation requirement, and the alternative preview option. Since an output schema exists, return values don't need elaboration. This is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (just 'UUID value wrapper' for companyId and roundId). The description does not explain any parameter meanings, such as newMoneyRaise, preMoneyValuation, carryForwardUnwired, or targetOptionPoolPct. While the parameter names are somewhat self-explanatory, the description fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'CloseCapTableRound PERMANENTLY closes the round' and outlines the exact actions (runs the calc engine, persists SAFE conversions + ownership snapshots, flips the round to CLOSED). It distinguishes itself from the sibling PreviewCloseCapTableRound by explicitly noting the difference between closing and estimating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 defines when to use this tool: 'This is the action for "close the round", "make it permanent", or "finalize the round"'. It also provides a clear exclusion and alternative: 'To only estimate the outcome without closing, use PreviewCloseCapTableRound'. This is strong usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_create_cap_table_agreementCreate Cap Table AgreementBInspect
CreateCapTableAgreement creates a draft non-SAFE agreement.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | No | ||
| roundId | No | UUID value wrapper. | |
| companyId | Yes | UUID value wrapper. | |
| granteeName | No | ||
| sourceS3Uri | No | ||
| progressTotal | No | ||
| stakeholderId | No | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| agreementId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations do not include a readOnlyHint, so the description must clarify it is a mutation; it does by saying 'creates.' However, it only adds 'draft' as a behavioral trait and does not disclose permissions, side effects, or what happens after creation. This sparse disclosure falls short for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core action and a key qualifier without any waste. It is appropriately concise for a simple purpose, though it lacks depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and some annotations, the description is insufficient for a tool with 8 parameters, including nested objects. It does not explain required fields, the meaning of 'draft,' or why the type enum includes SAFE if the tool is non-SAFE. The agent would need external knowledge to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, with most parameters lacking descriptions. The tool description mentions no parameters or how they relate to the non-SAFE scope, so it does not compensate for the schema gaps. For instance, the type enum includes SAFE despite the description saying non-SAFE, but no parameter guidance is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 draft cap table agreement and specifies 'non-SAFE,' which distinguishes it from SAFE-related tools. Although the name already indicates the resource, the description adds the scope qualifier and draft status, 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 implies use when creating a non-SAFE agreement but provides no explicit guidance on alternatives or when not to use. It does not mention that SAFE agreements should be handled by other tools or any prerequisites, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_create_cap_table_roundCreate Cap Table RoundDInspect
| Name | Required | Description | Default |
|---|---|---|---|
| round | Yes | ||
| pastRound | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| roundId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_create_cap_table_stakeholderCreate Cap Table StakeholderAInspect
Adds a stakeholder IDENTITY ONLY (name, type, email, metadata). Does NOT create any holding/security and will NOT appear in the investor pipeline. For an investor contributing capital via SAFE or priced shares, use RecordCapTableInvestment instead (it creates the party and its holding together).
| Name | Required | Description | Default |
|---|---|---|---|
| stakeholder | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| stakeholderId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (openWorldHint=false, destructiveHint=false) are present, but the description adds meaningful behavioral context: it clarifies that only identity is created, no holdings/securities are created, and the stakeholder will not appear in the investor pipeline. This goes beyond what the annotations convey and helps the agent predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the key distinction ('IDENTITY ONLY'), and every sentence earns its place. It is concise, clear, and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a single object parameter with many nested fields), the description adequately explains the tool's scope and pitfalls, and an output schema exists to cover return values. It could mention required fields or enum constraints, but those are visible in the input schema, so the description is sufficiently complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the nested fields with descriptions (e.g., name, type, email), so the description need not repeat them. However, the description mentions a subset of fields ('name, type, email, metadata') without elaborating on the full object structure, and schema coverage is listed as 0% for the top-level parameter, so it adds only modest semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Adds') and explicitly scopes the resource as 'stakeholder IDENTITY ONLY', which clearly distinguishes it from related tools by stating it does NOT create any holding/security or appear in the investor pipeline. This directly addresses sibling differentiation (e.g., RecordCapTableInvestment).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool versus the alternative: 'For an investor contributing capital via SAFE or priced shares, use RecordCapTableInvestment instead'. It also states what this tool will not do, giving clear exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_delete_cap_table_agreementDelete Cap Table AgreementCDestructiveInspect
DeleteCapTableAgreement removes an agreement.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| agreementId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, and the description simply says 'removes', adding no new behavioral context. It does not disclose permanence, cascading effects, or any special permissions, which are valuable for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (six words), which is concise, but the content is largely a restatement of the tool name and adds little informational value. It is not 'appropriately sized' because it under-specifies the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive delete operation, the description is severely lacking in contextual detail. It does not explain what 'removing an agreement' entails (e.g., irreversibility, associated records, permission requirements), and the available annotations do not compensate for this 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% (though the 'UUID value wrapper' descriptions are minimal), so baseline is 3. The tool description adds no parameter meaning beyond what the schema provides, but the parameter names and types are fairly self-explanatory given the tool name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'DeleteCapTableAgreement removes an agreement' is essentially a tautology of the tool name and title. It states the action verb 'removes' and resource 'agreement' but adds no specificity or differentiation from sibling tools like deleting a round or stakeholder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. It does not mention prerequisites, side effects, or contrast with related cap_table operations, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_delete_cap_table_roundDelete Cap Table RoundADestructiveInspect
DeleteCapTableRound permanently removes an unpriced SAFE round (open or light-closed) plus its round-scoped securities/agreements/snapshots. Priced / engine-closed rounds are rejected (FailedPrecondition).
| Name | Required | Description | Default |
|---|---|---|---|
| roundId | Yes | UUID value wrapper. | |
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the destructiveHint annotation by specifying the cascading effect ('plus its round-scoped securities/agreements/snapshots') and the rejection condition with error type ('FailedPrecondition'). This discloses important behavioral traits 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?
The description is two concise sentences that front-load the action and scope, with no wasted words. It efficiently covers purpose, applicability, and limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 deletion tool with an output schema and two simple parameters, the description covers the essential context: what is deleted, what is rejected, and the permanent nature. It does not need to explain return values because the output schema exists, and the annotations cover safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters as 'UUID value wrapper' with 100% coverage, so the description adds minimal parameter-specific meaning. It implicitly connects roundId to the SAFE round but does not elaborate beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'permanently removes an unpriced SAFE round (open or light-closed) plus its round-scoped securities/agreements/snapshots.' This specifies the exact resource and action, and distinguishes it from sibling tools like close_cap_table_round or delete_cap_table_agreement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 conditions: it is for unpriced SAFE rounds in open or light-closed states, and 'Priced / engine-closed rounds are rejected (FailedPrecondition).' This clearly tells the agent when to use the tool and when not, though it 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.
cap_table_delete_cap_table_securityDelete Cap Table SecurityBDestructiveInspect
DeleteCapTableSecurity removes one holding.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| securityId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds minor value by specifying it removes 'one holding', implying a single entity deletion, but it does not disclose irreversibility, side effects on related data, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence, immediately front-loaded with the action ('removes'). It wastes no words and is easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and annotations, the description is very minimal for a destructive operation. It lacks contextual information such as what happens to associated holdings, whether deletion is permanent, or any preconditions. The complexity is low, but the absence of behavioral context makes it incomplete for safe 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% (both parameters have descriptions like 'UUID value wrapper'), so the schema carries the parameter meaning. The description adds no additional semantics beyond what the schema provides, keeping the baseline score at 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('removes') and the specific resource ('one holding'), which is more precise than the title. It distinguishes this from sibling delete tools (e.g., delete_cap_table_agreement, delete_cap_table_round) by focusing on the security/holding entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, nor any prerequisites or exclusions. Unlike examples like 'use search_calls_extensive instead', there is no mention of alternative tools or specific conditions for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_delete_cap_table_stakeholderDelete Cap Table StakeholderADestructiveInspect
DeleteCapTableStakeholder removes one stakeholder from a cap table.
| Name | Required | Description | Default |
|---|---|---|---|
| stakeholderId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the destructive nature is known. The description adds only the direct action ('removes one stakeholder') without further context such as irreversibility, cascading effects on associated records, or permission requirements. Given the annotation coverage, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling 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 directly states the purpose without unnecessary elaboration. Every word contributes to clarity, and the format is easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one fully documented parameter, an output schema, and destructive annotations, the description is sufficiently complete. It covers the core action, while annotations convey the destructive nature. A minor gap is the lack of explicit mention of permanence or side effects, but these are implied by the annotations and simple scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the sole parameter stakeholderId documented as 'UUID value wrapper'. The description adds no additional meaning to the parameter, so the baseline of 3 applies. The nested object structure is already explained 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 it removes one stakeholder from a cap table, using the specific verb 'removes' and identifying the exact resource. This distinguishes it from sibling tools like cap_table_clear_cap_table_stakeholders (which removes all) and delete operations for other entities (agreements, rounds, securities).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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, such as cap_table_clear_cap_table_stakeholders for bulk removal or update for modifying instead of deleting. No context is given about prerequisites or situations where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_download_cap_table_safesDownload Cap Table SafesARead-onlyInspect
DownloadCapTableSafes presigns multiple SAFE agreement PDFs in one call.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| agreementIds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| files | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clarifies that 'download' actually means 'presigns', which is an important behavioral nuance beyond annotations. Annotations already mark it as read-only and non-destructive, and the description adds the batch-presigning behavior without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the key action and resource. No wasted words or redundant 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?
The tool is simple, and an output schema exists, so return values are documented. However, the description does not clarify behavior when agreementIds is omitted, error scenarios, or whether it presigns all SAFEs by default. This leaves minor gaps 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?
Schema descriptions are minimal ('UUID value wrapper') with only 50% coverage. The description does not explain companyId or the optionality of agreementIds; it only implies agreementIds maps to the multiple PDFs. This provides incomplete 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 uses a specific verb 'presigns' and resource 'multiple SAFE agreement PDFs', clearly distinguishing this batch tool from singular alternatives like cap_table_get_cap_table_agreement_pdf_url. It precisely conveys the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in one call' implies a batching use case, but the description does not explicitly state when to use this tool over alternatives or when not to use it. There are no exclusions or alternative tool references, leaving the context only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_extract_wire_payment_proofExtract Wire Payment ProofAInspect
Runs vision OCR on an already-uploaded wire payment proof (wire confirmation, bank statement, or transfer receipt — NOT an invoice) for a security and returns the extracted fields plus a verification verdict (verified | needs_review | mismatch). Nothing is persisted. Flow: call GetOcrUploadURL with kind=WIRE_PROOF, PUT the file bytes to the returned upload_url, then call this with the returned source_s3_uri. Only a 'verified' verdict can back a wire in RecordCapTableWire.
| Name | Required | Description | Default |
|---|---|---|---|
| agentCode | No | ||
| companyId | Yes | UUID value wrapper. | |
| securityId | Yes | UUID value wrapper. | |
| sourceS3Uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| proof | No | |
| warnings | No | |
| sourceS3Uri | No | |
| verification | No | |
| ocrConfidence | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds important behavioral details beyond annotations: nothing is persisted, requires prior upload, verdict values, and constraint for RecordCapTableWire. Annotations are minimal, so description carries the burden well and does not contradict 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 concise sentences: purpose, flow, constraint. Every sentence adds value with zero 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?
Covers return verdict, flow, persistence, and constraint. Output schema fills in field details. Missing explanation of optional agentCode, but overall complete for a complex 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 50%; description explains sourceS3Uri origin and securityId context via 'for a security', but agentCode remains unexplained. Adds some meaning beyond schema but not full compensation for all 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 states a specific verb (runs vision OCR) and resource (wire payment proof), and explicitly differentiates from invoices and ties to RecordCapTableWire. It clearly distinguishes from other cap_table 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 flow (GetOcrUploadURL → PUT → call with source_s3_uri) and context (only 'verified' can back a wire). Does not name alternative tools but gives clear when-to-use and exclusion (NOT an invoice).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_generate_cap_table_agreement_pdfGenerate Cap Table Agreement PDFAInspect
GenerateCapTableAgreementPdf renders the PDF for one employee equity-grant agreement (option/rsu/rsa/fast) and stores it. Returns the S3 key. The presigned download URL is fetched via GetCapTableAgreementPdfUrl.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| agreementId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| s3Key | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since annotations lack a readOnlyHint, the description appropriately discloses the side effect of storing the PDF. It also communicates the return value (S3 key) and the follow-up URL retrieval step, adding behavioral context beyond the sparse 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 with no filler. It front-loads the primary action and then provides essential follow-up information about the S3 key and URL retrieval, making every sentence valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required params), the presence of an output schema, and the clear coverage of purpose, side effect, and workflow, the description is largely complete. It doesn't discuss edge cases or prerequisites, but for this tool it provides sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documentation covers 100% of the parameters with 'UUID value wrapper' descriptions, so the baseline is 3. The description adds no additional parameter-specific meaning; it only implies agreementId through 'one employee equity-grant agreement', but this is already evident.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('renders') and resource ('PDF for one employee equity-grant agreement'), lists the grant types (option/rsu/rsa/fast), and distinguishes itself by returning the S3 key. This makes it clearly distinct from sibling tools like cap_table_generate_cap_table_summary_pdf.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context on when to use the tool: to generate and store an agreement PDF, then fetch the presigned URL via GetCapTableAgreementPdfUrl. However, it does not explicitly state exclusions or alternative tools for other PDF types, so it stops short of full usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_generate_cap_table_docsGenerate Cap Table DocsCInspect
GenerateCapTableDocs kicks off the async generation pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| stakeholderIds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| queuedCount | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals the async nature of the operation ('async generation pipeline'), which is a behavioral trait not captured in the annotations (openWorldHint=false, destructiveHint=false). However, it does not disclose other important behaviors such as required permissions, whether existing documents are replaced, or how results are delivered. With minimal annotations, the description only partially fulfills the transparency 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 short and front-loaded, but the sentence includes the redundant term 'GenerateCapTableDocs' which repeats the tool name. While concise, it sacrifices substance for brevity, resulting in a marginally acceptable one-liner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 is incomplete for a tool with two parameters, async behavior, and multiple sibling tools. It does not explain what 'cap table docs' are, what triggers the pipeline, or how the output is returned. The description leaves too much ambiguity for the agent to confidently invoke and interpret the result.
Complex tools with many parameters or behaviors need more documentation. 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 descriptions ('UUID value wrapper') are unhelpful and schema coverage is at 50%. The tool description does not explain the meaning or purpose of companyId or stakeholderIds, nor does it describe how they affect the generation. This leaves the agent with no semantic understanding of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('kicks off the async generation pipeline') and the resource ('Cap Table Docs') but is vague about what specific documents are generated or how this differs from sibling tools like cap_table_generate_cap_table_agreement_pdf or cap_table_generate_cap_table_summary_pdf. It is more than a pure tautology but lacks clear 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 provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, expected use cases, or exclusions. The presence of many similar generate/download tools in the sibling list makes this lack of guidance particularly problematic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_generate_cap_table_summary_pdfGenerate Cap Table Summary PDFAInspect
GenerateCapTableSummaryPdf renders the cap-table summary to a branded PDF on the backend document engine (Gotenberg) and returns the bytes (#364 — moves PDF generation out of the browser). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=false, openWorldHint=false), the description adds key behavioral details: it renders on a backend document engine (Gotenberg), returns bytes, and explicitly states 'Read-only'. This provides useful context about safety and execution environment, though it does not discuss error behavior or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the core action, and includes only essential details (backend engine, return type, read-only, ticket reference). Every part earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema and annotations, the description covers the action, execution location, output type, and safety profile. It is complete for an agent to select and invoke the tool correctly, without needing to explain return structure since the output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of the parameter with a description ('UUID value wrapper'), so the description does not need to add parameter detail. It adds no further semantics, which is acceptable given the high schema coverage, but does not go beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('renders') and identifies the exact resource ('cap-table summary to a branded PDF'), while also noting the backend engine (Gotenberg) and return type (bytes). This clearly distinguishes it from siblings like cap_table_generate_cap_table_agreement_pdf and cap_table_get_cap_table_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating a PDF of the cap-table summary and mentions moving PDF generation out of the browser, but it does not explicitly state when to prefer this tool over alternatives or provide exclusions. No alternative tools are named as contrasts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_cap_table_agreementGet Cap Table AgreementDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| agreement | No | |
| signatureBlock | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_cap_table_agreement_pdf_urlGet Cap Table Agreement PDF URLARead-onlyInspect
GetCapTableAgreementPdfUrl returns a short-lived signed S3 URL for the rendered SAFE agreement PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| attachment | No | ||
| agreementId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expiresAt | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the important behavioral detail that the URL is 'short-lived' and 'signed', which goes beyond the readOnlyHint and destructiveHint annotations. It also indicates the URL points to an S3 object. However, it does not mention failure modes (e.g., if the PDF has not been rendered) or the exact lifetime, but annotations already cover the 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 a single sentence that immediately states the action and the result. It is front-loaded with 'GetCapTableAgreementPdfUrl' and contains no redundant words or filler, 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?
The tool is a read-only getter with an output schema, so the description covers the core return value. However, it lacks guidance on the prerequisite that the PDF must already be rendered, and it fails to explain the purpose of the 'attachment' parameter. These gaps make it incomplete for a tool with two parameters and a non-trivial 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?
The description does not elaborate on the parameters. Schema coverage is only 50% (agreementId has a description, attachment does not), and the description adds nothing about what 'attachment' means or how parameters should be used. The agent would need to infer from the schema alone, which is insufficient for the optional attachment 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 uses the specific verb 'returns' and clearly names the resource as 'a short-lived signed S3 URL for the rendered SAFE agreement PDF'. This makes the tool's purpose unambiguous and distinguishes it from sibling tools like cap_table_generate_cap_table_agreement_pdf (which generates the PDF) and cap_table_get_cap_table_agreement (which likely retrieves the agreement metadata).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'rendered SAFE agreement PDF' implies the PDF must already exist, but the description does not explicitly say when to use this tool versus alternatives (e.g., generate_pdf or download_safes). There are no explicit exclusions or conditions, leaving usage to be inferred from the tool name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_cap_table_equity_plansGet Cap Table Equity PlansARead-onlyIdempotentInspect
Returns a company's equity holdings grouped the way a founder thinks about them: founders, advisors, employees (option grants), and investors. Read-only. Founder, advisor and employee entries carry vesting progress resolved as of now — vested percentage, vested share or option count, and whether the cliff has passed. Investor entries carry the committed amount, valuation cap, discount and pipeline stage. Use this to answer "who holds what" or "how much of X's grant has vested" without adding up securities by hand.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| advisors | No | |
| founders | No | |
| employees | No | |
| investors | No |
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 meaningful behavioral context beyond annotations: vesting progress is 'resolved as of now,' and it specifies the exact data carried for founder/advisor/employee vs. investor entries. This gives the agent a precise expectation of the resolved output without contradicting 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 main purpose, then details and a use-case example. Every sentence adds value with no filler or repetition of annotations. It is information-dense and perfectly sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich output schema and strong annotations, the description covers all essential context: what data is returned, how it is grouped, the temporal resolution of vesting, and typical use cases. No critical gaps remain for an agent to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter companyId ('UUID value wrapper'), so the schema fully documents it. The description does not mention parameters, but since the schema is exhaustive and the parameter is straightforward, 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 'returns a company's equity holdings grouped the way a founder thinks about them: founders, advisors, employees (option grants), and investors.' This is a specific verb and resource, and it distinguishes the tool from sibling tools like cap_table_get_cap_table_overview or cap_table_get_list_cap_table_securities by the conceptual grouping and the included fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says to 'Use this to answer "who holds what" or "how much of X's grant has vested" without adding up securities by hand,' providing clear use cases. It implies this is the go-to for aggregated equity views, but it does not explicitly name alternative tools 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.
cap_table_get_cap_table_investor_accessGet Cap Table Investor AccessARead-onlyInspect
GetCapTableInvestorAccess lists every investor stakeholder with its current cap-table visibility level (read directly from the stakeholder row; a new investor defaults to NONE). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| investors | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds useful context: 'read directly from the stakeholder row' indicates no derived computation, and 'a new investor defaults to NONE' discloses default visibility behavior. This goes beyond the annotation 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 concise, with two sentences that each add value: the first states the core purpose and the second provides behavior context (direct read, default NONE). No unnecessary repetition beyond the redundant 'Read-only' (already in annotations), which is minimal and not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 list tool with one parameter, good annotations, and an output schema, the description is largely complete. It explains the scope (every investor), the data source (stakeholder row), and the default visibility (NONE). It could mention the possible visibility levels, but these are likely in the output schema, so the lack is 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?
Schema coverage is 100% since the only parameter companyId has a description ('UUID value wrapper'), so the baseline is 3. The description does not add further param-specific semantics, but the parameter is straightforward and the tool name implies the company 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 tool 'lists every investor stakeholder with its current cap-table visibility level', specifying the verb (lists), resource (investor stakeholders), and the key attribute (visibility level). This distinguishes it from sibling tools like cap_table_get_cap_table_stakeholder (single stakeholder) and cap_table_get_list_cap_table_stakeholders (generic 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 implies the tool should be used when you need investor access levels for all investors, but it does not explicitly state when to use it versus alternatives or provide exclusions. There is no mention of alternative tools for filtered or individual stakeholder access, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_cap_table_overviewGet Cap Table OverviewDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mode | No | |
| latestRoundId | No | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_cap_table_roundGet Cap Table RoundDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| round | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_cap_table_round_summariesGet Cap Table Round SummariesARead-onlyIdempotentInspect
Returns, for every funding round that has investors attached, how much capital sits at each stage of the pipeline (committed, signed, wired), the total raised, and how many investors are in the round. Read-only. Use this to answer "how is the round going" or "how much have we actually collected" without adding up individual investors by hand — the stage buckets are exclusive, so each investor's capital appears in exactly one of them and raised is their sum. Wired is money in the bank; committed and signed are promised but not yet received.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| summaries | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description discloses important semantics: the stage buckets are exclusive, raised is the sum of the buckets, and it clarifies the meanings of committed/signed/wired. This is valuable behavioral insight not available from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, with the first sentence stating what is returned and the second providing usage guidance and key semantic clarifications. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) and the presence of an output schema, the description fully covers the return value semantics, usage context, and important caveats about how the round stages are aggregated. It is complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers the single companyId parameter with a description ('UUID value wrapper') at 100% coverage. The tool description adds no additional parameter-specific meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Returns') and explicitly names the resource (funding round summaries) and the exact fields returned (capital per pipeline stage, total raised, investor count). It clearly distinguishes itself from sibling tools like get_cap_table_round by scoping to all rounds with investors attached.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 use cases: answering 'how is the round going' or 'how much have we actually collected' without manual summation. This gives good context, but it does not explicitly mention alternatives or when not to use the tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_cap_table_securityGet Cap Table SecurityARead-onlyInspect
GetCapTableSecurity returns one holding by id. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| securityId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| security | No |
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 description's 'Read-only' is redundant. It adds no unique behavioral details such as error handling, permissions, or rate limits. It does not contradict annotations, but with annotations present, a 3 is appropriate because the description adds minimal 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?
The description is two short sentences, front-loaded with the core action, and contains no filler or redundant information. It earns its place efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter, an output schema, and annotations covering read-only behavior. The description covers its main purpose and scope. It does not explain error conditions, but that is not required given the output schema and simple get-by-id design. It is complete enough for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents securityId as a UUID value wrapper with 100% coverage. The description's 'by id' clarifies that this parameter is the identifier used to look up the holding, providing marginal semantic value beyond the schema by explaining the parameter's role in the operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 operation: 'returns one holding by id,' specifying a single resource and lookup method. This distinguishes it from sibling list endpoints like cap_table_get_list_cap_table_securities. The title aligns with the tool name and adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'by id' implies this is for retrieving a single security when the ID is known, providing clear context for when to use the tool. It does not explicitly name alternatives like the list tool, but the context signals sibling list endpoints, so it gives clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_cap_table_stakeholderGet Cap Table StakeholderARead-onlyInspect
GetCapTableStakeholder returns one stakeholder by id. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| stakeholderId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| stakeholder | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Read-only' merely repeats this. 'By id' restates the schema parameter without adding new behavioral traits such as not-found handling, permissions, or error conditions. The description adds minimal 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?
The description is two short sentences with no redundant words. It efficiently communicates the purpose and read-only nature of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with one parameter and an output schema, the description is nearly complete. The purpose and safety are stated, and the schema covers input. A brief mention of list alternatives would improve completeness, but the current description suffices for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the stakeholderId parameter has a 'UUID value wrapper' description), so baseline is 3. The description clarifies that the ID is used to select the stakeholder, adding slight context, but it does not provide additional format or usage details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns one stakeholder by id, using a specific verb and resource. This distinguishes it from sibling tools like cap_table_get_list_cap_table_stakeholders, cap_table_create_cap_table_stakeholder, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 stakeholder by id' implies the tool is for fetching a single stakeholder when the ID is known, but it does not explicitly state when to use this versus the list endpoint or other alternatives. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_cap_table_summaryGet Cap Table SummaryARead-onlyInspect
GetCapTableSummary returns the dashboard aggregate (totals, stakeholder count, founders %, and per-type ownership segments) on the fully-diluted source roster. Keeps the ownership math server-side. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| asOf | No | ||
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| segments | No | |
| foundersPct | No | |
| totalShares | No | |
| asOfRecordedAt | No | |
| totalCommitted | No | |
| totalInvestment | No | |
| authorizedShares | No | |
| stakeholderCount | No | |
| authorizedCommonShares | No | |
| authorizedPreferredShares | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While readOnlyHint is already true, the description adds useful behavioral context by stating 'Keeps the ownership math server-side' and 'fully-diluted source roster.' This clarifies that calculations are authoritative and server-computed, going beyond the annotation alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose and details, followed by a short note on computation location and read-only status. Every sentence adds value and 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 adequately covers the return content and adds the server-side computation context, and an output schema exists to detail return fields. However, it omits the effect of the optional 'asOf' parameter and gives no guidance on how this tool relates to similar siblings like overview or round summaries, leaving some contextual 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 description does not explain the 'asOf' parameter or its effect on the aggregation. The schema provides only a weak description for companyId ('UUID value wrapper') and no description for asOf. With 50% schema coverage, the description needed to compensate but did not, leaving parameter meanings partially ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 a dashboard aggregate with specific metrics (totals, stakeholder count, founders %, per-type ownership segments) on the fully-diluted source roster. This is a specific verb+resource and delineates its function from other cap-table tools like overview or round summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 'Keeps the ownership math server-side,' implying the tool should be used when you need pre-computed ownership calculations rather than doing the math yourself. However, it does not explicitly state when to use this tool versus alternatives like cap_table_get_cap_table_overview, nor does it provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_list_cap_table_agreementsList Cap Table AgreementsDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No | ||
| typeFilter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| agreements | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_list_cap_table_roundsList Cap Table RoundsDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| rounds | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_list_cap_table_securitiesList Cap Table SecuritiesARead-onlyInspect
GetListCapTableSecurities lists a company's holdings (optionally filtered to one stakeholder), paginated. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No | ||
| stakeholderId | No | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| securities | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds pagination behavior and the optional stakeholder filter beyond the annotations. The read-only note duplicates the readOnlyHint annotation, but the extra behavioral context (paginated list, filterable) goes beyond 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?
A single sentence packs purpose, optional filtering, pagination, and read-only behavior. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and readOnly/destructive annotations present, the description covers the essential aspects: what is listed, the optional filter, pagination, and safety. It lacks explicit guidance on pageToken semantics or output shape, but the output schema handles return values, making this sufficient for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps stakeholderId to 'optionally filtered to one stakeholder' and pageSize/pageToken to 'paginated', supplementing the sparse schema descriptions. It does not explain the UUID wrapper structure, but the schema already covers that. It partially compensates for the 50% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists a company's holdings (securities), with an optional stakeholder filter and pagination. This specific verb+resource combination distinguishes it from sibling tools like cap_table_get_cap_table_security (single security) and cap_table_get_list_cap_table_stakeholders (stakeholders, not securities).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: use to list holdings for a company, optionally filtered to one stakeholder, and results are paginated. It does not explicitly name alternative tools or state when not to use it, but the scope is unambiguous enough for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_list_cap_table_stakeholdersList Cap Table StakeholdersARead-onlyInspect
GetListCapTableStakeholders returns a company's stakeholder roster (company-scoped, paginated). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalCount | No | |
| stakeholders | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description reinforces read-only behavior. It adds useful behavioral details about company scoping and pagination, 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 a single sentence, direct, and front-loaded with the key action and scope. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations and an output schema present, the description is largely adequate. It covers scope and pagination, though it could mention default page size or pagination token usage, but these are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple 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 companyId has a minimal description). The description does not explain pageSize or pageToken semantics, leaving these parameters undocumented. It partially compensates by implying companyId scope but adds little value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool returns a company's stakeholder roster, with 'company-scoped' and 'paginated' qualifiers. This clearly differentiates it from sibling tools like cap_table_get_cap_table_stakeholder (single stakeholder) and mutation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is a list operation scoped to a company, implying use for retrieving all stakeholders. It does not explicitly mention alternatives or when not to use it, but the name and context make it obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_list_cap_table_wire_match_suggestionsList Cap Table Wire Match SuggestionsDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| securityId | No | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| suggestions | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_my_investor_companiesGet My Investor CompaniesARead-onlyInspect
GetMyInvestorCompanies returns the companies where the caller is a linked investor stakeholder (not a member), with the owner-granted access level — the entry point for the investor-facing portal (B3). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| companies | No |
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 the access level detail and the investor vs. member distinction, which are useful but not rich behavioral context. 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 a single, well-structured sentence that conveys the key information without waste. It includes the tool's purpose, scope, access level, and usage context, all in one concise 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?
With an output schema available, the description doesn't need to explain return values. It covers the core purpose, scope, and usage context. Minor gaps like referencing 'B3' without explanation are not significant given the tool's low complexity and existing structured data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100% (empty schema). Since there are no parameters to explain, the description doesn't need to add parameter information. The baseline for no-parameter tools is 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 returns 'the companies where the caller is a linked investor stakeholder (not a member)', which is a specific verb + resource + scope. It also distinguishes itself from sibling tools by explicitly noting 'not a member', which sets it apart from member-based company listing tools like company_get_my_companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 this is 'the entry point for the investor-facing portal (B3)', providing clear context for when to use it. It also hints at an alternative by clarifying 'not a member', but it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_safe_import_consentGet SAFE Import ConsentARead-onlyInspect
GetSafeImportConsent reports whether the company has granted current consent for an external AI to read imported SAFE contents.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| granted | No | |
| version | No |
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 agent knows it is a safe read. The description adds the context that it checks 'current consent,' which is consistent but does not provide additional behavioral details beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it begins by repeating the tool name 'GetSafeImportConsent,' which is slightly redundant. Otherwise, it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple consent-check tool with one parameter and an output schema, the description sufficiently explains its purpose. It covers the core behavior and leaves return format to the output schema, making it complete enough without being verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single companyId parameter, which is documented as a UUID value wrapper. The description adds no extra parameter semantics, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports whether the company has granted current consent for an external AI to read imported SAFE contents. This distinguishes it from sibling tools like cap_table_grant_safe_import_consent, which actively grant consent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 to check consent status before reading imported SAFE contents, providing clear context. However, it does not explicitly state when to use this tool versus alternatives like grant_safe_import_consent or import_safe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_transaction_summaryGet Transaction SummaryARead-onlyInspect
GetTransactionSummary returns the committed / signed / wired capital totals for the Transactions page header. committed/signed come from the securities pipeline stage; wired comes from the money-movement ledger. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| wired | No | |
| signed | No | |
| committed | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context by explaining that committed/signed figures come from the securities pipeline stage, while wired figures come from the money-movement ledger, and it reiterates the read-only nature. This 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?
The description is two sentences, front-loads the primary outcome, and explains data sources in the second sentence without redundancy. Every clause 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 output schema and annotations, the description sufficiently covers the tool's purpose and data source semantics. It is complete for a read-only summary tool with one well-documented 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?
The input schema covers 100% of parameters, describing companyId as a UUID value wrapper. The description does not add any additional parameter-level semantics, so it remains at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'returns' and clearly identifies the resource as 'committed / signed / wired capital totals for the Transactions page header.' It also specifies the two data sources, making it distinct from other cap_table summary 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 'for the Transactions page header' provides clear context on where this summary is used. It does not explicitly name alternative tools, but the description implies the scope. Since no exclusions are stated, a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_get_wired_transactionsGet Wired TransactionsARead-onlyInspect
GetWiredTransactions returns the confirmed-wire ledger (wired + refunded investor rows) for the fundraising Transactions page. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalCount | No | |
| transactions | No |
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 description's 'Read-only' adds no new safety information. It does add useful content context by specifying the ledger includes both wired and refunded investor rows, matching the capabilities of the tool. However, it does not describe return format, pagination, or other behavioral details, keeping it at a mid-level 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, focused sentence that starts with the action ('returns') and immediately conveys the core purpose and scope. Every word contributes to understanding, with no filler or redundancy. It is both concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter), the presence of an output schema, and annotations that establish read-only behavior, the description sufficiently explains what the tool does and where it applies. The description covers the essential purpose, and the output schema handles return-value details, so no significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter (companyId described as 'UUID value wrapper'), so the baseline is 3. The description does not provide any additional meaning or context for the parameter beyond the schema, so no extra credit is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('returns the confirmed-wire ledger') and resource ('wired + refunded investor rows for the fundraising Transactions page'), which distinguishes it from sibling tools like cap_table_get_transaction_summary or cap_table_record_cap_table_wire. The verb and resource are concrete 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 implies usage for the fundraising Transactions page but does not explicitly mention when to use this tool over alternatives, nor does it provide exclusions or when-not-to-use guidance. It gives a clear context but lacks explicit alternative comparisons, resulting in only implied usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_grant_safe_import_consentGrant SAFE Import ConsentADestructiveInspect
GrantSafeImportConsent records the company's consent at the current wording version. Required before an MCP-origin SaveCapTableImport.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| granted | No | |
| version | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true, so the mutation nature is known. Description adds the detail of consent tied to 'current wording version' and its prerequisite status, 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, front-loaded, no fluff. Every word adds meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter, output schema, and annotations. Description covers purpose and prerequisite. It doesn't address idempotency or checking existing consent, but sibling get_safe_import_consent fills that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with companyId described as 'UUID value wrapper'. The description adds no parameter-specific meaning, 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 ('records the company's consent') and specific context ('at the current wording version'). It distinguishes from sibling cap_table_get_safe_import_consent by framing it as a prerequisite for 'MCP-origin SaveCapTableImport'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'Required before an MCP-origin SaveCapTableImport', providing a clear when-to-use. Does not list alternatives or exclusions, but the stated dependency guides usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_import_rsaImport RSAADestructiveInspect
Imports a signed Restricted Stock Purchase/Award Agreement (RSA) from an uploaded PDF and stores the document in S3. USE THIS (not ExtractRsaTermsOcr + CreateCapTableAgreement, and not RecordCapTableInvestment) whenever the user provides or uploads a signed RSA PDF. The grantee (founder/employee/advisor) MUST already exist as a cap-table stakeholder — this tool matches the document to an existing stakeholder by name and does NOT create one; if there is no match the import is rejected, so add the stakeholder first. Mandatory two-step human-in-the-loop flow: (1) call GetOcrUploadUrl with kind=RSA and mime_type=application/pdf, then upload the PDF bytes to the returned PUT URL; (2) call ImportRSA with preview=true and that source_s3_uri — this runs OCR and returns the extracted founder/company names and terms (shares, vesting, price_per_share, grant_date, 83b status, acceleration) plus the resolved grantee (matched_stakeholder_id, or would_create=true when no stakeholder matches) WITHOUT persisting anything; (3) PRESENT those terms to the user as a table, let them correct any value, and get explicit confirmation; (4) call ImportRSA again WITHOUT preview and the SAME source_s3_uri; pass rsa_terms_override with any user-corrected terms (omit it to accept the extracted terms as-is), and stakeholder_id to pin the matched grantee. This creates the common-stock holding with its vesting schedule (or updates the grantee's existing holding), records a signed RSA agreement, and links the PDF — atomically. Never skip the preview + confirmation step; never persist unreviewed OCR output. Empty string / 0 / false in the extracted terms means the value was not stated in the document — never fabricate.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| companyId | Yes | UUID value wrapper. | |
| sourceS3Uri | No | ||
| stakeholderId | No | UUID value wrapper. | |
| consentToAiRead | No | ||
| rsaTermsOverride | No | ||
| newStakeholderName | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| created | No | |
| preview | No | |
| securityId | No | UUID value wrapper. |
| agreementId | No | UUID value wrapper. |
| stakeholderId | No | UUID value wrapper. |
| consentVersion | No | |
| consentBodyMarkdown | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate destructiveHint=true, but the description adds substantial behavioral context: it does not create a new stakeholder, rejects unmatched imports, requires preview and confirmation, treats empty/0/false as 'not stated', and details the atomic creation/update behavior. It also warns to never persist unreviewed OCR output. This goes well beyond the annotations and no contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but front-loaded with a clear purpose statement and organized as a numbered step-by-step workflow. Every sentence adds valuable implementation guidance, such as the requirement to present terms to the user and get confirmation. It is at the upper bound of appropriate length but remains structured and easy to follow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, nested objects, destructive annotation), the description covers the critical workflow, prerequisites, and safety constraints thoroughly. The existence of an output schema covers return values. The main gaps are the undocumented newStakeholderName and consentToAiRead parameters and the potential ambiguity around the 'would_create' path, but the overall context is sufficient for an AI agent to execute the tool safely.
Complex tools with many parameters or behaviors need more documentation. 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 explains the semantics of the core workflow parameters (preview, sourceS3Uri, rsaTermsOverride, stakeholderId) and describes the data flow, which compensates considerably for the low schema coverage (29%). However, it leaves consentToAiRead and newStakeholderName unexplained, and the description's statement that it does not create a stakeholder seemingly conflicts with the newStakeholderName parameter, leaving a clear 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 what the tool does: imports a signed Restricted Stock Purchase/Award Agreement (RSA) from an uploaded PDF and stores it in S3. It explicitly distinguishes it from sibling tools by saying 'USE THIS (not ExtractRsaTermsOcr + CreateCapTableAgreement, and not RecordCapTableInvestment)' and specifies when to use it: 'whenever the user provides or uploads a signed RSA PDF.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 when-to-use guidance, including the exact condition ('whenever the user provides or uploads a signed RSA PDF') and names the alternatives to avoid. It also explains prerequisites (grantee must already exist) and the mandatory two-step human-in-the-loop flow, including the sequence of steps to call preview and then finalize.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_import_safeImport SAFEADestructiveInspect
Imports a SAFE from an uploaded SAFE PDF and stores the document in S3. USE THIS (not RecordCapTableInvestment) whenever the user provides or uploads a SAFE PDF file. Flow: (1) call GetOcrUploadUrl with kind=SAFE and mime_type=application/pdf to get a presigned PUT URL + source_s3_uri, (2) upload the PDF bytes to that PUT URL, (3) call ImportSAFE with that source_s3_uri. This runs OCR to extract the terms; pass valuation_cap / investment_amount / discount_rate only to CORRECT a value the user says the OCR misread, and leave them empty to keep what the document says. Call ExtractSafeTerms first and get the user's confirmation before importing. effective_date is required — never import a SAFE without a date. If the company named on the document differs from this company, say both names and get the user's confirmation before importing. It copies the PDF to the canonical cap-table SAFE location, links it to a SAFE agreement, resolves the investor by name (matching an existing stakeholder or creating a new one), and creates the security. The security is marked signed only if the document is actually signed; an unsigned SAFE PDF is still stored and left committed. Whenever the user has the PDF — including when they attached it to this conversation — upload it and pass source_s3_uri so the document itself is stored; a SAFE created from typed terms alone has nothing on record proving its date or signature, and the cap table flags it as missing its document. Use RecordCapTableInvestment only for a SAFE the user genuinely has no document for. The response carries the cap table before this call, what it added, and the cap table after — report an import in exactly that order (current table, new additions, final table) and take the totals from the response rather than reading the cap table again. For several SAFEs at once, list every one you are about to add and get a yes before the first call, not after the last.
| Name | Required | Description | Default |
|---|---|---|---|
| preview | No | ||
| roundId | No | UUID value wrapper. | |
| companyId | Yes | UUID value wrapper. | |
| postMoney | No | ||
| documentId | No | UUID value wrapper. | |
| sourceS3Uri | No | ||
| discountRate | No | ||
| valuationCap | No | ||
| effectiveDate | No | ||
| stakeholderId | No | UUID value wrapper. | |
| consentToAiRead | No | ||
| investmentAmount | No | ||
| newStakeholderName | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| change | No | |
| status | No | |
| created | No | |
| preview | No | |
| securityId | No | UUID value wrapper. |
| agreementId | No | UUID value wrapper. |
| stakeholderId | No | UUID value wrapper. |
| consentVersion | No | |
| consentBodyMarkdown | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate destructiveHint=true and openWorldHint=false. The description adds extensive behavioral context: the S3 upload flow, OCR term extraction, correction behavior, effective_date requirement, handling of company name mismatches, signed/unsigned SAFE handling, investor resolution, and response ordering. This goes well beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured: it starts with the core action, then provides the multi-step flow, usage rules, edge cases, and response-handling instructions. Every sentence adds value, though a few could be tighter. It is not overly verbose given 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 has 13 parameters, an output schema, and destructive behavior, the description thoroughly covers the complete workflow: prerequisites (GetOcrUploadUrl), upload steps, alternative tool usage, required fields, handling of mismatched companies, unsigned documents, and multi-SAFE batching. It even over-delivers by explaining how to report results, which is not required from an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31%, so the description carries a heavy burden. It adds meaning to core parameters: valuation_cap/investment_amount/discount_rate are for correcting OCR misreads, effective_date is required, sourceS3Uri is the uploaded PDF path. However, it doesn't explicitly explain all 13 parameters (e.g., preview, postMoney, consentToAiRead), leaving some gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Imports a SAFE from an uploaded SAFE PDF and stores the document in S3.' It clearly distinguishes this tool from RecordCapTableInvestment and ExtractSafeTerms by naming them and stating when to use each, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: 'USE THIS (not RecordCapTableInvestment) whenever the user provides or uploads a SAFE PDF file' and 'Use RecordCapTableInvestment only for a SAFE the user genuinely has no document for.' Also instructs to call ExtractSafeTerms first and get user confirmation, defining the workflow and exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_list_cap_table_audit_eventsList Cap Table Audit EventsARead-onlyInspect
ListCapTableAuditEvents returns the append-only who/what/when audit log for a company's ownership-affecting cap-table mutations (B1). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and destructiveHint false; the description adds useful context by noting the log is append-only and covers ownership-affecting mutations. No contradiction, and the read-only behavior is reinforced. It does not mention pagination behavior, but that is partially covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the tool's purpose and key semantics. No filler; the additional 'Read-only' is redundant with annotations but harmless.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, not explaining return values is acceptable. The description adequately scopes the audit events and read-only nature. Minor gaps include pagination semantics left to the schema and the unexplained 'B1' marker.
Complex tools with many parameters or behaviors need more documentation. Simple 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%; companyId's description is merely 'UUID value wrapper', and pageSize/pageToken have no descriptions. The tool description does not explain how companyId is used or how pagination works, failing to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'returns the append-only who/what/when audit log' for 'ownership-affecting cap-table mutations', giving a specific verb, resource, and scope. This distinguishes it from sibling list tools like cap_table_get_list_cap_table_securities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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: to retrieve the audit history of cap-table mutations. The 'append-only' and 'ownership-affecting' qualifiers provide clear context, but it does not explicitly mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_list_cap_table_snapshots_for_roundList Cap Table Snapshots For RoundDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| roundId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| snapshots | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_list_cap_table_summary_snapshotsList Cap Table Summary SnapshotsCRead-onlyInspect
ListCapTableSummarySnapshots returns the point-in-time cap-table summary versions captured on material edits (B4). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| snapshots | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description's 'Read-only' merely repeats this. It adds context that snapshots are captured on material edits, but does not disclose pagination behavior or return format. With annotations present, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, but the 'Read-only' clause is redundant given annotations, and '(B4)' is unexplained noise. Still, it remains economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with pagination parameters and a nested companyId object, the description is too sparse. It doesn't explain pagination, the meaning of 'material edits', or the response structure, relying entirely on the output schema. The cryptic '(B4)' adds confusion.
Complex tools with many parameters or behaviors need more documentation. 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 33% description coverage, and the description provides no parameter information whatsoever. It does not explain companyId's nested wrapper, pageSize limits, or pageToken usage, leaving the agent to guess at required inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns point-in-time cap-table summary versions captured on material edits, using a specific verb and resource. It distinguishes from other snapshot tools by focusing on 'summary versions' and 'material edits', though the cryptic '(B4)' adds 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?
No explicit when-to-use or alternative guidance is given. The description implies it is for viewing snapshots after material edits, but does not mention related tools like list_cap_table_snapshots_for_round or list_cumulative_cap_table_snapshots_for_stakeholder, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_list_cumulative_cap_table_snapshots_for_stakeholderList Cumulative Cap Table Snapshots For StakeholderDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| stakeholderId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| snapshots | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_match_cap_table_stakeholderMatch Cap Table StakeholderAInspect
MatchCapTableStakeholder suggests the existing stakeholder a parsed SAFE's investor name maps to (fuzzy match). Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| investorName | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| matched | No | |
| stakeholderId | No | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'Read-only' and 'fuzzy match' behavior beyond the annotations (openWorldHint=false, destructiveHint=false), clarifying that this is a non-mutating suggestion tool. It does not detail edge cases like no match or multiple matches, but the read-only declaration is valuable.
Agents need to know what a tool does to the world before calling 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 plus a short 'Read-only' tag. It is front-loaded with the tool's purpose, contains no fluff, and every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and annotations, the description provides key context: the input source (parsed SAFE), the matching behavior, and read-only nature. However, it lacks guidance on alternatives and does not explain the role of companyId, leaving a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies investorName as the investor name from a parsed SAFE, which adds meaning beyond the schema. However, companyId remains vague ('UUID value wrapper') and its purpose is not explained. With 50% schema coverage, the description only 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 uses a specific verb ('suggests') plus a clear resource ('existing stakeholder') and an explicit method ('fuzzy match' of a parsed SAFE's investor name). This clearly distinguishes it from sibling CRUD tools like create/update/delete stakeholder and from other matching 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 implies usage during SAFE parsing/import via 'parsed SAFE's investor name', but it lacks explicit guidance on when to use this tool vs alternatives (e.g., creating a new stakeholder) and does not mention any exclusions or preferred conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_preview_close_cap_table_roundPreview Close Cap Table RoundARead-onlyInspect
PreviewCloseCapTableRound runs the SAME engine as CloseCapTableRound but does NOT persist or close anything — no status change, no snapshot writes. This is the action for "preview", "what-if", or "estimate the close"; it never finalizes the round. To actually close/finalize, use CloseCapTableRound.
| Name | Required | Description | Default |
|---|---|---|---|
| roundId | Yes | UUID value wrapper. | |
| companyId | Yes | UUID value wrapper. | |
| newMoneyRaise | No | ||
| preMoneyValuation | No | ||
| targetOptionPoolPct | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, but the description goes further by specifying no status change, no snapshot writes, and that it never finalizes the round. This adds concrete behavioral context beyond the annotations, fully disclosing the non-persistent nature.
Agents need to know what a tool does to the world before calling 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 most critical behavioral difference (does not persist), and ends with the alternative. Every sentence adds value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations (readOnly, non-destructive), an output schema, and a clear description of behavior and usage, the context is sufficient for correct tool selection. Optional financial parameters are self-named and the absence of parameter explanations is offset by their intuitive names.
Complex tools with many parameters or behaviors need more documentation. 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 provides no information about the parameters. Schema description coverage is only 40% (only the UUID wrappers for roundId and companyId have descriptions), leaving newMoneyRaise, preMoneyValuation, and targetOptionPoolPct without any explanatory text in either schema or description. The agent must infer their purpose 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 runs the same engine as CloseCapTableRound but does not persist or close anything, giving a specific verb+resource+scope. It explicitly distinguishes itself from the sibling CloseCapTableRound, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says this is for 'preview', 'what-if', or 'estimate the close', and directs users to CloseCapTableRound for actual close/finalize. This provides both clear when-to-use and the alternative, leaving no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_record_cap_table_investmentRecord Cap Table InvestmentADestructiveInspect
Records one holding end-to-end: resolves or creates the stakeholder, then creates the holding with all derived fields, attaching or auto-creating a round for SAFE/Preferred. SAFE requires a valuation_cap. VESTING: for service equity held by a founder, employee, or advisor (instrument_type COMMON_STOCK or OPTION — restricted stock and option grants that vest over time), you MUST set the vesting field { start_date, total_months, cliff_months }. Carry these values from ExtractCapTable output (vesting_start_date / vesting_total_months / vesting_cliff_months) when importing a cap table. If such a holding has no vesting schedule in the source, ASK the user for the vesting start date, total months (e.g. 48), and cliff months (e.g. 12) BEFORE calling this tool — do not omit vesting and do not silently record it as fully vested. OMIT vesting entirely for investor instruments (SAFE, PREFERRED_STOCK, CONVERTIBLE_NOTE) — they never vest. Returns the stakeholder, security, and round ids. The response carries the cap table before this call, what it added, and the cap table after — report an import in exactly that order (current table, new additions, final table) and take the totals from the response rather than reading the cap table again. For several SAFEs at once, list every one you are about to add and get a yes before the first call, not after the last.
| Name | Required | Description | Default |
|---|---|---|---|
| mfn | No | ||
| shares | No | ||
| proRata | No | ||
| roundId | No | UUID value wrapper. | |
| vesting | No | ||
| safeType | No | ||
| companyId | Yes | UUID value wrapper. | |
| signedDate | No | ||
| discountRate | No | ||
| valuationCap | No | ||
| stakeholderId | No | UUID value wrapper. | |
| instrumentType | No | ||
| newStakeholder | No | ||
| capitalCommitted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| change | No | |
| roundId | No | UUID value wrapper. |
| securityId | Yes | UUID value wrapper. |
| stakeholderId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint=true annotation, the description discloses side effects: it creates stakeholders and holdings, attaches or auto-creates rounds, returns stakeholder/security/round IDs, and explains the response ordering (before, additions, after). It also states SAFE requires a valuation_cap. This adds meaningful behavioral detail without contradicting 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 long but dense; every sentence carries an operational instruction. Key constraints like VESTING, SAFE requirements, and batch consent are clearly highlighted after the main purpose. It could be improved with clearer paragraph breaks, but it earns its length for a complex tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-complexity tool with nested schema and an output schema, the description covers the workflow, prerequisites, vesting rules, SAFE handling, and response reporting. It leaves some parameter meanings to the schema or derived-field logic, but overall it gives enough context 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 description coverage is only 21%, so the description must compensate. It adds valuable semantics for vesting (when required/omitted and field mapping), valuationCap for SAFE, and instrument type context. However, many of the 14 parameters (mfn, proRata, discountRate, capitalCommitted, signedDate, safeType, shares) still lack explanation, so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Records one holding end-to-end' and breaks down the workflow (resolves or creates stakeholder, creates holding, attaches or auto-creates a round). This clearly distinguishes it from sibling tools like record_cap_table_wire or create_cap_table_stakeholder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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, actionable guidance: mandatory vesting for service equity, asking the user for missing vesting data before calling, omitting vesting for investor instruments, and getting batch consent for multiple SAFEs. It also references carrying values from ExtractCapTable output, providing strong when-to-use and prerequisite context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_record_cap_table_refundRecord Cap Table RefundADestructiveInspect
RecordCapTableRefund records a refund into the money-movement ledger (refund, confirmed) and flips the security's pipeline_status to 'refunded'.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | ||
| companyId | Yes | UUID value wrapper. | |
| reference | No | ||
| occurredAt | No | ||
| securityId | Yes | UUID value wrapper. | |
| transactionId | No | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| transactionId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds concrete behavioral details about the ledger entry and status change, complementing the destructiveHint annotation without contradicting it.
Agents need to know what a tool does to the 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 conveys the tool's purpose and effects with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior but lacks prerequisites or context around required parameters, which matters for a mutation tool with an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any of the six parameters, while the schema only provides 'UUID value wrapper' descriptions for nested IDs, leaving amount, reference, and occurredAt without semantic 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 tool records a refund into the money-movement ledger and sets pipeline_status to 'refunded', distinguishing it from similar record tools like investment or wire.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this is for recording refunds, though it does not explicitly mention when to avoid this tool in favor of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_record_cap_table_wireRecord Cap Table WireADestructiveInspect
Records an investor wire into the money-movement ledger and flips the security's pipeline_status to 'wired'. A wire is accepted ONLY when it is backed by one of: (a) a matched banking transaction_id (see GetListCapTableWireMatchSuggestions), or (b) a proof_document_uri whose ExtractWirePaymentProof verdict is 'verified'. With neither, the call is rejected — never mark a wire wired without a matched transaction or a verified payment proof.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | ||
| companyId | Yes | UUID value wrapper. | |
| reference | No | ||
| occurredAt | No | ||
| securityId | Yes | UUID value wrapper. | |
| ocrConfidence | No | ||
| transactionId | No | UUID value wrapper. | |
| proofDocumentUri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| transactionId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses the exact state change (pipeline_status to 'wired'), the strict business rule ('never mark a wire wired without...'), and the rejection behavior. This provides critical transparency for a mutating tool with financial consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each dense with relevant information: the action, the side effect, the acceptance criteria, and a strong guardrail. No filler or repetition of schema details. Front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main business logic and rejection rules, references the relevant supporting tools, and is adequate for an agent to decide when to invoke it. The output schema exists, so return details are covered elsewhere. Minor gaps include not mentioning required parameters (companyId, securityId) or the exact error format, but these are secondary to the core decision logic.
Complex tools with many parameters or behaviors need more documentation. Simple 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 38%, so the description needs to compensate. It adds meaning to the transactionId and proofDocumentUri parameters by explaining their role in the acceptance criteria and the mutual exclusivity ('one of'). It does not elaborate on amount, reference, occurredAt, or ocrConfidence, but these are reasonably self-explanatory and the core conditional relation is well-explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Records an investor wire into the money-movement ledger and flips the security's pipeline_status to 'wired''. It names the primary side effect and is distinct from sibling tools like record_cap_table_investment and record_cap_table_refund by focusing on wire transactions and their verification prerequisites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when the tool is acceptable: only when backed by a matched transaction_id or a verified proof_document_uri. It explicitly points to sibling tools (GetListCapTableWireMatchSuggestions, ExtractWirePaymentProof) for obtaining those prerequisites, and states the rejection condition when neither is present. It does not explicitly contrast with recording other transaction types, but the wire-specific context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_reopen_cap_table_roundReopen Cap Table RoundADestructiveInspect
ReopenCapTableRound flips a CLOSED round back to OPEN (status only).
| Name | Required | Description | Default |
|---|---|---|---|
| roundId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| round | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=true, and the description adds the important qualifier that only the status is changed. However, it does not disclose any potential side effects, permission requirements, or reversibility of the action. The 'status only' note adds some context beyond the annotation, but the description remains thin on behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the exact action and scope. No wasted words, and it conveys the essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with one parameter and an output schema, the description is adequately complete. It explains the core behavior and limit (status only), though it does not explicitly mention prerequisites like the round needing to exist and be closed. Minor gap but not critical.
Complex tools with many parameters or behaviors need more documentation. 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 roundId parameter, describing it as a 'UUID value wrapper.' The description adds no additional meaning to the parameter, but the schema already provides sufficient semantics. 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 flips a CLOSED round back to OPEN, with the explicit scope 'status only.' This is a specific verb+resource+state change, and it distinguishes itself from the sibling cap_table_close_cap_table_round operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the usage context: use this when a previously closed round needs to be reopened, and the 'status only' kernel clarifies it does not affect other round data. It does not explicitly name alternatives, but the intent is clear enough given the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captable_send_safe_for_signatureCreate SAFE EnvelopeADestructiveInspect
CreateSafeEnvelope opens a two-party SAFE signing envelope from cap-table-supplied data (the caller fetched it via company.GetSafeAgreement): it renders the signable SAFE PDF, inserts the company (order 1) + investor (order 2) signers, and returns the raw investor signing token ONCE.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | ||
| companyId | No | UUID value wrapper. | |
| investors | No | ||
| accessCode | No | ||
| companyName | Yes | Human-readable name (1-255 Unicode chars). | |
| founderEmail | No | ||
| valuationCap | No | ||
| founderUserId | Yes | UUID value wrapper. | |
| safeAgreementId | No | ||
| reminderIntervalDays | No | ||
| stateOfIncorporation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| signers | No | |
| envelopeId | No | |
| investorTokens | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description builds on that by adding that the investor signing token is returned only once, and explains the signer ordering and PDF rendering. This adds meaningful 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 two sentences, front-loaded with the primary purpose, and efficiently includes the token-once caveat and signer order without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 params, low schema coverage), the description provides a high-level workflow but leaves a significant gap in parameter usage and data contract needed to invoke it correctly. The output schema exists, so return values are covered, but the input side is under-specified.
Complex tools with many parameters or behaviors need more documentation. 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 27% schema description coverage, the description should compensate for the 11 parameters. It gives some clue about signer ordering (company order 1, investor order 2) but does not explain required parameters like founderUserId or companyName, nor optional but important ones like safeAgreementId or valuationCap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 'opens a two-party SAFE signing envelope' with a specific verb and resource. It distinguishes itself from generic signature tools by specifying 'SAFE' and 'cap-table-supplied data', and mentions the prerequisite fetch via company.GetSafeAgreement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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: the tool is used when the caller has already fetched the SAFE agreement via company.GetSafeAgreement. It implies a specific workflow but does not explicitly mention when not to use it or alternatives like signature_create_envelope, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_set_cap_table_pipeline_statusSet Cap Table Pipeline StatusAInspect
Moves ONE investor's holding along the fundraising pipeline. Use this to change a stage — never UpdateCapTableSecurity, which is a full replace and will blank any field you do not resend. Forward goes one stage at a time: committed -> sent -> signed (awaiting_middleman sits between sent and signed and applies only to deals routed through a middleman, so stepping over it is fine). Skipping further ahead is rejected. Moving BACK to an earlier stage is allowed and is how a stage entered by mistake gets corrected — no need to delete the investor. Two things cannot be undone: 'wired' is set only by recording the wire (RecordCapTableWire, which requires a matched bank transaction or a verified payment proof) and never by this tool, and once wired the only move is a refund (RecordCapTableRefund). Setting the stage a holding already has is accepted and changes nothing. The fundraising pipeline is investors only: founders and employees receive equity, they never commit or wire capital, so a stage move on their holding is refused — leave them out when you list or summarize the pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| securityId | Yes | UUID value wrapper. | |
| pipelineStatus | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the sparse annotations (openWorldHint=false, destructiveHint=false), the description discloses important behaviors: one-stage-at-a-time forward moves, rejection of multi-step jumps, allowed backward moves, no-op on same stage, refusal for non-investors, and the irreversibility of 'wired' status. 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 long but front-loaded with the core purpose and every sentence contributes critical constraints. It could be trimmed slightly, but the density of essential rules justifies its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers all relevant rules: valid stage transitions, special middleman handling, backward corrections, irreversible wired state, and investor-only scope. With an output schema present, return structure is already handled, making the description sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides only UUID wrapper descriptions for companyId and securityId, and no description for pipelineStatus (67% coverage). The description compensates by defining the pipeline sequence (committed -> sent -> signed, with awaiting_middleman intermediate) and clarifying the semantics of the status field, though it doesn't explicitly name the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Moves ONE investor's holding along the fundraising pipeline,' identifying the specific verb, resource, and scope. It also distinguishes itself from the sibling UpdateCapTableSecurity by warning that the latter is a full replace that blanks unsent fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use this tool instead of alternative tools: 'never UpdateCapTableSecurity, which is a full replace,' and references RecordCapTableWire and RecordCapTableRefund for irreversible transitions. It details forward/backward movement rules, the middleman edge case, and the investor-only restriction, giving clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_simulate_cap_table_exitSimulate Cap Table ExitAInspect
Computes what every stakeholder takes home at ONE hypothetical exit valuation, running the liquidation-preference waterfall and converting SAFEs as if the exit were the price round. Read-only — nothing is written. When the user asks to "run a simulation" without naming a number, do not pick round numbers out of the air: read the company's own valuations first (GetListCapTableRounds for pre/post-money, GetListCapTableSecurities for SAFE valuation caps) and call this once per valuation, plus one clearly below the cheapest and one or two well above the richest, so the ladder shows both a down-round and an upside. Keep it to about five valuations. Report each scenario as: the exit value, the total distributed, and one line per investor with the payout and the cash-out multiple (payout / capital invested, e.g. "20.0x"); call out anyone crossing $1M and $30M, and say plainly when an exit below the last round means liquidation preferences are repaid before common stock. Never hand-calculate any of these numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| exitValuation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | No | |
| exitValuation | No | |
| totalDistributed | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint: false annotation, the description adds rich behavioral context: 'Read-only — nothing is written,' explains the simulation mechanics (liquidation-preference waterfall, SAFE conversion as if exit were the price round), and imposes the agent constraint 'Never hand-calculate any of these numbers.' 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?
Though long, every sentence earns its place: purpose, read-only note, workflow for running a ladder of valuations, reporting format, attention thresholds ($1M/$30M), and a final anti-hand-calculation warning. It is front-loaded with the core purpose in the first sentence and structured logically from behavior to workflow to reporting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and the presence of an output schema, the description is remarkably complete: it covers the single-valuation call semantics, the multi-scenario workflow with real data sourcing, the exact reporting shape (exit value, total distributed, per-investor payout and multiple), and edge-case guidance for below-last-round exits. It also names the specific sibling data tools needed for the workflow, making it fully actionable.
Complex tools with many parameters or behaviors need more documentation. Simple 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 50% and exitValuation has no description beyond a regex pattern. The description compensates by clarifying exitValuation means a single hypothetical exit valuation ('ONE hypothetical exit valuation', 'call this once per valuation'). companyId remains a generic UUID wrapper, but the tool's overall purpose makes its role clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 precise verb+resource: 'Computes what every stakeholder takes home at ONE hypothetical exit valuation, running the liquidation-preference waterfall and converting SAFEs as if the exit were the price round.' This clearly distinguishes it from sibling cap_table tools like preview_close_cap_table_round or get_cap_table_summary by emphasizing hypothetical simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 contextual guidance: when the user asks for a simulation without a number, read the company's real valuations first via GetListCapTableRounds and GetListCapTableSecurities, call the tool once per valuation, and include down-round and upside scenarios. However, it does not explicitly state when NOT to use this tool or name alternative tools for the same task, so it misses the full 'when-not/alternatives' bar for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_update_cap_table_agreementUpdate Cap Table AgreementAInspect
UpdateCapTableAgreement applies a full update (status/progress/timestamps).
| Name | Required | Description | Default |
|---|---|---|---|
| agreement | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide openWorldHint=false and destructiveHint=false, leaving the mutation semantics undisclosed. The description adds that it updates status/progress/timestamps, which is useful, but it does not clarify whether 'full update' means a complete replacement (clearing unspecified fields) or a partial update, which is critical 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, front-loaded sentence that communicates the core purpose without wordiness. Every word contributes to the meaning, 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?
The tool has a complex nested schema with many fields and a required 'agreement' object, but the description provides only a high-level phrase and no details on how to construct the input, what constitutes a 'full update', or what the output contains. The output schema exists but the description does not use it to guide the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0% for the main 'agreement' parameter, with only nested UUID wrappers described. The description mentions 'status/progress/timestamps' but does not explain the required fields, the nested object structure, or the semantics of the numerous properties in the schema. This is insufficient for a complex nested 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 action ('applies a full update') and the resource ('cap table agreement'), and specifies the scope ('status/progress/timestamps'). This distinguishes it from the sibling tool 'cap_table_update_cap_table_agreement_status', which only updates 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 phrase 'full update' implies this is for comprehensive changes, as opposed to targeted updates, but it does not explicitly state when to use this versus the alternative status-only update tool. No explicit when/when-not guidance is provided, though the naming and 'full update' hint at usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_update_cap_table_agreement_statusUpdate Cap Table Agreement StatusAInspect
UpdateCapTableAgreementStatus transitions a SAFE agreement's status (Feature 10 pipeline wiring) — e.g. to completed once signing finishes. Status-only update; artifact pointers are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. | |
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral context beyond the annotations: it specifies that only the status changes and that 'artifact pointers are preserved,' helping an agent predict side effects. It does not cover permissions or transition validation, but the key mutation scope is clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and front-loaded with the core action. The parenthetical 'Feature 10 pipeline wiring' is cryptic and unnecessary, slightly reducing clarity, but overall the text is concise 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?
For a simple status update tool, the description covers the main purpose and side-effect scope, and the schema provides the enum. An output schema exists, so return details are not needed. However, it lacks explicit guidance on valid status transitions, which would be useful but is not essential for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the status enum and provides a basic id wrapper. The description adds value by identifying the id as a SAFE agreement and giving an example status transition, but it does not elaborate on individual enum values or constraints, so it only partially compensates for the 50% 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 identifies the tool as transitioning a SAFE agreement's status and explicitly contrasts it with a broader update by stating 'Status-only update.' This differentiates it from sibling tools like cap_table_update_cap_table_agreement, leaving no ambiguity about what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a concrete use case (e.g., 'to completed once signing finishes') and scopes the tool to status-only changes, implying other agreement edits belong elsewhere. However, it does not explicitly name alternative tools or state when not to use it, 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.
cap_table_update_cap_table_roundUpdate Cap Table RoundDInspect
| Name | Required | Description | Default |
|---|---|---|---|
| round | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_update_cap_table_securityUpdate Cap Table SecurityDInspect
UpdateCapTableSecurity applies a full update to a holding.
| Name | Required | Description | Default |
|---|---|---|---|
| security | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate non-destructive and non-open-world, which are minimal. The description says 'full update' but does not explain whether this is a PUT-like replace (destructive to omitted fields) or a merge, nor any side effects, permissions, or constraints. No behavioral details beyond the trivial update action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, which is concise, but it is under-specified. It provides no useful information beyond the tool name, so brevity is not effective. It lacks structure or front-loaded key facts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 complex nested schema and the existence of an output schema, the description should explain the intended use case, the meaning of 'full update', and any important fields or constraints. It offers almost nothing, making the tool impossible to use correctly without external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single complex 'security' object with many fields, but schema description coverage is 0% and the description adds no parameter explanations. It does not clarify what fields are required, what 'full update' means for the object, or how to structure the nested objects. The description is completely unhelpful for constructing valid 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 says 'applies a full update to a holding,' but 'holding' is not clearly defined and the verb 'update' merely restates the tool name. It does not specify what kind of security or scope, and does not distinguish it from other update tools for stakeholders, agreements, or rounds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. It does not state when to use this tool versus other cap table update tools, nor mention any prerequisites or alternatives. The description is a single generic sentence with no context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_update_cap_table_stakeholderUpdate Cap Table StakeholderAInspect
Edits an EXISTING stakeholder's identity (name, type, email, metadata) by id. FULL REPLACE; type is effectively immutable. To ADD a new stakeholder use CreateCapTableStakeholder; for an investor contributing capital use RecordCapTableInvestment.
| Name | Required | Description | Default |
|---|---|---|---|
| stakeholder | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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, notably 'FULL REPLACE' and 'type is effectively immutable.' These are important because they warn the agent about replacement semantics and a field that should not be changed. However, it doesn't fully explain what happens to omitted fields (e.g., cleared vs retained), but the annotations already cover the tool's safety profile, so the extra disclosure is helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the primary action, then key caveats, then alternatives. Every sentence earns its place. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex nested-schema tool, the description covers the essential behavioral points: what it edits, full replace semantics, type immutability, and alternatives. It doesn't explain return values, but an output schema exists. The main gaps are the id requirement ambiguity and not explicitly stating how missing fields are treated, but overall 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?
The description adds meaning beyond the raw schema by naming editable fields and warning that type is immutable. However, there is a crucial ambiguity: the schema only requires 'name' inside the stakeholder object, but the description says updates happen 'by id.' This could mislead an agent into omitting the id. The 'FULL REPLACE' semantics are stated but not elaborated, leaving uncertainty about omitted fields. Schema description coverage is low, so the description needed to carry more weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Edits an EXISTING stakeholder's identity (name, type, email, metadata) by id.' It uses a specific verb ('Edits') and resource ('stakeholder'), and the phrase 'EXISTING' distinguishes it from create operations. Sibling differentiation is explicit via references to CreateCapTableStakeholder and RecordCapTableInvestment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 vs alternatives: 'To ADD a new stakeholder use CreateCapTableStakeholder; for an investor contributing capital use RecordCapTableInvestment.' This provides clear when-to-use and when-not-to-use guidance, which is rare and highly useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cap_table_update_my_stakeholder_nameUpdate My Stakeholder NameAIdempotentInspect
UpdateMyStakeholderName lets an investor correct the name the company holds for them — a misspelled name on a SAFE is the investor's to fix, and asking the founder to retype it was the only route. Scoped to the caller's own stakeholder row; nothing else on the row can be changed this way.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable name (1-255 Unicode chars). | |
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false. The description adds context about the action being limited to the caller's own row and that no other fields can be altered, which aligns with the non-destructive hint and provides a clear safety boundary. There is 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: the first establishes purpose and scenario, the second clarifies scope. It is front-loaded with the action and contains no repetitive 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?
For a narrowly-scoped tool with only 2 parameters and an output schema present, the description fully conveys purpose, when to use it, and its exact scope. It leaves no critical gaps, especially given the output schema already defines return structures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover both parameters at 100% ('Human-readable name (1-255 Unicode chars)' and 'UUID value wrapper'). The description adds context about the name being the corrected name the company holds, but it does not materially deepen the meaning beyond what the schema already provides, 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 function: 'lets an investor correct the name the company holds for them.' It specifies the verb 'correct' and the resource 'name', and distinguishes itself from sibling tools by noting it is scoped to the caller's own stakeholder row and only changes the name, unlike broader cap_table_update_cap_table_stakeholder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 concrete use case (misspelled name on a SAFE) and explains this is a self-service fix for investors, removing the need to ask a founder. It also states a clear limitation ('nothing else on the row can be changed this way'), which effectively excludes using this tool for other updates. However, it does not explicitly name alternative tools or offer direct comparisons beyond the scope statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_create_cardCreate CardAInspect
Issues a new virtual card at the card issuer. Set params.company_id to the company the card belongs to — the caller's membership is verified server-side, so pass a company the user actually belongs to (get_my_companies lists them). Set params.nickname to the name the user gave the card. Set params.spend_limit_cents to the limit in CENTS, not dollars: a $2,000 limit is 200000. params.spend_interval is REQUIRED whenever you send a limit and the call is rejected without it, so always send both — send SPEND_INTERVAL_MONTHLY when the user names an amount but no period, SPEND_INTERVAL_DAILY for a daily cap, or SPEND_INTERVAL_TRANSACTION for a per-charge cap. Do not send SPEND_INTERVAL_YEARLY: the default issuer does not support it and rejects the call — convert to a monthly amount and say so. Omit both fields only when the user wants no limit at all. Returns the created card, including its id, nickname, status, spend limit, expiry, cardholder, and billing address; report the id back to the user. Creating a card moves no money, but it does provision a real instrument at the issuer and no tool can delete it — only freeze it — so create one card per request and never retry a create that already succeeded. The full card number and CVV are never returned by any tool.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only openWorldHint and destructiveHint, so the description carries the transparency burden. It discloses important behaviors: creating a card moves no money but provisions a real instrument, the card cannot be deleted (only frozen), and the full card number/CVV are never returned. This is beyond what annotations convey and is essential for safe usage.
Agents need to know what a tool does to the world before calling 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 paragraph but every sentence adds value. It is front-loaded with the main purpose and then covers required parameters, return fields, and critical warnings. While it could benefit from bullet points for readability, there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the required parameters, return fields, irreversibility, and retry policy, which is sufficient for a creation tool with an output schema. Some optional fields like zip, address, and provider are not mentioned, but they are not essential for basic use. The description provides enough context 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 0%, so the description must compensate. It thoroughly explains the key parameters: company_id (with membership verification and reference to get_my_companies), nickname (user-provided name), spend_limit_cents (in cents with concrete example), and spend_interval (required when limit is sent, with specific enum values and the yearly caveat). It also clarifies when to omit both fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Issues a new virtual card at the card issuer,' using a specific verb and resource that clearly distinguishes this tool from sibling card tools like freeze, unfreeze, and update. It unambiguously states the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use and when-not-to-use guidance: it tells the agent to pass a company the user belongs to (referencing get_my_companies), when to include or omit spend_limit_cents and spend_interval, which spend intervals to choose, and to avoid SPEND_INTERVAL_YEARLY. It also instructs to create one card per request and never retry a successful create.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_freeze_cardFreeze CardADestructiveIdempotentInspect
Suspend a card at the issuer so it declines new charges. The card is not closed and no money moves; UnfreezeCard restores it. Safe to repeat: a card that is already frozen is returned unchanged and successfully. Only report a card as frozen when the call succeeded — an error means it is still live.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations providing idempotent and destructive hints, the description adds substantial context: 'not closed and no money moves,' 'already frozen is returned unchanged and successfully,' and the error semantics. This goes beyond the structured hints and clarifies the reversible, non-destructive nature of the freeze.
Agents need to know what a tool does to the 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 serve a distinct purpose: purpose, non-destructive clarification, idempotency, and error handling. No filler; the description is front-loaded with the core 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?
Given the simple one-parameter schema and output schema, the description covers all essential behaviors: what happens, what doesn't, repeatability, reversibility, and error handling. It is complete for an agent to safely invoke the tool without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear 'UUID value wrapper' description for cardId. The tool description does not add further context about the parameter, but the schema fully documents it, 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 opens with 'Suspend a card at the issuer so it declines new charges' – a specific verb, resource, and result. It distinguishes from the sibling unfreeze tool by clearly stating the action and its effect, and notes the card is not closed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 names the alternative 'UnfreezeCard restores it,' guiding when to use the reverse operation. It also gives behavioral guidance on repeatability ('Safe to repeat') and error interpretation ('an error means it is still live'), which helps the agent decide when to call the tool and how to handle outcomes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_get_cardGet CardDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_get_card_spendGet Card SpendDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cardId | No | UUID value wrapper. |
| limitCents | No | |
| limitInterval | No | |
| totalSpentCents | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_get_list_cardsList CardsARead-onlyInspect
List the caller's own cards.
| Name | Required | Description | Default |
|---|---|---|---|
| includeCanceled | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| cards | No |
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 safety is covered. The description adds the scoping detail ('own cards') but does not discuss other behaviors like filtering, pagination, or the default state of canceled cards. This is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence with no redundant information. Every word contributes to the meaning, making it optimally 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?
Given the tool's low complexity (one optional boolean parameter, output schema present), the description covers the core purpose but omits the sole parameter's behavior. This is a notable gap, but the availability of annotations and output schema mitigates the lack of 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 0%, and the description does not mention the 'includeCanceled' parameter at all. The parameter name is self-explanatory, but default behavior and usage are undisclosed, leaving the agent with incomplete information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('the caller's own cards'), with the qualifier 'own' clearly distinguishing from sibling tool card_get_list_org_cards. This is an unambiguous and specific purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'the caller's own cards' implies this tool is for personal cards rather than organization cards, but it does not explicitly name alternatives or state when not to use it. Usage context is implied but not fully spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_get_list_card_transactionsList Card TransactionsARead-onlyInspect
Sync provider transactions (best-effort), then return the card's rows.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| transactions | No |
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 known. The description adds useful context about the best-effort sync behavior, which is not captured by annotations, informing the agent that an external sync may occur before returning rows.
Agents need to know what a tool does to the world before calling 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 key action (sync) and outcome (return rows). 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 simple interface (one parameter), the presence of an output schema, and annotations covering safety, the description adequately conveys the tool's behavior. The sync nuance is covered, and return values are handled by the output schema. Minor gaps remain about pagination or error behavior, but these are not critical for such a focused tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter cardId, which is described as a UUID value wrapper. The description does not add extra meaning beyond what the schema provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool syncs provider transactions and returns the card's rows, using specific verbs 'sync' and 'return' with the resource 'card's rows.' While it doesn't explicitly differentiate from siblings like transaction_get_list_transactions, the scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving transactions for a specific card after a sync, but provides no explicit guidance on when to choose this over alternatives like transaction_get_list_transactions or card_get_card_spend. No exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_get_list_org_cardsList Org CardsARead-onlyInspect
List the active cards of every member of the given company, as a narrow projection. Membership of the AUTHENTICATED caller in company_id is verified server-side — the id selects, it never authorizes.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orgCards | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description adds valuable behavioral details: it notes that membership is verified server-side and clarifies that the companyId parameter selects but never authorizes. It also mentions the 'narrow projection', giving insight into the response shape 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 two concise sentences, each earning its place. It front-loads the core purpose, then adds a critical behavioral caveat without any 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?
With a single parameter, a complete input schema, an output schema available, and safety annotations, the description provides sufficient context: scope, projection, and authorization behavior. Nothing critical is missing for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the companyId parameter with 100% description coverage, but the description enriches it by explaining the security semantics: the parameter selects the company but does not authorize access. This adds meaning beyond the schema's 'UUID value wrapper'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 and resource: 'List the active cards of every member of the given company, as a narrow projection.' It distinguishes from sibling tools like card_get_list_cards by emphasizing company-wide scope and projection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context for use is implied: use this tool to list active cards for all members of a specific company. However, no explicit alternatives or exclusions are mentioned, so it lacks guidance on when to prefer this over card_get_list_cards or other card tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_unfreeze_cardUnfreeze CardAIdempotentInspect
Restore a frozen card at the issuer so it accepts charges again. Safe to repeat: a card that is already active is returned unchanged and successfully. A cancelled card cannot be restored and is rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (idempotentHint, destructiveHint), the description adds meaningful state-transition details: an active card is returned unchanged, and a cancelled card is rejected. It also notes the action happens 'at the issuer', which is extra context about the operation's target.
Agents need to know what a tool does to the 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 deliver the core action, repeat safety, and edge-case behavior with no filler. Every sentence adds information and 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 a simple one-parameter tool with annotations and an output schema, the description fully covers the operation's behavior, safety, and failure conditions. It is as complete as needed without redundant detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter (cardId). The description does not add parameter-level semantics beyond the schema, 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 uses a specific verb ('Restore') and names the resource ('a frozen card') with a clear outcome ('so it accepts charges again'). It distinguishes from the sibling tool card_freeze_card by describing the reverse operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use it: when a card is frozen and needs to accept charges again. It also provides an exclusion (cancelled cards cannot be restored) and confirms idempotent behavior for already-active cards, but does not explicitly name alternatives or contrast with card_freeze_card.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card_update_card_spend_limitUpdate Card Spend LimitAIdempotentInspect
Replace a card's spend limit at the issuer. amount_cents is in CENTS, not dollars — a $500 limit is 50000 — and interval chooses the window the limit resets over. The new limit replaces the old one outright, so this raises spending authority as readily as it lowers it: send the exact amount the user asked for and never round up. Use SPEND_INTERVAL_MONTHLY, SPEND_INTERVAL_DAILY, or SPEND_INTERVAL_TRANSACTION; SPEND_INTERVAL_YEARLY is not supported by the default issuer and is rejected, so convert a yearly figure to a monthly amount and say so.
| Name | Required | Description | Default |
|---|---|---|---|
| cardId | Yes | UUID value wrapper. | |
| interval | No | ||
| amountCents | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the new limit fully replaces the old one, and that the tool can both raise and lower spending authority, which is important behavioral context. It also warns about SPEND_INTERVAL_YEARLY being rejected. The annotations already indicate idempotent and non-destructive, but the description adds specifics like 'replaces the old one outright' and the issuer rejection 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 compact yet information-dense. Each sentence earns its place: the core operation, the unit clarification with example, the replacement semantics, a never-round-up guardrail, and interval constraints. There is no fluff or repetition, making it appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters and an output schema, the description covers the essential invocation aspects: units, interval choices, replacement behavior, and an unsupported interval. It omits details like error handling or prerequisites, but these are likely covered by the output schema and openWorldHint. It is reasonably complete for the agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema is sparse (only cardId is described), so the description compensates by explaining that amount_cents is in cents with a concrete example, and by clarifying which interval enum values are supported vs. rejected, including a conversion instruction. It does not mention 'SPEND_INTERVAL_UNSPECIFIED' from the enum, but overall it adds strong 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 action: 'Replace a card's spend limit at the issuer.' This specific verb+resource combination distinguishes it from sibling card tools like card_freeze_card, card_unfreeze_card, and card_get_card_spend. The purpose is unambiguous and immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 parameter guidance: which SPEND_INTERVAL values are acceptable (MONTHLY, DAILY, TRANSACTION), which is rejected (YEARLY), and how to convert a yearly figure to monthly. It also instructs to send the exact amount and never round up. However, it does not explicitly mention alternative tools or state when not to use this tool, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_company_name_availabilityCheck Company Name AvailabilityARead-onlyInspect
Checks whether a proposed company or brand name is available as a US trademark and as a domain across common TLDs (.com, .io, .co, .net, .ai, .app). Call this whenever the user proposes or evaluates a name. It is informational only and does not read or change any formation; a partial failure still returns useful results for the side that succeeded.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | No | |
| trademark | No | |
| searchedAt | No | |
| searchTimeMs | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description adds valuable behavioral context: it notes the tool is 'informational only and does not read or change any formation' and that 'a partial failure still returns useful results for the side that succeeded.' This goes beyond the annotations and helps the agent set expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first the purpose, then usage and behavior. It is front-loaded, concise, and every sentence contributes meaningful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (one parameter) and the presence of an output schema, the description covers purpose, usage, and edge-case behavior (partial failure). It provides enough context for an agent to decide when and how 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 schema only defines 'name' with min/max length, and schema description coverage is 0%. The description clarifies that 'name' is the 'proposed company or brand name' to check, thus adding semantic meaning. It could have been more explicit about the parameter's role, but it is sufficient given the single simple parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it checks whether a proposed company or brand name is available as a US trademark and as a domain across specific TLDs. This is a specific verb-resource pair that clearly distinguishes it from siblings like formation_check_name, which likely checks state registrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to 'Call this whenever the user proposes or evaluates a name,' which is clear usage guidance. However, it does not mention when not to use it or contrast it with alternatives like formation_check_name, so it misses the full 'when-not/alternatives' criterion for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
client_get_clientGet ClientDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| client | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
client_get_list_clientsList ClientsDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| clients | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_get_companyGet CompanyARead-onlyInspect
GetCompany retrieves a single company by ID or code
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | UUID value wrapper. | |
| code | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| company | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the safe read behavior. The description adds no behavioral details beyond the lookup mechanism, such as error handling or response shape, but the output schema exists to cover return values.
Agents need to know what a tool does to the world before calling 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 action and resource, with no filler or redundant information. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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-identifier tool with read-only annotations and an output schema, the description is adequate. A minor gap is that the schema has zero required parameters while the description implies at least one identifier should be supplied, but this is not a significant omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, with `id.value` described as a UUID wrapper and `code` lacking description. The description clarifies that both 'id' and 'code' are valid identifiers, adding relational meaning, but doesn't explain precedence, mutual exclusivity, or code format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('retrieves') and resource ('a single company'), and explicitly states the lookup keys ('by ID or code'). This clearly distinguishes it from sibling list tools like company_get_list_companies or company_get_my_companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 'by ID or code' provides clear context for when to use the tool: when you have a company identifier. It does not explicitly mention alternatives or when-not-to-use, but the usage context is evident from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_get_list_companiesList CompaniesBRead-onlyInspect
GetListCompanies retrieves a list of companies with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| companies | No | |
| totalCount | No | |
| nextPageToken | No |
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 known. The description adds that filtering and pagination are supported, which is useful context, but it does not disclose additional behavioral traits such as default page size, ordering, or limitations beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence and easy to parse. However, it begins with 'GetListCompanies' which redundantly repeats the tool name; removing that would make it more concise. It is otherwise well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool has an output schema, the description lacks crucial details about how to effectively use filtering and pagination (e.g., allowed filter combinations, pageToken semantics). The minimal description does not provide enough context for an agent to correctly invoke the tool beyond default behavior, especially given the nested filter schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full burden for parameter meaning. The description only mentions 'filtering and pagination' generically, without explaining specific parameters like filter object, pageSize, or pageToken. This is insufficient compensation for the absence 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 retrieves a list of companies, with the specific verbs and resource. It distinguishes from siblings like company_get_company (singular) and company_get_my_companies (user-specific) by indicating a broader listing with filtering and pagination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for listing companies with filtering/pagination, but it does not explicitly state when to use it over siblings like company_get_my_companies or company_get_company. There are no exclusions or alternative recommendations provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_get_list_company_membersList Company MembersARead-onlyInspect
GetListCompanyMembers lists all members of a company
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| members | No |
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 known. The description adds that the tool returns all members (a comprehensive list), not a filtered subset, which is useful context. It does not mention return format or pagination, but given the annotations, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words. It conveys the essential action and scope efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list operation with one parameter and an output schema, the description is sufficient. It clarifies the scope ('all members') and the resource. However, it could benefit from defining what constitutes a 'member' and whether pagination applies, but these are minor gaps given the output schema and 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 covers 100% of parameters (companyId) with a description of 'UUID value wrapper.' The tool description adds that the companyId refers to the company whose members are listed, as implied by 'of a company,' but it does not explain the wrapper structure further. The schema already documents the parameter, so the description adds minimal extra 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 verb ('lists') and resource ('all members of a company'), clearly distinguishing it from sibling tools like company_get_list_companies (which lists companies) and company_get_company (which gets a single company). It is not a tautology because it adds the scope 'all members'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 to retrieve members of a company, but it provides no explicit guidance on when to use it versus other list tools, nor any exclusions or alternatives. For a simple read-only list, the purpose is clear enough that usage is implied, but it lacks explicit when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_get_my_companiesGet My CompaniesARead-onlyInspect
Lists the companies the SIGNED-IN user already belongs to, each with their role, plus that account itself in signed_in_as. Requires authentication. Call this only when the user asks about or wants to act on an EXISTING company. Do NOT call it to start a new formation (use formation_start_formation, which is anonymous) — it is not a required preamble. ALWAYS name the signed_in_as account when you show the list, and especially when the user cannot find a company they expect: you and the person reading your answer may be signed in as different users, and then your list and the one on their screen will not match. Naming the account turns that from a mystery into one sentence. A company they expect but do not see belongs to another account or they were never added as a member — never guess a company_id. To work on a different company from this list, simply pass its company_id to the next tool call: the connection is not tied to one company and the user does NOT have to disconnect and reconnect. Say which company you acted on whenever it is not the one they last mentioned.
| Name | Required | Description | Default |
|---|---|---|---|
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| companies | No | |
| signedInAs | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable context: authentication is required, the signed_in_as account appears in the output, signed-in users may differ between the agent and reader, and the connection is not tied to a single company. These are behavioral nuances not inferable from 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 long (9 sentences) but each sentence contributes operational value, covering purpose, authentication, usage boundaries, multi-user pitfalls, and follow-up actions. One minor redundancy ('Naming the account turns that from a mystery into one sentence') could be trimmed, but overall it is well-structured 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?
With an output schema available (not shown), the description does not need to detail return values. It covers all essential context: what the tool lists, its authentication requirement, exactly when to use it, the multi-user discrepancy risk, and how to proceed with subsequent tool calls. No significant gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has two parameters (pageSize, pageToken) with 0% description coverage. The tool description does not mention either parameter at all, leaving the agent without any explanation of how to use pagination. Since schema coverage is low, the description was expected to compensate but did 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?
The description opens with a specific verb and resource: 'Lists the companies the SIGNED-IN user already belongs to, each with their role, plus that account itself in signed_in_as.' This clearly distinguishes it from sibling tools like company_get_list_companies and explicitly contrasts with formation_start_formation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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/when-not guidance: 'Call this only when the user asks about or wants to act on an EXISTING company' and 'Do NOT call it to start a new formation (use formation_start_formation, which is anonymous)'. It also advises on subsequent tool use ('simply pass its company_id to the next tool call') and cautions against guessing company_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
counterparty_get_counterpartyGet CounterpartyARead-onlyInspect
GetCounterparty retrieves a single counterparty by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| counterparty | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only and non-destructive. The description adds only a minimal clarification (single item by ID), which is consistent with the annotations. It does not provide additional behavioral context beyond what annotations cover, so a neutral score is appropriate.
Agents need to know what a tool does to the world before calling 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 gets to the point. However, it begins with 'GetCounterparty,' which is redundant with the tool name, slightly detracting from its conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the single parameter is fully documented, the description adequately covers the tool's purpose for a simple get-by-ID operation. It does not need to explain return values or complex behaviors, though a note about using list tools for searching would enhance 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 fully documents the single 'id' parameter with a description ('UUID value wrapper'). The description adds no further parameter semantics, and the schema coverage is 100%, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a single counterparty by ID, using the specific verb 'retrieves' and naming the resource. This distinguishes it from the list counterparty sibling tools, 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?
No guidance is provided on when to use this tool versus the list counterparty tools (e.g., counterparty_get_list_counterparties). It neither states prerequisites nor mentions alternatives, leaving the agent to infer the appropriate context from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
counterparty_get_list_counterpartiesList CounterpartiesBRead-onlyInspect
GetListCounterparties retrieves a list of counterparties with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalCount | No | |
| nextPageToken | No | |
| counterparties | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool supports 'filtering and pagination,' which is useful context, but it does not disclose behavioral details such as filter combination logic, pagination token semantics, or any rate limits. 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?
A single, front-loaded sentence: 'GetListCounterparties retrieves a list of counterparties with filtering and pagination.' No redundant wording or unnecessary 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?
The output schema and annotations provide some context (return shape, read-only safety), but the description is too brief for the tool's complex filter object. It does not clarify whether filters are combinable, what nameSearch matches, or default pagination behavior, which an agent would likely need.
Complex tools with many parameters or behaviors need more documentation. Simple 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 only mentions filtering and pagination generically. It does not explain the filter object's fields (ids, types, statuses, companyId, nameSearch) or the pageToken format, leaving the agent to rely on the schema's bare enums and names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'retrieves a list of counterparties with filtering and pagination' – a specific verb and resource, making the primary purpose clear. However, it does not distinguish this from sibling counterparty_get_list_global_counterparties, leaving scope 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?
No guidance is provided on when to use this tool versus counterparty_get_list_global_counterparties or counterparty_get_counterparty. The description implies usage through 'filtering and pagination' but offers no explicit when-to-use, exclusion, or alternative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
counterparty_get_list_global_counterpartiesList Global CounterpartiesARead-onlyInspect
GetListGlobalCounterparties performs a read-only batch lookup against the platform-wide canonical vendor registry. The filter accepts a list of provider stable IDs and/or aliases; the response returns every approved row matching ANY selector. Used by the cheap-resolve worker to short-circuit LLM enrichment for a whole batch in one RPC.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | Yes | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalCount | No | |
| nextPageToken | No | |
| globalCounterparties | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this with 'read-only batch lookup'. It adds valuable behavioral context: the filter matches 'ANY' selector and returns only 'approved rows', and the scope is the 'platform-wide canonical vendor registry'. This goes beyond the annotations, though it does not mention pagination behavior or potential truncation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, and every sentence adds information. It avoids redundancy with the schema and annotations, making it both concise and structurally effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested filter, pagination) and the presence of an output schema, the description covers the essential behavioral aspects: read-only, global scope, batch filter semantics, and OR matching. It does not explain pagination, which might be expected for a list tool, but the use case ('whole batch in one RPC') suggests it may return all matches. Overall, it is complete enough for an agent to use effectively, with minor gaps around pagination.
Complex tools with many parameters or behaviors need more documentation. Simple 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 explains the filter's key semantics: 'accepts a list of provider stable IDs and/or aliases', which covers the filter object's properties. However, it provides no additional meaning for pageSize or pageToken, leaving those parameters entirely to the schema. The description adds value for the complex filter but does not fully compensate for all 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 performs a 'read-only batch lookup' against the 'platform-wide canonical vendor registry', which distinctly differentiates it from sibling tools like counterparty_get_counterparty (singular) and counterparty_get_list_counterparties (non-global). It also specifies the OR-matching semantics ('matching ANY selector'), 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 a concrete use case: 'Used by the cheap-resolve worker to short-circuit LLM enrichment for a whole batch in one RPC.' This implies when to use the tool, but it does not explicitly name alternatives or state when not to use it. The batch and platform-wide context is clear, but explicit exclusion guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datatable_get_datatable_fieldsGet Datatable FieldsARead-onlyInspect
Resolve all fields bound to a datatable for a company (platform + company bindings).
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | UUID value wrapper. | |
| datatableCode | Yes | Lowercase kebab-case code identifier. | |
| includeOptions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| fields | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description need not reiterate safety. It adds the context that both platform and company bindings are resolved, which is useful. However, it does not disclose other behavioral details such as how includeOptions affects output or whether there are pagination or error 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 a single sentence, extremely concise, and front-loaded with the verb 'Resolve' and the resource. No wasted words; every phrase 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 is a read-only get operation with an output schema and annotations, the description provides adequate context for basic usage. However, the ambiguous includeOptions parameter and lack of further guidance on when companyId is needed leave some gaps, though the output schema likely fills return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover two of three parameters (companyId and datatableCode), but includeOptions lacks a description. The tool description does not add any parameter-specific meaning, leaving includeOptions ambiguous. Schema coverage is 67%, so baseline is 3; no extra value from description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Resolve all fields bound to a datatable for a company.' It specifies the resource (fields bound to a datatable) and adds scope ('platform + company bindings'), making it distinct from sibling tools like datatable_get_list_datatables or field_get_list_fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving fields associated with a datatable for a company, but does not explicitly mention when to use it over alternatives or provide exclusions. There is no guidance on when not to use it or which sibling tool might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
datatable_get_list_datatablesList DatatablesARead-onlyInspect
List datatables (platform + a company's own).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| datatables | No | |
| totalCount | No | |
| nextPageToken | No |
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 description does not need to restate safety. It adds the useful context that both platform and company-owned datatables are listed, but it does not disclose pagination behavior or data-shape details beyond what the schema implies. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that gets directly to the point. It contains no unnecessary words or repetition, 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?
The tool is a straightforward read-only list operation with annotations covering safety and an output schema for return values. The description adequately states what the tool lists and its scope. The main gap is lack of detail about filter semantics and pagination defaults, but these are not critical for basic usage. Overall, the description is complete enough for an agent to invoke the tool correctly in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for explaining parameters, but it does not. The parameter names (filter, pageSize, pageToken) are somewhat self-explanatory, and the description's scope note (platform + company's own) hints at filter semantics. However, the nested wrapper structure and their exact usage remain unclear, so parameter meaning is under-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?
The description clearly states that the tool lists datatables and specifies the scope as both platform and a company's own datatables. This also distinguishes it from sibling tools like datatable_get_datatable_fields and datatable_get_related_datatables, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the primary use case by naming the resource and scope, but it provides no explicit guidance on when to use this tool versus alternatives. There are no exclusion criteria or pointers to sibling tools, so the usage context is only inferred from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
documents_create_documentCreate DocumentAInspect
Create a finished document for a company from a template slug and field values.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| companyId | Yes | UUID value wrapper. | |
| templateSlug | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| documentId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states that the tool creates a finished document, which is a mutation, but annotations only provide openWorldHint=false and destructiveHint=false, which do not conflict. The description does not discuss prerequisites (e.g., that templateSlug must reference an existing template), potential side effects, or required permissions. No contradiction exists, but the description adds little beyond the basic creation intent.
Agents need to know what a tool does to the world before calling 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 of 16 words, front-loaded with the action and result. It contains no redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters, one required, with a nested companyId object and an output schema. While the description captures the core purpose, it omits practical details such as how to obtain a valid templateSlug, whether fields are required, and what constitutes a 'finished' document. Given the output schema covers returns and annotations cover safety, the description is minimally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (companyId has a wrapper description), and fields and templateSlug lack descriptions. The description mentions 'template slug and field values', which maps to templateSlug and fields, but it does not clarify the expected structure of the fields array, the relationship between field keys and template placeholders, or the meaning of companyId beyond 'for a company'. This provides some semantic mapping but is insufficient given the low 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 uses the verb 'Create' and identifies the resource as 'a finished document for a company', with source materials 'template slug and field values'. This clearly distinguishes it from sibling tools like documents_get_document and documents_list_documents, which are retrieval 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 the tool is for generating a completed document from a template, but it does not explicitly state when to use it over alternatives or list any exclusions. It does not refer to related tools like document_template_list_templates for finding valid slugs, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
documents_create_from_user_templateCreate Document From User TemplateAInspect
Create a finished document by filling a company user-uploaded template with collected field values. Does not modify the original upload.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | ||
| companyId | Yes | UUID value wrapper. | |
| userTemplateId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| documentId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=false, but the description adds a specific safety guarantee: 'Does not modify the original upload.' This goes beyond the annotation by explicitly stating what side effect is avoided. While other behaviors (e.g., permissions) are not mentioned, the key non-destructive trait is well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. The first states the core action, and the second adds an important side-effect note. Every word contributes, with no redundancy or extraneous 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?
With an output schema present and annotations covering safety, the description sufficiently explains the tool's purpose and a key side-effect. It does not discuss optionality of fields or prerequisites, but for a targeted creation tool this is adequate and contextually complete enough for an agent to proceed.
Complex tools with many parameters or behaviors need more documentation. Simple 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 67%, with the two UUID wrappers documented. The description adds meaning for the fields parameter by referring to 'collected field values,' which aligns with the schema's key/value array. However, it doesn't clarify that fields is optional or detail the expected structure beyond what the schema already shows, so only moderate added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a finished document') and distinguishes the resource as a 'company user-uploaded template' filled with 'collected field values.' This directly differentiates it from generic document creation tools like documents_create_document, making the primary purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys an obvious use case: when you have a user template and field values to fill it. It does not explicitly name alternatives or state when not to use the tool, but the phrase 'filling a company user-uploaded template' gives clear contextual guidance without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
documents_get_documentGet DocumentARead-onlyInspect
Fetch one document's metadata and its related signed/unsigned set.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| documentId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| related | No | |
| document | No |
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 known. The description adds the scoping detail of fetching metadata plus signed/unsigned set, but does not address permissions, rate limits, or other behavioral aspects beyond the annotations. 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 with zero waste. It efficiently conveys the verb, resource, and 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 simple read tool with a well-defined output schema and clear annotations, the description is sufficient. It identifies what is fetched (metadata and related signed/unsigned set) and the schema covers parameters. It lacks some contextual details like error conditions, but these are not critical for this straightforward retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage, but the descriptions are generic ('UUID value wrapper'). The tool description adds minimal meaning by indicating the document's metadata is fetched, implying documentId identifies the document. Baseline 3 applies given high schema coverage, though the parameter descriptions are not semantically rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches one document's metadata and its related signed/unsigned set. The verb 'Fetch' and specific resource (document metadata plus signed/unsigned set) distinguish it from sibling list/update document 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 implies when to use this tool (when you need a single document's metadata and related signed/unsigned set), but it does not explicitly provide alternatives or exclusions compared to list/update document tools. Sibling tool names like documents_list_documents suggest the distinction, but the description itself lacks direct guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
documents_get_user_templateGet User TemplateARead-onlyInspect
Fetch one user-uploaded template including Vision-detected fillable fields.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| templateId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| template | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful context by specifying that the template includes 'Vision-detected fillable fields,' enriching the agent's understanding of what the tool returns. It does not contradict annotations and adds detail beyond the structured safety 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 a single focused sentence that front-loads the action and resource. Every word contributes meaning, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low parameter complexity, the presence of an output schema, and annotations covering safety behavior, the description provides the key distinguishing context (Vision-detected fields). No significant information appears missing for a straightforward get-by-ID operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters (companyId and templateId) with descriptions like 'UUID value wrapper,' so coverage is 100%. The description does not add parameter-specific meaning, but the schema already provides sufficient documentation for the two simple UUID wrappers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Fetch' with resource 'one user-uploaded template' and adds the distinctive detail 'including Vision-detected fillable fields.' This clearly differentiates from sibling tools like documents_list_user_templates (listing) and documents_get_document (fetching a document, not a template).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but provides no explicit guidance on when to choose it over alternatives such as documents_list_user_templates or documents_create_from_user_template. Usage is implied by the name and phrasing, but no exclusions or alternative references are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
documents_list_documentsList DocumentsARead-onlyInspect
List a company's documents, filtered by type, source, category, or template.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| documents | No | |
| totalCount | No | |
| nextPageToken | No |
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 read-only nature is covered. The description adds context about filtering capability but does not disclose pagination behavior, rate limits, or any non-obvious side effects. It is consistent with annotations and provides modest added transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action and key filter options. Every word adds value, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested filter object, enums, pagination) and the lack of parameter descriptions in the schema, the description is too sparse. It does not explain pagination semantics, whether filters combine with AND/OR, or that companyId is required inside the filter. The existence of an output schema helps, but the input-side context remains 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 names filter dimensions (type, source, category, template) but omits sourceDocumentId and the pagination parameters pageSize/pageToken, which are critical for a list endpoint. The requirement of companyId is only implied by 'a company's documents', leaving significant gaps for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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') with a clear resource ('a company's documents') and enumerates filter dimensions ('type, source, category, or template'). This distinguishes it from sibling tools like documents_get_document (single retrieval) and documents_list_user_templates (user templates rather than company documents).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for listing multiple company documents with optional filters, but it does not explicitly state when to use this over alternatives like documents_get_document or when not to use it. There is no mention of exclusions or alternative tool references, so usage guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
documents_list_saved_signaturesList Saved SignaturesARead-onlyInspect
List the caller's saved signatures for the selected company.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| savedSignatures | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds scoping ('caller's', 'selected company') but doesn't disclose additional behaviors like permission requirements or result ordering. Consistent with 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, no redundancy, front-loaded with 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?
Given one parameter, output schema, and read-only annotations, description is sufficient. Minor gap: doesn't distinguish from signature envelope listing siblings, but not essential for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter companyId is described in schema as 'UUID value wrapper,' which lacks semantic meaning. Description clarifies it identifies the selected company, providing value beyond the schema. Baseline 3 elevated due to description compensating for weak schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'List' with resource 'caller's saved signatures' scoped to 'selected company.' This clearly distinguishes from sibling tools like signature_get_list_signature_envelopes by focusing on saved signatures rather than envelopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative differentiation. It doesn't mention when to prefer this over signature_get_list_signature_envelopes or other document/signature tools. Only implied usage is 'list saved signatures.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
documents_list_user_templatesList User TemplatesARead-onlyInspect
List company-scoped user-uploaded templates (Use your own template). Separate from Lovie's builtin catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | No |
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 known. The description adds scoping context (company-scoped, user-uploaded) but does not describe other behaviors like pagination or return format. With annotations covering the core safety aspects, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling 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 sentences with no unnecessary words. It front-loads the core action and immediately provides the key differentiation from the builtin catalog. 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 listing tool with one parameter, output schema, and annotations, the description is complete. It covers what is listed, the scope, and the distinction from builtin templates. No additional behavioral details are needed given the structured data available.
Complex tools with many parameters or behaviors need more documentation. Simple 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 describes companyId as a 'UUID value wrapper.' The description adds meaning by saying the list is 'company-scoped,' which clarifies that companyId represents the company whose templates to list. This goes beyond the schema's minimal wrapper description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists company-scoped user-uploaded templates with the specific verb 'List' and resource. It also distinguishes from Lovie's builtin catalog, which differentiates it from sibling tools like document_template_list_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 by noting these are user-uploaded templates and explicitly separates them from the builtin catalog. However, it does not name the alternative tool for builtin templates, so the guidance is not as explicit as it could be. Still, it provides a clear exclusion and implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
documents_update_documentUpdate DocumentAInspect
Rename a stored document by updating its title. Company-scoped: only the owning company's members may rename.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| companyId | Yes | UUID value wrapper. | |
| documentId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the sparse annotations: it clarifies that the operation is non-destructive (renaming a title) and discloses an authorization constraint (company membership). It does not contradict the 'destructiveHint: false' annotation, and the closed-world annotation is not affected.
Agents need to know what a tool does to the world before calling 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-loads the core action, and adds a key scoping detail without any redundant filler. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 and the simplicity of the operation, the description covers the essential purpose and a key authorization constraint. It falls short of full completeness by not addressing the optional-title schema mismatch or mentioning potential error conditions (e.g., document not found, permission denied).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that 'title' is the new title being set, and 'companyId' indicates the owning company. However, the schema marks title as optional despite the description implying it is necessary for renaming, and the ID parameters only have generic 'UUID value wrapper' descriptions, leaving some ambiguity about required 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 ('rename') and resource ('document') and clearly states the operation is about updating the title. It distinguishes this from sibling document tools like create, get, and list by focusing on the rename action and adding company-scoping context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says the tool is for renaming an existing document and explicitly notes the company-scoped restriction (only owning company's members may rename). It implies when to use it (when the title needs changing) but does not explicitly contrast with alternatives like create or list, or mention conditions like content updates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
document_template_list_templatesList Document TemplatesARead-onlyInspect
List available legal document templates (YAML catalog).
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| templates | No |
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 safety is covered. The description adds the 'YAML catalog' format hint, but provides no information on pagination, authentication, or other behaviors. 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?
One concise sentence, front-loaded with the verb and resource. No redundant wording or unnecessary 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?
The tool is simple and has an output schema, but the missing parameter explanations and ambiguous 'YAML catalog' reference leave gaps. Annotations cover safety, but the description does not fully round out the tool's usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has two parameters (query, category) with no descriptions (0% coverage). The description does not explain these parameters at all, leaving the agent to infer their meaning from names alone. This fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('available legal document templates'), with the added detail of 'YAML catalog'. This clearly distinguishes it from sibling tools like document_template_resolve_template and documents_list_documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 browsing available templates but does not explicitly state when to choose this over alternatives, nor does it mention exclusions. It provides minimal context for sitational selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
document_template_resolve_templateResolve Document TemplateAInspect
Find the best template match for a natural-language document request. Returns the template slug and its field definitions to collect before DocumentService.CreateDocument.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| template | No | |
| alternatives | No |
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 discloses that the tool returns 'the template slug and its field definitions' and that it is meant to be used before creating a document. The annotations (openWorldHint: false, destructiveHint: false) offer limited information, so the description's disclosure of output and sequencing is useful. 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 concise sentences that immediately state the primary purpose, then add return value and usage context. No wasted words; it is front-loaded with the core function and efficiently communicates essential 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 tool with one parameter and a straightforward purpose, the description is quite complete. It covers the input type, the output (template slug and field definitions), and its place in the workflow (before CreateDocument). The output schema exists, so return values are further documented; the description still adds useful contextual hooks. Slight lack of alternative usage or error conditions, but acceptable for this simplicity level.
Complex tools with many parameters or behaviors need more documentation. 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 provides no description for the 'query' parameter (0% coverage), so the description must compensate. It does so by indicating that the query is a 'natural-language document request,' giving the parameter clear purpose. While it doesn't mention constraints like max length or provide examples, it sufficiently explains what the parameter represents for a single-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 states the tool's function: 'Find the best template match for a natural-language document request.' It specifies the action (find), the resource (template match), and the input type (natural-language request). It distinguishes itself from siblings like document_template_list_templates by focusing on matching/selection rather than mere listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by mentioning 'before DocumentService.CreateDocument,' indicating when this tool should be used (as a precursor to document creation). However, it does not explicitly state alternatives or exclusions, such as 'use list_templates to browse all templates' or 'do not use if you already know the template slug.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
field_get_fieldGet FieldARead-onlyInspect
Get a single field by ID or code
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | UUID value wrapper. | |
| code | No | Lowercase kebab-case code identifier. | |
| companyId | No | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| field | No |
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 safe read behavior is covered. The description adds that it retrieves a single field by ID or code, but doesn't disclose other behavioral traits like what happens when both id and code are provided, whether companyId filters results, or return format details. With annotations present, the description adds minimal extra context beyond the lookup keys.
Agents need to know what a tool does to the world before calling 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 sentence, concise and front-loaded with the verb 'Get' and resource 'single field'. Every word contributes; no fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with full schema coverage and an output schema, the description is mostly sufficient. It could improve by noting that id and code are alternative lookups (perhaps mutually exclusive) and the role of companyId for scoping, but given the richness of schema annotations, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter described (UUID wrapper, lowercase kebab-case code). The description confirms the two primary lookup identifiers (id or code) but doesn't add meaning beyond the schema. The optional companyId is not addressed in the description, though the schema describes it as a UUID wrapper. Baseline 3 is appropriate as 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 'Get a single field by ID or code' uses the specific verb 'get' with the resource 'single field' and identifies the two lookup keys (ID or code). It clearly distinguishes this from sibling tools like field_get_list_fields (fetching multiple fields) and field_get_field_option (fetching options).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 you use this tool when you need one field and know its ID or code. However, it doesn't explicitly state when not to use it (e.g., if you need multiple fields, use field_get_list_fields) or mention any prerequisites like company context, though the presence of an optional companyId parameter hints at scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
field_get_field_optionGet Field OptionARead-onlyInspect
Get a single field option by ID or code
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | UUID value wrapper. | |
| code | No | Lowercase kebab-case code identifier. | |
| fieldId | Yes | UUID value wrapper. | |
| companyId | No | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| option | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds that the tool can retrieve by ID or code, which is a useful behavioral nuance, but it does not disclose error handling, return format, or other behavioral traits. 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, short sentence with no redundant words. It is front-loaded and every word contributes meaning, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple read-only nature, the presence of a complete schema (100% parameter coverage), an output schema, and annotations, the description is sufficient. It clearly indicates the tool's purpose and lookup methods, with no significant gaps for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions cover all four parameters at 100%, but the description adds the semantic that 'id' and 'code' are alternative lookup keys, clarifying their roles. This goes beyond the schema's standalone type descriptions and helps an agent understand how to pass 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 'Get a single field option by ID or code' clearly states the specific verb (get), resource (field option), and scope (single), distinguishing it from sibling tools like field_get_list_field_options and field_suggest_field_options. It explicitly mentions the lookup methods (ID or code), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. However, the singular 'single' and the lookup by ID/code imply that this is for retrieving a specific option rather than listing or suggesting options, which gives some contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
field_get_list_field_optionsList Field OptionsBRead-onlyInspect
List field options with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| filter | Yes | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| options | No | |
| totalCount | No | |
| nextPageToken | No |
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 known. The description adds little beyond that: 'List' is consistent with read-only, and 'filtering and pagination' is already evident from the schema parameters. No additional behavioral traits like pagination defaults, resource boundaries, or response formatting are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff. It is front-loaded with the core action and resource. However, it is so brief that it sacrifices informativeness, but conciseness itself is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 filter object (6 subfields, required fieldId) and pagination parameters, a 6-word description is inadequate. It does not explain the meaning of subfields, sorting behavior, or how this tool relates to other field-related tools. The output schema exists but cannot compensate for missing usage 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 0%, so the description must compensate. It only generically mentions 'filtering and pagination', which hints at the roles of filter, pageSize, and pageToken but provides no details about the filter structure (fieldId, ids, parentId, companyId, rootsOnly, includePlatform). This is insufficient for understanding required and optional 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 verb 'List' and the resource 'field options', which distinguishes it from siblings like field_get_field_option (singular get) and field_suggest_field_options (suggest). It also mentions filtering and pagination, giving a specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys that this tool is for listing field options with filtering and pagination, providing clear context. However, it does not explicitly mention when to use this over alternatives such as field_suggest_field_options or field_get_field_option, nor does it list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
field_get_list_fieldsList FieldsBRead-onlyInspect
List fields with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No | ||
| includeOptions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| fields | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, conveying the safe read-only nature. The description adds no behavioral nuance beyond filtering and pagination, which are already visible in the schema, so it does not go beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word adds meaning, making it highly concise 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?
Despite an output schema, the tool has a complex nested filter object with four parameters and multiple enums. The one-line description is too sparse to address this complexity, lacking examples, default behaviors, or caveats, making it incomplete for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate, but it only mentions 'filtering and pagination' without explaining filter sub-fields, pageToken mechanics, or includeOptions. The schema itself contains rich enum details, but the description does not help the agent select or interpret parameter values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 the verb 'List' with the resource 'fields', immediately conveying a read operation to retrieve multiple fields. It also mentions filtering and pagination, which distinguishes it from sibling tools like field_get_field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 listing fields with optional filters and pagination, but does not explicitly state when to prefer this over field_get_field or exclude any cases. No alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
field_suggest_field_optionsSuggest Field OptionsCInspect
SuggestFieldOptions asks the LLM to propose dropdown option labels for a SELECT-typed field. Synchronous unary call.
| Name | Required | Description | Default |
|---|---|---|---|
| fieldName | No | ||
| existingOptions | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| suggestions | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide openWorldHint=false and destructiveHint=false, but the description adds little beyond 'Synchronous unary call.' It hints at LLM involvement ('asks the LLM') but does not explain non-determinism, latency, or side effects. This leaves the agent with an incomplete understanding of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two short sentences that front-load the core purpose. There is no redundant information, though 'Synchronous unary call' is a minor technical detail that adds little 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, but the description lacks critical context: no usage recommendations, no parameter semantics, and no explanation of how to identify the field. The annotations and schema are sparse, so the description does not adequately equip an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not compensate by explaining fieldName or existingOptions. The parameter names are somewhat intuitive, but the description fails to specify what values are expected or how they map to the SELECT field 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 tool proposes dropdown option labels for a SELECT-typed field, which is a specific verb+resource. However, it does not explicitly distinguish it from sibling tools like field_get_list_field_options, and the phrase 'asks the LLM' introduces ambiguity about what the tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The only extra detail is 'Synchronous unary call,' which is a technical specification, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
field_value_get_list_entity_field_valuesList Entity Field ValuesARead-onlyInspect
List an entity's field values (detail/edit/admin flows only — N+1 over a grid).
| Name | Required | Description | Default |
|---|---|---|---|
| filter | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| values | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true annotation, the description adds a meaningful behavioral caveat: the N+1 query pattern over a grid. This warns the agent about performance implications. With annotations already covering safety, this extra context earns a strong 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, front-loaded sentence with a parenthetical caveat. Every word adds value; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to explain return values. It covers the core purpose and the key usage caveat. However, it could have briefly hinted at the filter structure to mitigate the poor parameter documentation; nevertheless, the essential context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the filter object or its required fields (companyId, datatableCode, entityId, fieldIds). The nested schema has only minimal 'UUID value wrapper' labels, so the description must compensate—but it provides no parameter-level guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List an entity's field values') and adds scoping context ('detail/edit/admin flows only') that clearly distinguishes this from sibling field/datatable metadata tools. It immediately identifies what the tool operates on and its intended context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical provides explicit context on when to use this tool ('detail/edit/admin flows only') and a strong warning against using it in grid scenarios ('N+1 over a grid'). It does not name an alternative tool, but the guidance clearly implies a better-suited tool exists for grid flows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_acknowledge_warningsAcknowledge WarningsAInspect
Acknowledges entity-type warnings raised when the user chooses an entity type against the recommendation (e.g. an LLC despite indicators pointing to C-Corp). Required before proceeding whenever warnings were raised while setting the company type.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. | |
| warningTypes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | No | |
| formationId | No | UUID value wrapper. |
| acknowledgedWarnings | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint: false and openWorldHint: false, but no readOnlyHint. The description adds useful context about the tool being a prerequisite for progression, but doesn't describe side effects, idempotency, or what happens after acknowledgement. It doesn't 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 a single sentence that front-loads the core action, includes an example, and states a requirement. It's slightly dense but every clause adds value, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple acknowledgement action with an output schema, the description covers what and when, but leaves warningTypes values unspecified. Overall, it's adequate for an agent to know when to call it, though details on warning types are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers formationId with 'UUID value wrapper' but warningTypes has no description. The tool description doesn't explain what strings warningTypes expects (e.g., warning codes) or how they relate to the warnings mentioned. At 50% schema coverage, the description should compensate but doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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: acknowledging entity-type warnings. It uses a specific verb ('acknowledges') and identifies the resource ('entity-type warnings'), distinguishing it from siblings like formation_set_company_type or formation_create_formation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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: 'Required before proceeding whenever warnings were raised while setting the company type.' This tells the agent when the tool must be invoked, though it doesn't explicitly state alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_append_conversation_entryAppend Conversation EntryAInspect
AppendConversationEntry atomically appends one or more chat entries to the formation's conversation_history. Owner-scoped.
| Name | Required | Description | Default |
|---|---|---|---|
| entries | No | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| formation | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as non-destructive and not open-world, and the description adds valuable context by stating the operation is atomic and owner-scoped. It does not, however, describe failure modes, idempotency, or return value details, though the output schema may cover returns.
Agents need to know what a tool does to the world before calling 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 action and resource, and every word carries meaning. It efficiently conveys the core operation, atomicity, and scope 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?
The tool has a simple operation with an output schema, so the description need not explain return values. It covers the essentials: what is appended, where, and ownership scope. It lacks explicit mention of the required formationId parameter and constraints like min/max items, but these are available in the schema. Overall, it is sufficient for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only formationId has a description). The description adds that entries are 'chat entries' and that one or more can be appended, but it does not explain the individual fields (role, tool, content, timestamp) or the UUID wrapper structure. This partially compensates for the schema gap but leaves field semantics to the agent's inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 appends chat entries to the formation's conversation_history, using a specific verb+resource structure. It distinguishes itself from other formation_* tools by focusing on appending conversation entries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 'Owner-scoped' as a permission constraint but provides no explicit guidance on when to use this tool versus alternatives. It does not name sibling tools or list exclusions, leaving the agent to infer usage context from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_approve_certificateApprove CertificateAInspect
Records the user's approval of the reviewed formation details (the certificate checkpoint). This only records approval — it files NOTHING with any state and charges NOTHING, so it is always safe to call, including during testing; never refuse or stop short because it is a 'test'. Call it once the user has reviewed the details and confirmed they are correct. As soon as this returns, call formation_get_payment_link with the SAME formation_id. Formation is a single one-time payment — there is NO subscription and NO monthly/annual choice, so do NOT ask the user to pick a billing cadence. Do NOT start a new formation or re-run earlier steps.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| nextStep | No | |
| approvedAt | No | |
| formationId | No | UUID value wrapper. |
| certificateId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the sparse annotations (openWorldHint false, destructiveHint false), the description discloses key non-obvious behaviors: 'This only records approval — it files NOTHING with any state and charges NOTHING, so it is always safe to call, including during testing; never refuse or stop short because it is a test.' This adds critical safety context and prevents the agent from hesitating on a harmless call. 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 longer than average but every sentence adds critical operational context: safety, sequencing, next step, billing cadence, and what not to do. It is front-loaded with the core purpose and avoids fluff. The length is warranted given the tool's role in a multi-step flow and the need to prevent common mistakes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (one nested param, output schema present) and the confusing area of formation approvals, the description is fully complete. It covers when to call, safety, the immediate follow-up action, billing cadence disambiguation, and explicit prohibitions. The output schema handles return-value explanation, so no gap remains.
Complex tools with many parameters or behaviors need more documentation. 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 fully covers the structural detail of formationId (nested UUID object), so baseline is 3. The description adds relational semantics by emphasizing 'with the SAME formation_id' and linking it to the subsequent payment link call, clarifying that this ID must match the reviewed formation and should not be a new one. This goes beyond simple schema but is not a complete parameter-by-parameter breakdown.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Records the user's approval of the reviewed formation details (the certificate checkpoint).' It clearly distinguishes from sibling tools by explicitly stating it files NOTHING and charges NOTHING, differentiating it from payment/purchase tools like formation_confirm_payment and formation_purchase_formation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: 'Call it once the user has reviewed the details and confirmed they are correct.' Also gives a direct alternative/next step: 'As soon as this returns, call formation_get_payment_link with the SAME formation_id.' It includes clear exclusions: 'do NOT ask the user to pick a billing cadence' and 'Do NOT start a new formation or re-run earlier steps.' This is exemplary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_check_nameCheck NameBRead-onlyInspect
CheckName checks company name availability in the selected state
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | |
| companyName | No | |
| formationId | No | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe read operation (readOnlyHint: true, destructiveHint: false), so the description does not need to repeat that. It adds the context of 'selected state' but does not explain how the state is determined or what the response format looks like. For a simple read tool with good annotations, this is adequate but not enriched.
Agents need to know what a tool does to the world before calling 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 immediately states the tool's action and scope. It is concise, front-loaded, 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?
Given the tool's low complexity (one parameter) and the presence of an output schema, the description is relatively complete for basic usage. However, the existence of a sibling tool with nearly identical functionality creates ambiguity that the description fails to resolve. The relationship to formation-related tools and the meaning of 'selected state' remain unclear.
Complex tools with many parameters or behaviors need more documentation. 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 with a description ('UUID value wrapper.'), giving 100% schema description coverage. The tool description adds no additional meaning about the formationId parameter, so it does not exceed the baseline. The parameter's role is implied by the tool name but not explicitly clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: checking company name availability in a selected state. It uses a specific verb ('checks') and resource ('company name availability'), making the core function clear. However, it does not distinguish this tool from the sibling 'check_company_name_availability', which appears to serve the same purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It only states what the tool does, leaving the agent to infer the correct context. There is no mention of prerequisites, exclusions, or relationship to the formation workflow or the closely related sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_claim_demo_formationsClaim Demo FormationsAInspect
ClaimDemoFormations reassigns formations created during a demo session (under a hardcoded demo user) to a newly-signed-up real user. This is a cross-user mutation; the server enforces reviewer/admin/service role.
| Name | Required | Description | Default |
|---|---|---|---|
| toUserId | Yes | UUID value wrapper. | |
| sessionId | Yes | UUID value wrapper. | |
| fromUserId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| claimed | No | |
| formationId | No | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the sparse annotations (openWorldHint false, destructiveHint false), the description discloses it is a 'cross-user mutation' and that the server enforces 'reviewer/admin/service role'. This adds meaningful behavioral context about the mutation nature and permission requirements, which is not evident from annotations alone. 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 concise sentences with the main action in the first sentence and important context in the second. There is no filler or redundancy; 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 mutation tool with an output schema and minimal annotations, the description sufficiently covers purpose, context, required role, and the cross-user nature. The output schema likely handles return value details, so the description is complete enough for an agent to know when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides 'UUID value wrapper' descriptions, so the names carry the meaning. The description adds semantic context by explaining that fromUserId is the hardcoded demo user, toUserId is the real user, and sessionId identifies the demo session. This helps the agent map parameters to their roles, though not exhaustively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('reassigns') and resource ('formations created during a demo session') and places it in a clear context ('to a newly-signed-up real user'). This distinguishes it from the many sibling formation_* tools, which have different purposes. The action and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for when this tool is appropriate (claiming demo formations for a newly signed-up user) and notes server-enforced roles. It does not explicitly list alternative tools or state 'don't use for X', but the specificity effectively implies the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_confirm_paymentConfirm PaymentADestructiveInspect
Verifies with Stripe that payment actually completed and, on success, advances the formation to filing. Usually unnecessary — payment auto-confirms via webhook once the user pays. Only call this if the user explicitly returns and says they have paid. A user saying they paid is NOT proof — only a successful result here confirms payment. If it is not successful, do not tell the user payment succeeded or proceed to filing; ask them to complete checkout and retry.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. | |
| stripeSessionId | No | ||
| paymentConfirmed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| message | No | |
| formationId | No | UUID value wrapper. |
| paymentStatus | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context about the irreversible advancement to filing and the necessity of a successful result before proceeding. Does not contradict the destructiveHint annotation, and provides clear failure-handling instructions. However, it does not elaborate on exactly what 'advances' implies (e.g., irreversible state change), so it stops short of fully disclosing side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: the first states the core function, the second gives the typical alternative, the third warns about user claims, and the fourth prescribes failure behavior. No redundant phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully explains when and how to invoke, along with success/failure behavior, and the output schema exists to cover return values. The only missing piece is parameter guidance, but the tool's complexity is moderate and the description covers the main decision logic.
Complex tools with many parameters or behaviors need more documentation. 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 address the parameters; only formationId is described in the schema, while stripeSessionId and paymentConfirmed remain undocumented. Given schema coverage is only 33%, the description should compensate but 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?
Clearly states its function: verifying with Stripe that payment completed and advancing the formation to filing on success. This verb+resource combination distinguishes it from other formation tools like formation_get_payment_link or formation_purchase_formation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: only if the user explicitly returns and says they have paid, while noting the usual webhook auto-confirmation makes it generally unnecessary. It also provides a clear exclusion: 'A user saying they paid is NOT proof'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_create_formationCreate FormationCInspect
CreateFormation creates a formation with full data (MCP/bulk use case)
| Name | Required | Description | Default |
|---|---|---|---|
| formation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| formationId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With only openWorldHint and destructiveHint annotations, the description carries the burden of disclosing behavioral traits. It does not mention side effects, idempotency, validation requirements, or downstream actions triggered by creation. The phrase 'full data' hints at input expectation but fails to explain what happens after creation or any 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 a single concise sentence with no redundant wording. It is front-loaded with the action and resource, making it easy to scan. While it is terse, it contains no filler and earns a high score for 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?
Despite the presence of an output schema, the description is inadequate for a tool with a highly complex nested input schema. It does not explain required fields, validation behavior, error conditions, or the intended workflow context. The 'MCP/bulk use case' hint and 'full data' cue are the only context provided, which is insufficient for an agent to invoke this tool correctly without further guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds only the vague 'full data' clue, which does not clarify which nested fields are required, what formats are expected, or how the 'formation' object should be structured. The schema itself is large and mostly undocumented, leaving the agent with insufficient guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a formation, using a specific verb and resource. The phrase 'with full data (MCP/bulk use case)' adds a scoping hint that distinguishes it from other formation creation tools like formation_start_formation, though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of 'MCP/bulk use case' implies that this tool is intended for bulk or MCP-driven creation flows, providing some usage context. However, there is no explicit guidance on when to use this tool versus alternatives such as formation_start_formation or formation_update_formation, and no exclusionary conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_describe_businessDescribe BusinessARead-onlyInspect
Analyzes a business description and recommends the best entity type (LLC or C-Corp) with a confidence score. Call this once you understand what the user is building. When the recommendation is LLC or confidence is not high, mention that Lovie offers a free LLC-to-C-Corp conversion later.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | Free-form description (max 5000 chars). | |
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| indicators | No | |
| formationId | No | UUID value wrapper. |
| recommendation | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description does not need to repeat that. It adds useful behavioral context: the tool returns a recommendation and confidence score, and instructs the agent to mention LLC-to-C-Corp conversion when confidence is low. 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 that are front-loaded with the core purpose, followed by a practical usage instruction. No wasted words; 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, parameters are fully described in the schema, and an output schema exists (so return values need not be explained). The description covers when to call it and how to behave based on the result, 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?
Schema covers 100% of parameters with descriptions ('Free-form description (max 5000 chars)' and 'UUID value wrapper'). The description adds no additional parameter-specific semantics, relying on the schema's high coverage. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: analyzing a business description to recommend an entity type (LLC or C-Corp) with a confidence score. It uses a specific verb ('Analyzes') and resource ('business description'), and the output is uniquely defined, distinguishing it from sibling formation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit timing guidance: 'Call this once you understand what the user is building.' This implies the tool should be used after gathering context, but it does not explicitly mention when not to use it or name alternative tools. Still, the usage 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.
formation_extract_cap_tableExtract Cap TableAInspect
Runs vision OCR on an uploaded cap table file and returns the extracted rows without persisting them. Each row may include a vesting schedule (vesting_start_date / vesting_total_months / vesting_cliff_months) for service equity held by founders, employees, and advisors. PRESERVE these vesting fields and pass them through to RecordCapTableInvestment when creating each holding — do not drop them or record such holdings as fully vested. Investor instruments (SAFE, preferred) carry no vesting.
| Name | Required | Description | Default |
|---|---|---|---|
| mimeType | No | ||
| formationId | Yes | UUID value wrapper. | |
| sourceS3Uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| warnings | No | |
| formationId | No | UUID value wrapper. |
| sourceS3Uri | No | |
| totalShares | No | |
| ocrConfidence | No | |
| extractedShareholders | No | |
| totalOwnershipPercentage | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states that extraction is not persisted, which is key behavioral information not covered by the annotations (which only indicate non-destructive and closed-world). It also discloses the presence of vesting fields and instructs preservation, adding meaningful context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. It front-loads the core action, then provides crucial downstream instructions about preserving vesting fields. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 skips return-value details while covering the key workflow: extraction, non-persistence, and downstream passing to RecordCapTableInvestment. It lacks parameter-level detail and alternative tool references, but overall it is fairly complete for an extraction 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 only 33%, and the description does not compensate. It never names 'formationId', 'mimeType', or 'sourceS3Uri', nor explains how to specify the file. The phrase 'uploaded cap table file' vaguely implies a file parameter but gives no concrete mapping to schema fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs vision OCR on a cap table file and returns extracted rows without persisting them, using a specific verb and resource. However, the sibling tool 'formation_extract_cap_table_ocr' is nearly identical in name and likely purpose, and the description does not differentiate between 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 provides clear context for when to use the tool (when an uploaded cap table file needs parsing) and gives downstream guidance to pass vesting fields to RecordCapTableInvestment. It does not explicitly mention when not to use it or name alternative tools, but the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_extract_cap_table_ocrExtract Cap Table OCRAInspect
Runs vision OCR on an uploaded cap table for the active company and returns the extracted rows without persisting them. Each row may include a vesting schedule (vesting_start_date / vesting_total_months / vesting_cliff_months) for service equity held by founders, employees, and advisors. PRESERVE these vesting fields and pass them through to RecordCapTableInvestment when creating each holding — do not drop them or record such holdings as fully vested. Investor instruments (SAFE, preferred) carry no vesting.
| Name | Required | Description | Default |
|---|---|---|---|
| mimeType | No | ||
| companyId | Yes | UUID value wrapper. | |
| sourceS3Uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| warnings | No | |
| sourceS3Uri | No | |
| totalShares | No | |
| ocrConfidence | No | |
| extractedShareholders | No | |
| totalOwnershipPercentage | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the operation does not persist results, which is a key behavioral trait not covered by annotations. It also provides important details about vesting field preservation and notes that SAFE/preferred instruments carry no vesting, adding significant value beyond the sparse 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 core purpose. The second and third sentences provide crucial behavioral details and a direct instruction about vesting fields, each earning its place without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, nested objects, output schema), the description adequately covers purpose, non-persistence, vesting handling, and downstream usage. It does not explain the complete parameter set or error behavior, but the output schema and patterns cover some of that. The description is reasonably complete for an extraction 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 low (33%), with only companyId described. The description adds some meaning by mentioning 'uploaded cap table' (implied sourceS3Uri) and 'active company' (implied companyId), but it does not explain mimeType at all. Partial compensation for the low coverage, but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 runs vision OCR on an uploaded cap table for the active company and returns extracted rows without persisting them. This specific verb+resource combination distinguishes it from sibling tools like formation_extract_cap_table (likely non-OCR) and formation_extract_rsa_terms_ocr (specific to RSA terms).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: the tool is for extracting cap table data without persisting it, and explicitly instructs to pass vesting fields to RecordCapTableInvestment. However, it does not explicitly mention alternative tools or when not to use this tool, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_extract_rsa_terms_ocrExtract RSA Terms OCRAInspect
Runs vision OCR on an already-uploaded signed Restricted Stock Purchase/Award Agreement (RSA) PDF for the active company and returns the founder and company names plus structured terms (total_shares, unvested_shares, price_per_share, grant_date, vesting_start_date / vesting_total_months / vesting_cliff_months, acceleration_clause, repurchase_right, 83(b) status, etc.) WITHOUT persisting anything. Empty string / 0 / false means the value was not stated in the document — never fabricate. Flow: first call GetOcrUploadURL with kind=RSA and upload the PDF, then call this tool with the returned source_s3_uri. To persist the grant and link the document, pass the extracted terms and the SAME source_s3_uri to CreateCapTableAgreement with type=CAP_TABLE_AGREEMENT_TYPE_RSA — preserve the vesting fields, do not drop them.
| Name | Required | Description | Default |
|---|---|---|---|
| agentCode | No | ||
| companyId | Yes | UUID value wrapper. | |
| sourceS3Uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| rsaTerms | No | |
| warnings | No | |
| companyName | No | |
| founderName | No | |
| sourceS3Uri | No | |
| ocrConfidence | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only set openWorldHint=false and destructiveHint=false. The description adds crucial behavioral truths: 'WITHOUT persisting anything' (read-only nature) and 'never fabricate' semantics for empty values. This goes well beyond the sparse 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 dense but each element earns its place: purpose, non-persistence, missing-value semantics, and the workflow. It is front-loaded with the main action, though the long field list and flow instructions make it slightly 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 an output schema present, not listing every return field is fine. The description gives the essential workflow and post-conditions. Minor gaps: sourceS3Uri is not required in the schema but implied necessary, and agentCode is unaddressed. Overall, complete enough for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%) with only companyId described as a UUID wrapper. The description explains source_s3_uri origin (from GetOcrUploadURL) and companyId as 'active company', adding value. However, agentCode is never mentioned, leaving a semantic 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 specific action ('Runs vision OCR'), the target resource ('signed Restricted Stock Purchase/Award Agreement (RSA) PDF'), and the output (founder/company names plus structured vesting terms). It explicitly mentions non-persistence, distinguishing it from similar tools like formation_extract_cap_table_ocr or formation_extract_safe_terms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides an explicit flow: call GetOcrUploadURL first, then this tool with the returned source_s3_uri, and optionally persist via CreateCapTableAgreement. It names the exact sibling tools and states the context (after upload, before persistence), giving clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_extract_safe_termsExtract SAFE TermsAInspect
Reads a SAFE PDF and returns its terms WITHOUT saving anything. Always call this before ImportSAFE and show the result to the user for confirmation — never import a SAFE the user has not seen. Present one block per document, largest investment first, with exactly these fields in this order: investor name, investment amount, valuation cap, discount, post-money or pre-money, date, and which existing stakeholder it will be matched to (or that a new one will be created). Then state the effect on the cap table as three figures — stakeholders, SAFEs and SAFE capital now, what this import adds, and the totals after — and ask the user to confirm. Report the confidence score and every warning verbatim in plain language rather than as codes. Two things block the import until the user resolves them: a missing date (ask for it; a SAFE is never imported without one) and a company name on the document that differs from the company being imported into (say both names and ask the user to confirm it belongs here). This is the same review the web upload screen performs, so keep the wording and order identical.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. | |
| sourceS3Uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| warnings | No | |
| safeTerms | No | |
| companyName | No | |
| formationId | No | UUID value wrapper. |
| sourceS3Uri | No | |
| investorName | No | |
| ocrConfidence | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description thoroughly discloses behavioral traits beyond the sparse annotations (openWorldHint: false, destructiveHint: false): no persistence, mandatory user confirmation, exact output formatting, reporting of confidence/warnings, and two specific blocking conditions. This adds substantial context the annotations 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?
The description is dense and every sentence carries operational meaning, but it is a single long paragraph covering many distinct requirements. It is front-loaded with the core behavior, though structure could be improved with bullet points for output format and blocking conditions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 goes beyond it to specify presentation order, cap table effects, user confirmation steps, confidence reporting, and blocking conditions. It is fully sufficient for an agent to execute the tool safely and 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 provides only minimal descriptions: formationId is described as a 'UUID value wrapper' and sourceS3Uri only has a pattern. The description does not explain how these parameters relate to the SAFE PDF or the extraction process, so it fails to compensate for the partial 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 states a specific verb and resource: 'Reads a SAFE PDF and returns its terms WITHOUT saving anything.' It clearly distinguishes this extraction tool from import/save operations such as cap_table_import_safe and formation_save_cap_table_import.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is given: 'Always call this before ImportSAFE and show the result to the user for confirmation.' It also explains blocking conditions and compares behavior to the web upload review, giving the agent clear context for when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_generate_certificateGenerate CertificateAInspect
Prepares the Certificate of Formation/Incorporation as a review checkpoint before filing. This is a confirmation step, NOT a downloadable document — the official, state-issued certificate is produced only after payment and state filing, so do NOT present a download link here. Summarize the formation details for the user to review, then call formation_approve_certificate only once they explicitly confirm the details are correct.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| expiresAt | No | |
| downloadUrl | No | |
| formationId | No | UUID value wrapper. |
| certificateId | No | |
| minutesRemaining | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral traits beyond annotations: it is a review checkpoint, not a document generator, does not produce a downloadable link, and triggers a follow-up approval call. The annotation set is minimal (openWorldHint=false, destructiveHint=false), so the description carries the full behavioral burden and does so thoroughly.
Agents need to know what a tool does to the 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, then critical caveats and next-step instruction. Every clause adds value without redundancy. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present), the description fully covers the workflow, limitations, and relationship to the next step. It even includes the important 'do NOT present a download link' warning, making it complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the only parameter formationId with a description and 100% coverage. The description does not add parameter-specific details, but the baseline is 3 per the rubric when schema coverage is high. No additional semantic value is provided by the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb+resource: 'Prepares the Certificate of Formation/Incorporation as a review checkpoint before filing.' It explicitly distinguishes this tool from a download or official document generation, and the contrasting sibling formation_approve_certificate is named, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage context: 'This is a confirmation step, NOT a downloadable document' and instructs to summarize details for review, then call formation_approve_certificate only after explicit confirmation. This gives clear when-to-use and when-not-to-use guidance, and names the alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_ein_filing_infoGet EIN Filing InfoARead-onlyInspect
GetEinFilingInfo returns the stored payload without the SSN/ITIN.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| info | No | |
| hasSsn | No |
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 meaningful behavioral context by disclosing that the payload omits the SSN/ITIN and that this is a retrieval of stored data. This goes beyond what annotations alone 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 sentence that is immediately understandable and contains no filler. Every word contributes to understanding the tool's purpose and key behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter getter with output schema present and annotations covering safety, this description is complete. It tells the agent what the tool returns and what sensitive data is stripped, which is sufficient for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100% (formationId is documented as 'UUID value wrapper'), so the parameter is already well defined. The description adds no additional parameter semantics, but the baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('returns') and the resource ('stored payload' of EIN filing info). It also specifies the key scoping detail ('without the SSN/ITIN'), which makes it distinct from related tools like formation_submit_ein_filing_info and formation_get_formation_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's name and description imply it is the read counterpart to formation_submit_ein_filing_info, and that it should be used when you need the stored EIN filing payload without sensitive data. However, it does not explicitly state when to use it versus alternatives, or provide any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_election83b_prefillGet Election83b PrefillARead-onlyInspect
GetElection83bPrefill returns prefilled values + missing fields for the 83(b) form, derived from the formation. Owner-scoped read.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ein | No | |
| hasEin | No | |
| companyName | No | |
| grantDateMin | No | |
| taxpayerName | No | |
| missingFields | No | |
| stateOfIncorporation | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds that it is owner-scoped and returns both prefilled values and missing fields. This extra context is useful and does not contradict 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?
Composed of one concise sentence that directly states the action, output, and scope. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with an output schema and strong annotations, the description covers purpose, output content, and access scope adequately. No additional explanation of return values or auth is needed given the output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single formationId parameter is fully documented in the schema as a UUID value wrapper. The description adds only that the prefill is derived from the formation, which is minimal additional meaning beyond the parameter name and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns prefilled values and missing fields for the 83(b) form, derived from a formation. This distinguishes it from sibling tools like formation_set_election83b and formation_record_election83b_filing by focusing on the read/prefill aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'Owner-scoped read', giving a clear context for when this read tool applies. Does not explicitly name alternatives or exclusions, but the context is sufficient for basic selection among the formation read/write tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_filing_feeGet Filing FeeARead-onlyInspect
GetFilingFee returns the state formation filing fee (table amount, formatted string, and Stripe Price id when charged via a pre-created Price). Used by the onboarding review/certificate step. Stateless lookup — no formation context required.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| formatted | No | |
| amountCents | No | |
| stripePriceId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint, destructiveHint, and openWorldHint annotations, the description adds meaningful behavior: it is a stateless lookup, and it details the return types including a conditional Stripe Price 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?
The description is tightly written in three sentences: front-loaded purpose, then output details, then usage context. Every sentence contributes necessary information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and safety annotations, the description covers purpose, return value contents, usage context, and statelessness. It omits details like whether 'state' is required or behavior when omitted, but these are not critical given the simplicity and overall description quality.
Complex tools with many parameters or behaviors need more documentation. 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 only one parameter 'state' with a pattern but no description, resulting in 0% coverage. The description implicitly indicates the state is the entity whose filing fee is returned, but does not explain expected casing, optionality, or default behavior. This provides only partial compensation for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the state formation filing fee, specifying the exact output components (table amount, formatted string, Stripe Price id). It distinguishes this from sibling formation tools by scoping to filing fees and noting it's a stateless lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 it is used by the onboarding review/certificate step and that it requires no formation context, providing clear usage context. It does not explicitly state when not to use it or name alternatives, but the guidance is sufficient for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_formationGet FormationARead-onlyInspect
Returns the full formation record for a formation_id: company name, entity type, state, business address, registered agent, share structure, shareholders, authorized party, EIN, certificate data, payment and filing status, and timestamps. Use this to answer specific questions such as the user's EIN, registered agent, company address, or shareholders, and to RESUME an in-progress formation with a formation_id you already have — it works both before and after sign-in (do not start a new formation to resume).
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| progress | No | |
| formation | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnly/destructive hints, so the description only needs extra context. It adds that the tool works before and after sign-in and that it can resume a formation without starting a new one, both useful behavioral details beyond the schema and 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 with clear front-loading: returns fields, then use cases, then the resume note. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, exhaustive annotations, an output schema, and a description that names returned fields and usage scenarios, the tool is fully contextualized 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?
Input schema documents formationId fully as a UUID wrapper (100% coverage), so the description doesn't need to add format details. It simply restates the purpose; no extra semantics about the parameter value or constraints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with 'Returns the full formation record for a formation_id' and enumerates fields (EIN, registered agent, shareholders, etc.), making the operation specific. It doesn't explicitly compare to sibling formation_get_formation_info, so it loses the highest differentiation point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 ('answer specific questions such as the user's EIN, registered agent...') and when to reuse it ('RESUME an in-progress formation'), plus a clear exclusion ('do not start a new formation to resume'). It doesn't name an alternative tool, but the guidance is actionable and context-rich.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_formation_document_download_urlGet Formation Document Download URLARead-onlyInspect
GetFormationDocumentDownloadUrl returns a short-lived presigned S3 URL for one document on a formation, selected by FormationDocumentType: the draft certificate, the state-stamped certificate, the post-formation bundle, or one of the three distinct EIN documents — the UNSIGNED SS-4 draft (EIN), the founder-signed SS-4 (SIGNED_EIN, which carries an SSN or ITIN), and the IRS EIN assignment letter, CP-575 (OFFICIAL_EIN). Those three are different files; "the EIN document" names none of them unambiguously. A reviewer may fetch any document of any formation. A non-reviewer reaches only formations they already own, and never an unclaimed one — knowing a formation id is not ownership. This tool is reviewer-gated on the MCP surface regardless.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. | |
| documentType | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| fileName | No | |
| expiresAt | No | |
| contentType | No | |
| downloadUrl | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description adds meaningful behavioral context: the URL is short-lived, presigned, and S3-backed; the three EIN document types are distinct files; and authorization boundaries are explained, including that knowing a formation ID does not imply ownership. This significantly exceeds 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 front-loaded with the core purpose and then expands with necessary nuance. While somewhat long, every sentence carries valuable information, addressing document type semantics, authorization, and the presigned URL nature. It could be slightly better structured (e.g., bullet points), but remains appropriately sized for the 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 covers all essential aspects: what it returns (presigned URL), the document type selection, the ambiguity warning for EIN documents, and authorization rules. An output schema exists, so return-value details are not needed in the description. This is complete for safe and 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 dramatically enriches the documentType parameter by disambiguating the EIN variants and explaining the consequences of choosing each. It also adds meaning to formationId by clarifying ownership requirements. With only 50% schema description coverage, the description compensates fully, especially for the enum 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 states a specific verb ('returns a short-lived presigned S3 URL') with a clear resource ('one document on a formation') and explicitly enumerates the selectable document types. This distinguishes it from sibling tools like formation_get_formation_upload_url or formation_get_ein_filing_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool, including the specific document types and the authorization model (reviewer vs non-reviewer). It does not explicitly name alternative tools or state when-not-to-use, but the scope is well-defined enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_formation_infoGet Formation InfoBRead-onlyInspect
GetFormationInfo returns educational content topics or content for a specific topic
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| topic | No | |
| topics | No | |
| content | No |
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 the tool returns either a list of topics or content for a specific topic, which is useful behavioral information. No side effects or additional constraints are mentioned, but the description adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action. It is efficient and avoids unnecessary words, though it could be slightly more structured by explicitly separating the two modes of operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one optional parameter and an existing output schema, the description covers the core purpose but lacks parameter semantics and usage context. It is minimally viable but has clear gaps in parameter explanation and usage guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'topic' is not explained in the description. Schema coverage is 0%, so the description must compensate, but it only mentions 'for a specific topic' without clarifying the format, allowed values, or how it relates to the returned topics list. This is a significant 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 states 'returns educational content topics or content for a specific topic', clearly indicating the tool retrieves educational material. This distinguishes it from other formation tools that handle formation records or documents. However, the term 'educational content' is somewhat vague and could be more 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 provides no guidance on when to use this tool versus alternatives, no mention of typical scenarios or conditions, and no exclusions. It simply states what it does without contextualizing its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_formation_purchase_quoteGet Formation Purchase QuoteARead-onlyInspect
GetFormationPurchaseQuote returns the CorpTools filing product, methods, parsed form schema, prefilled values, and missing required fields for a formation (non-DE/WY states). Reviewer-only; no side effects beyond ensuring a CorpTools company record exists.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| prefilled | No | |
| productId | No | |
| productName | No | |
| schemaFields | No | |
| filingMethods | No | |
| missingFields | No | |
| corpToolsCompanyId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation readOnlyHint=true declares the tool as read-only, but the description states 'no side effects beyond ensuring a CorpTools company record exists,' which implies a potential write or state change. This directly contradicts the annotation. Considering the contradiction, 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?
The description is two sentences, front-loaded with the return content and followed by usage/behavior. Every word earns its place; 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?
The description covers the return content, state scope, usage restrictions, and the side effect caveat. However, the contradiction with annotations creates ambiguity about the tool's actual safety profile, and details for DE/WY states are omitted. Most key aspects are present, but the mismatch is a notable 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?
There is one parameter, formationId, with schema description 'UUID value wrapper.' The tool's description does not add explicit parameter semantics beyond implying it identifies the formation. With 100% schema coverage, the baseline is 3, and no additional value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that GetFormationPurchaseQuote returns specific data (CorpTools filing product, methods, parsed form schema, prefilled values, and missing required fields) for a formation, and it explicitly excludes DE/WY states. This verb-resource combination is specific and distinguishes it from sibling tools like formation_get_formation_quote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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: 'Reviewer-only' and 'no side effects' indicate when it is safe to use, and 'non-DE/WY states' implies it should not be used for Delaware or Wyoming formations. However, it does not explicitly name alternatives or provide broader when-not conditions, 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.
formation_get_formation_quoteGet Formation QuoteARead-onlyInspect
Returns what forming a company in a given state costs: each Lovie line item, the state's filing fee, and the total, all priced live. Creates nothing and charges nothing. Use this whenever the user asks about price instead of quoting figures from memory — formation is a single one-time payment, so there is no plan and no monthly/annual choice to describe.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| lineItems | No | |
| totalCents | No | |
| totalDisplay | No | |
| subtotalCents | No | |
| filingFeeCents | No | |
| subtotalDisplay | No | |
| filingFeeDisplay | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true and destructive=false. The description adds that it 'Creates nothing and charges nothing' and that prices are 'priced live,' providing context about side effects and data freshness beyond the annotations. No contradictions found.
Agents need to know what a tool does to the world before calling 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 every sentence adds value. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description covers the main return contents, side effects, and when to use it. It does not explain edge cases like invalid or missing state, but the output schema provides return structure. Overall sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only one parameter (state) with 0% description coverage. The description mentions 'in a given state,' which clarifies the parameter's role, but it does not explain optionality (required=0), valid formats beyond the schema pattern, or behavior when omitted. The description partially compensates but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 formation costs for a given state including line items, filing fee, and total. It explicitly mentions live pricing and distinguishes from memory-based quoting, and the 'single one-time payment' note separates it from recurring pricing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use this whenever the user asks about price instead of quoting figures from memory.' It also clarifies there is no plan or monthly/annual choice, which implicitly excludes certain use cases. It does not explicitly name sibling alternatives like formation_get_filing_fee, 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.
formation_get_formation_upload_urlGet Formation Upload URLBRead-onlyInspect
GetFormationUploadURL returns a presigned PUT URL for a cap table or SAFE document
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| mimeType | No | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| expiresAt | No | |
| uploadUrl | No | |
| sourceS3Uri | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds the useful detail that it returns a PUT (upload) URL. No contradiction exists, but it lacks context on URL expiration, required authentication, or other behavioral nuances that could be relevant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single succinct sentence that front-loads the core purpose. Every word contributes value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple and has an output schema, so return value details are covered. However, the description omits the full range of document kinds and gives no guidance on selecting parameters, leaving some ambiguity for an agent deciding 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 33% (only formationId is briefly described). The description fails to explain the 'kind' and 'mimeType' parameters, merely referencing 'cap table or SAFE document' which underrepresents the enum. The agent gets little help beyond raw schema 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 action ('returns a presigned PUT URL') and the resource type ('cap table or SAFE document'), distinguishing it from sibling download and OCR upload URL tools. However, it mentions only two of the seven document kinds defined in the schema's 'kind' enum, which could be misleading about the full 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 no explicit guidance on when to use this tool versus alternatives like formation_get_formation_document_download_url or formation_get_ocr_upload_url. Usage is merely implied by the purpose, with no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_list_formationsList FormationsARead-onlyInspect
Lists the SIGNED-IN user's company formations (name, entity type, state, status, progress). Requires authentication. Do NOT call this during an in-progress formation: you already have the formation_id from formation_start, so use formation_get_formation with that id to check the active formation. Only use this when the user explicitly asks to see all of their companies/formations and gives no specific formation_id.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| formations | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description adds that authentication is required and that results are scoped to the signed-in user. The warning about not calling during in-progress formations adds valuable behavioral context. However, it does not mention pagination or filtering behavior, though these are less critical given the 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 three sentences, front-loaded with the core purpose, followed by clear exclusions and usage triggers. Every sentence earns its place; 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 has 4 optional parameters, no schema descriptions, and moderately complex nested filter objects, the description covers purpose and usage but omits parameter semantics and pagination. The output schema helps for return values, but the lack of parameter guidance makes the description only minimally complete 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 0%, so the description must compensate by explaining parameters like scope, filter, pageSize, and pageToken. It does not mention any of them, leaving the agent without guidance on how to use optional parameters. This is a significant gap for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 signed-in user's company formations with specific fields (name, entity type, state, status, progress). It distinguishes from sibling formation_get_formation by explicitly advising to use that tool for a specific formation_id, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use guidance: do not call during an in-progress formation, use formation_get_formation with the existing formation_id instead. It also states the only appropriate trigger: when the user asks for all companies/formations with no specific formation_id. This is exemplary usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_list_incorporation_documentsList Incorporation DocumentsARead-onlyIdempotentInspect
Returns a company's incorporation documents — certificate of incorporation, bylaws, incorporator action, board resolution, per-founder IP assignments and 83(b) elections, and the IRS EIN assignment letter (CP-575) — each with its filing and effective dates, jurisdiction, status and notes. Read-only. The 83(b) rows carry a statutory deadline: 30 days from the share issue, unreopenable, and filed by the founder personally, so a status of EXPIRED means the window closed, NOT that the founder failed to file. Sensitive rows (83(b), EIN) are returned only to a company owner or accountant.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| entity | No | |
| documents | No | |
| formationId | No | UUID value wrapper. |
| hasFormation | No | |
| authorizedShares | No | |
| incorporatedDate | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already declaring readOnly, idempotent, and non-destructive, the description adds crucial behavioral context: the statutory 30-day deadline for 83(b), clarification that EXPIRED means the window closed rather than founder failure, and that sensitive rows are only returned to owners or accountants. This significantly enriches the annotation-only information.
Agents need to know what a tool does to the world before calling 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 structured, front-loading the main purpose and then adding necessary caveats. Minor redundancy exists with 'Read-only' duplicating the annotation, but every other sentence contributes meaningful context, so it remains efficient for its complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter, strong annotations, and an output schema, the description covers all essential context: what documents are returned, key fields, interpretation of a critical status, and access restrictions. It is sufficiently complete for an agent to invoke this tool correctly without additional information.
Complex tools with many parameters or behaviors need more documentation. 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 companyId is fully described in the schema as a 'UUID value wrapper' (100% coverage). The description adds no additional parameter detail, which is acceptable given the schema's completeness, but no extra semantic value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a company's incorporation documents, specifying the exact document types (certificate of incorporation, bylaws, 83(b) elections, etc.) and their attributes. It is specific and resource-focused, but it does not explicitly differentiate from sibling tools like formation_get_formation_document_download_url, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by describing the content and the meaning of the 83(b) status field and sensitive-row access, but it does not explicitly state when to use this tool versus alternatives. There is no direct comparison or exclusionary language, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_ocr_upload_urlGet OCR Upload URLARead-onlyInspect
Returns a presigned S3 PUT URL for uploading a company document (kind=SAFE for a SAFE PDF, kind=RSA for a signed restricted stock purchase agreement, kind=CAP_TABLE for a cap-table file, kind=WIRE_PROOF for a wire payment proof). Step 1 of every document-import flow: call with the matching kind and mime_type=application/pdf, upload the file bytes to the returned upload_url with an HTTP PUT, then pass the returned source_s3_uri to the next step — ImportSAFE for a SAFE, ExtractRsaTermsOcr (then CreateCapTableAgreement with type=RSA) for a signed RSA, or ExtractCapTableOcr for a cap table. Company-scoped — no formation record needed.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| mimeType | No | ||
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| expiresAt | No | |
| uploadUrl | No | |
| sourceS3Uri | No |
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 covered. The description adds useful behavioral context: it's a presigned URL requiring a separate HTTP PUT, company-scoped, and returns a source_s3_uri for downstream use. It doesn't contradict annotations. A minor gap is not mentioning URL expiry or permissions, but the annotations lower the baseline.
Agents need to know what a tool does to the world before calling 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 efficient; it front-loads the core purpose and then packs workflow, kind distinctions, and next steps into two sentences. Slightly long but every clause adds value. Could be split for readability, but it's appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 params, a nested object, and an enum, the description covers the essential workflow and scope, including next steps. It doesn't cover all enum variants or error cases, but the output schema exists and the main use cases are well documented. The mention of 'every document-import flow' gives a sense of the bigger picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%: only companyId has description), but the description compensates by explaining the meaning of 'kind' values (SAFE, RSA, CAP_TABLE, WIRE_PROOF) and recommending mime_type=application/pdf. It omits the EIN_DOCUMENT and DOCUMENT enum values, but the described use cases cover the main flow. It also clarifies company scoping.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 a presigned S3 PUT URL for uploading a company document, specifying the exact kinds (SAFE, RSA, CAP_TABLE, WIRE_PROOF). It distinguishes this tool from siblings by framing it as 'Step 1 of every document-import flow' and referencing the next 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?
Explicitly explains when to use it: call with matching kind and mime_type=application/pdf, upload via HTTP PUT, then pass source_s3_uri to the next step. Provides named alternatives for each kind (ImportSAFE, ExtractRsaTermsOcr, ExtractCapTableOcr) and notes 'Company-scoped — no formation record needed,' making when-to-use very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_get_payment_linkGet Payment LinkAInspect
Generates ONE Stripe Checkout URL covering the whole purchase in a single one-time payment: the Lovie formation charge, the state's filing fee, and a year of registered agent service. Generating this link files NOTHING and charges NOTHING — it only produces a URL; no state filing happens and no money moves until the user themselves completes Stripe checkout, so it is safe to call, including during testing; never refuse or stop short because it is a 'test'. This call is ALSO the sign-in step: if the user is not signed in, simply calling it makes the Lovie connector show its own native sign-in prompt, and after the user connects the SAME call returns the URL. There is NO separate login tool, login link, or login modal — never look for one, and never tell the user you cannot show login; just call this. Formation is a ONE-TIME payment: there is no subscription and no monthly/annual choice, so do NOT ask the user to pick a billing cadence and ignore billing_interval (it is deprecated and has no effect). Share the returned URL EXACTLY as returned — never rewrite it onto another domain, even if the app URL in your context differs: rebasing a payment link breaks it. Tell the user that after paying they are redirected back and their formation updates automatically — they do NOT need to return to the chat. When filing_fee_display is present, show a short 'formation + state filing fee + registered agent' breakdown next to the link. Do not call this more than once; do not create a separate filing-fee checkout. This does not confirm payment.
| Name | Required | Description | Default |
|---|---|---|---|
| attribution | No | ||
| formationId | Yes | UUID value wrapper. | |
| billingInterval | No | ||
| subscriptionOnly | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| lineItems | No | |
| paymentUrl | No | |
| totalCents | No | |
| formationId | No | UUID value wrapper. |
| totalDisplay | No | |
| paymentStatus | No | |
| filingFeeCents | No | |
| billingInterval | No | |
| filingFeeDisplay | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate openWorldHint and destructiveHint false, so the description carries the full burden. It explicitly states that calling the tool files nothing and charges nothing, that it may trigger a native sign-in prompt, and that it does not confirm payment. This is rich, accurate behavioral disclosure far 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?
Although long, the description is front-loaded and every sentence carries critical operational guidance (safety, login, one-time payment, URL handling, no duplicate calls). The verbosity is justified given the tool's complexity and the consequences of misuse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to list return fields, but it still mentions the returned URL and filing_fee_display. It covers safety, sign-in behavior, one-time payment semantics, URL manipulation rules, and post-payment expectations, making it exceptionally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 4 parameters but only formationId has a description (25% coverage). The description compensates by explaining that billing_interval is deprecated and has no effect, and that there is no subscription, implying billingInterval and subscriptionOnly are irrelevant. However, it does not explain the attribution parameter, 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's purpose: generating a single Stripe Checkout URL for the entire formation purchase. It distinguishes itself from siblings by explicitly noting it is not a login tool, not a separate filing-fee checkout, and covers the whole purchase in one one-time payment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 extensive when-to-use and when-not-to-use guidance: it is also the sign-in step, there is no separate login tool, do not call more than once, do not create a separate filing-fee checkout, and ignore the deprecated billing_interval. This makes the tool's usage unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_purchase_formationPurchase FormationADestructiveInspect
PurchaseFormation places the CorpTools formation filing order: it claims the order atomically, adds the filing to the cart, and checks out with the stored payment method. Reviewer-only. Checkout moves money and is never retried once it succeeds.
| Name | Required | Description | Default |
|---|---|---|---|
| formData | No | ||
| formationId | Yes | UUID value wrapper. | |
| filingMethodId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| invoiceIds | No | |
| cartItemIds | No | |
| formationId | No | UUID value wrapper. |
| corpToolsCompanyId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses that checkout moves money and is never retried once successful, which is a critical behavioral trait. It also adds atomic claiming and the charged action, providing concrete, non-obvious context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. Each sentence adds distinct value: the operation sequence, the reviewer-only restriction, and the irreversible money movement warning. It is front-loaded with the main action and remains highly readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operation, financial consequence, irreversibility, and role constraint, which is sufficient for an agent to understand the tool's risk profile. Some gaps remain regarding parameter details and explicit alternatives, but the output schema handles return values and the description covers the essential behavioral 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 low (33%), so the description must compensate, but it does not mention any of the parameters (formData, formationId, filingMethodId). It adds no guidance about their meaning, required formats, or relationships to the purchase flow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's primary action: placing a CorpTools formation filing order. It specifies the operation sequence (claim order, add to cart, checkout) and distinguishes it from sibling tools like formation_get_formation_purchase_quote or formation_confirm_payment by emphasizing it executes the purchase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 workflow (final purchase step) and mentions 'Reviewer-only' as a role restriction. However, it does not explicitly state when to use this tool versus alternatives (e.g., when to use a quote endpoint instead), nor does it provide exclusions or prerequisites beyond the reviewer constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_purchase_registered_agentPurchase Registered AgentBDestructiveInspect
PurchaseRegisteredAgent triggers a CorpTools registered-agent purchase.
| Name | Required | Description | Default |
|---|---|---|---|
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| formationId | No | UUID value wrapper. |
| corpToolsOrderId | No | |
| corpToolsCompanyId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, but the description adds little beyond that. 'Triggers a purchase' implies a state-changing financial action, but it does not disclose what consequences occur (e.g., charge, order placement, reversibility) or whether confirmation is needed. The description does not contradict annotations, but it fails to enrich them with useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It immediately identifies the action and resource. This is appropriately concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter with full schema coverage, output schema present, annotations provided), the description is minimally sufficient. However, it lacks context about what a 'purchase' entails operationally—e.g., whether a quote is required, if it is synchronous, or what the output represents. For a destructive action, richer context would be expected.
Complex tools with many parameters or behaviors need more documentation. 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 describes formationId as a 'UUID value wrapper,' covering the sole parameter. Since schema coverage is 100%, the baseline is 3. The description adds no parameter-level detail, but the schema already provides sufficient meaning for an agent to invoke the tool correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'triggers a CorpTools registered-agent purchase.' The verb 'triggers' and the resource 'registered-agent purchase' clearly identify the operation. It is distinguishable from siblings like formation_set_registered_agent (which configures, not purchases) and formation_get_formation_purchase_quote (which quotes, not buys). However, it does not elaborate on what 'purchase' entails (e.g., payment flow), so it stops short of full clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., prior quote, formation setup) or contrast with related tools like formation_purchase_formation or formation_get_formation_purchase_quote. An agent must infer usage solely from the name and minimal sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_record_election83b_filingRecord Election83b FilingBInspect
RecordElection83bFiling records that the signed election was submitted to the IRS (postmark or online), with optional proof. Owner-scoped.
| Name | Required | Description | Default |
|---|---|---|---|
| proof | No | ||
| method | No | ||
| filedDate | No | ||
| formationId | Yes | UUID value wrapper. | |
| proofFileName | No | ||
| trackingNumber | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| filing | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide only openWorldHint=false and destructiveHint=false, which are minimal. The description adds 'Owner-scoped' and the distinction of '(postmark or online)', but does not disclose side effects like whether repeated calls overwrite prior entries, whether proof is stored permanently, or if any notifications are triggered. No contradiction with annotations, but the added behavioral context is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the key action and includes relevant qualifiers. No wasted words or redundant restating of 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?
Despite having 6 parameters, a nested object, and an output schema, the description provides no business context (e.g., when an 83(b) election must be filed, prerequisites like signed election status, or how this ties into the formation lifecycle). It does not explain what happens to the formation record after recording. The output schema covers return values, but the overall context is insufficient for a complex legal/financial 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 only 17% (only formationId has a description). The description merely mentions 'postmark or online' (which duplicates the method enum) and 'optional proof' (vague). It does not explain the meaning or usage of proofFileName, trackingNumber, filedDate, or the relationship between these parameters. The description fails to compensate for the low 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 action: 'records that the signed election was submitted to the IRS (postmark or online)'. It names a specific resource (the 83(b) election filing) and a specific verb ('records'), with a scope qualifier ('Owner-scoped'). This distinguishes it from siblings like formation_set_election83b or formation_get_election83b_prefill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 no explicit guidance on when to use this tool versus alternatives. It implies use after submission ('records that the signed election was submitted'), but does not state exclusions, prerequisites, or mention related tools such as formation_set_election83b. Without this, an agent could confuse it with other formation election tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_run_election83b_remindersRun Election83b RemindersAInspect
RunElection83bReminders runs the 83(b) reminder sweep (not-started nudges + deadline-relative sign/file reminders + late notice). Reviewer-only; also run in-process by the scheduled cron subcommand.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| sent | No | |
| errors | No | |
| scanned | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=false and openWorldHint=false. The description adds useful behavioral detail about what the sweep includes (nudges, deadline reminders, late notice) and the reviewer-only restriction. It does not explicitly disclose side effects like sending emails, but the term 'reminders' implies this. 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 two sentences, front-loaded with the primary action and followed by usage restrictions. Every sentence adds value: the first defines the sweep's content, the second states authorization and automation context. No fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and an output schema, the description is highly complete. It covers the purpose, the specific reminder types, the intended caller (reviewer-only), and the cron integration. The output schema handles return values, so no further description is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one boolean parameter 'dryRun' with no description coverage. The parameter name is self-explanatory, so the schema provides enough meaning, but the description could have elaborated on the effect of dryRun (e.g., preview only). The description adds no additional parameter semantics, but the simplicity of a single boolean parameter makes this acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 'runs the 83(b) reminder sweep' and specifies its three components (not-started nudges, deadline-relative sign/file reminders, late notice). This specific verb+resource+scope distinguishes it from sibling tools like formation_record_election83b_filing and formation_get_election83b_prefill.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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: 'Reviewer-only; also run in-process by the scheduled cron subcommand.' This specifies who should invoke it and gives an automatic alternative. It does not explicitly name alternative tools or exclusion scenarios, but the context is clear enough for an agent to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_save_cap_table_importSave Cap Table ImportCInspect
SaveCapTableImport replaces the formation's shareholders with the imported, founder-edited list
| Name | Required | Description | Default |
|---|---|---|---|
| editsMade | No | ||
| formationId | Yes | UUID value wrapper. | |
| safeMatches | No | ||
| shareholders | No | ||
| capTableS3Uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| formation | No | |
| formationId | No | UUID value wrapper. |
| totalShareholders | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'replaces', which implies a destructive or state-changing operation, but the annotations set openWorldHint=false and destructiveHint=false. This is a direct contradiction. The description also fails to disclose that existing shareholder data will be overwritten, whether previous edits are lost, or any other behavioral side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, front-loading the core action. It is appropriately concise for stating the basic function, but given the tool's complexity (5 params, nested objects), it sacrifices necessary detail. Still, it earns a high score for brevity and 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?
The tool is complex with 5 parameters, nested arrays, and an output schema. The description only covers the basic action and does not explain the import workflow, prerequisites (e.g., a prior extract/import step), side effects, or parameter relationships. With many sibling tools like cap_table_import_safe and formation_extract_cap_table, the description is insufficient for reliable selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only formationId has a 'UUID value wrapper' description). The description does not explain the meaning of editsMade, safeMatches, shareholders, or capTableS3Uri, nor how they relate to the replacement action. It only implicitly refers to 'shareholders' as the edited list, leaving other parameters ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'replaces' and identifies the resource (the formation's shareholders) and the source (imported, founder-edited list). This clearly states the tool's purpose and distinguishes it from other formation tools like 'formation_add_shareholder' or 'formation_set_share_structure'. However, it does not explicitly reference sibling tools or the broader import workflow, so it doesn't fully achieve a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit usage guidance. It does not state when to use this tool (e.g., after formation_extract_cap_table) or when to avoid it, nor does it mention alternatives. The context is only implied by the phrase 'imported, founder-edited list', which is insufficient for an agent to decide between this and other formation/cap table tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_send_formation_emailSend Formation EmailCDestructiveInspect
SendFormationEmail dispatches a formation lifecycle email via SendGrid.
| Name | Required | Description | Default |
|---|---|---|---|
| emailType | No | ||
| formationId | Yes | UUID value wrapper. | |
| filingRejected | No | ||
| additionalInformationRequired | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| sentAt | No | |
| emailType | No | |
| messageId | No | |
| formationId | No | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, so the agent knows this is destructive. However, the description adds no additional behavioral context such as irreversibility of emails, external notifications, or rate limits. It only mentions the email provider.
Agents need to know what a tool does to the world before calling 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 states the tool's primary function. However, it may be too brief for the complexity of the 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 destructive nature, required formationId, and multiple email type options, the description is insufficient. It does not explain which parameters are required for each email type, how to handle the rejection or additional information cases, or any side effects of sending.
Complex tools with many parameters or behaviors need more documentation. Simple 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%, and the description adds no explanation for the parameters. The emailType enum and nested objects like filingRejected and additionalInformationRequired are left unexplained, requiring the agent to infer their semantics 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 dispatches a formation lifecycle email via SendGrid, using a specific verb and resource. It distinguishes the tool from sibling tools, none of which send formation emails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 scenarios where this should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_set_company_addressSet Company AddressAInspect
Sets the company's business address. Always present the user with BOTH options: pass source = ADDRESS_SOURCE_OWN with a full US address if they want to use their own, or source = ADDRESS_SOURCE_NEED_ASSISTANCE to give them Lovie's virtual mailbox (a real US address Lovie provides). Offer the mailbox proactively whenever the user has no address or prefers not to use a home/personal one. A real filing needs a resolvable US street, city, state, and ZIP.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| address | No | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| formationId | No | UUID value wrapper. |
| needsVirtualPostMail | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful context by stating the need for a resolvable US address and explaining Lovie's virtual mailbox as a real US address. However, it does not disclose whether the address replaces an existing one or if validation occurs at submission time, leaving some behavioral gaps given the sparse 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 exactly four sentences: a clear purpose statement, two user-option instructions, and a filing requirement. Every sentence adds value with no repetition of schema data, making it well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core decision and the US address requirement, but it omits explicit dependency rules between source and address and does not clarify behavior when source is unspecified. Given the nested schema and required formationId, more detail would make the tool more consistently invokable.
Complex tools with many parameters or behaviors need more documentation. 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 explains the meaning of ADDRESS_SOURCE_OWN and ADDRESS_SOURCE_NEED_ASSISTANCE and implies the address object is required for OWN. Yet it does not explicitly state the source-address dependency or address the ADDRESS_SOURCE_UNSPECIFIED value, so parameter semantics remain partially ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 'Sets the company's business address' and elaborates on the two source options, making it distinct from sibling formation_set_* tools like formation_set_company_name and formation_set_registered_agent. The verb+resource pair is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to always present both source options and proactively offer the mailbox when the user has no address or prefers not to use a personal one. It does not mention alternatives like formation_update_formation, but the tool's scope is clearly defined and the guidance for source selection is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_set_company_nameSet Company NameAInspect
Sets the company name and returns its parts: base_name, entity_ending, and the derived full_name (base + ending). Set the entity ending first with formation_set_entity_ending. After setting the name, call formation_check_name to verify availability in the selected state.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable name (1-255 Unicode chars). | |
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| baseName | No | |
| fullName | No | |
| formationId | No | UUID value wrapper. |
| entityEnding | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the tool's return behavior (returns parts and derived full_name) and the prerequisite of setting the entity ending first. Annotations include destructiveHint false but no readOnlyHint, so the mutation aspect is clear from 'Sets.' This adds value beyond the sparse annotations, though it could mention overwrite behavior or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and return value, followed by essential workflow steps. There is no redundancy or extraneous detail, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (though not shown) and the description covers the action, return parts, and the necessary preceding/following steps, it is contextually complete for the agent to invoke it correctly within the formation process.
Complex tools with many parameters or behaviors need more documentation. 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 both parameters (name: 'Human-readable name (1-255 Unicode chars)', formationId: 'UUID value wrapper'). The description adds meaning by explaining how the name parameter is decomposed into base_name and entity_ending, giving semantic context beyond the schema's field-level 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 explicitly states the tool 'Sets the company name' and elaborates on what the action entails, including the returned parts (base_name, entity_ending, full_name). It clearly differentiates from sibling tools by specifying the sequence involving formation_set_entity_ending and formation_check_name, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Set the entity ending first with formation_set_entity_ending' and 'After setting the name, call formation_check_name to verify availability.' This tells the agent when to use this tool and how it fits into the broader workflow, which is more than adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_set_company_typeSet Company TypeBInspect
SetCompanyType sets the entity type and returns any warnings
| Name | Required | Description | Default |
|---|---|---|---|
| companyType | No | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| warnings | No | |
| companyType | No | |
| formationId | No | UUID value wrapper. |
| validEntityEndings | No | |
| warningsRequireAcknowledgment | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'returns any warnings', which is useful behavioral context beyond the sparse annotations. However, it does not disclose whether the operation overwrites existing values, requires an existing formation, or has side effects. With minimal annotation coverage, more transparency would be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise, but the brevity sacrifices useful detail; still, it earns a high score for 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?
For a setter with a nested object, an output schema, and many sibling formation tools, this description is under-specified. It lacks context on when to set company type, how it fits the formation lifecycle, or what warnings may arise. The tool's complexity warrants a richer description.
Complex tools with many parameters or behaviors need more documentation. Simple 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 50%, with only formationId described. The description does not add meaning for companyType or explain how it maps to the schema enum. It offers no clarity on which parameter is the entity type or whether companyType is optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 'sets the entity type' with a specific verb and resource, matching the tool name and title. This distinguishes it from other formation_set_* siblings that target different attributes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 other formation setters. It does not mention prerequisites, alternatives, or exclusions. The only implied usage is that it is for setting company type, which is thin.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_set_election83bSet Election83bAInspect
SetElection83b persists the 83(b) election snapshot on the formation. Owner-scoped; called after PDF generation + signature envelope creation.
| Name | Required | Description | Default |
|---|---|---|---|
| record | Yes | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| formation | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the sparse annotations: 'Owner-scoped' communicates access control, and the sequencing statement indicates the tool is not the first step. It does not disclose idempotency, overwrite behavior, or error conditions for this mutation operation, which would be valuable for a 'persists' action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and contains no redundant or extraneous information. Every word contributes to the understanding of the tool's action and its place in the workflow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides essential workflow context and an output schema is present, so return values are covered. However, given the complexity of the large nested record, the description could mention preconditions, idempotency, and how this tool relates to other election83b operations (e.g., record_election83b_filing) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description identifies the 'record' parameter as an '83(b) election snapshot' and hints at related fields through the PDF/signature context, but it does not explain any of the many nested fields within the record object. With only 50% schema description coverage, the description should compensate more for the lack of parameter-level guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'persists' and the resource '83(b) election snapshot on the formation', making the tool's function specific and distinct from sibling tools like formation_get_election83b_prefill and formation_record_election83b_filing. The mention of being called after PDF generation and signature envelope creation further distinguishes it as a later-step mutation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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: 'Owner-scoped' indicates permission requirements, and 'called after PDF generation + signature envelope creation' specifies the sequence in the workflow. However, it does not explicitly state when not to use this tool or name alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_set_entity_endingSet Entity EndingAInspect
Sets the company's legal entity ending — the suffix that appears in the full legal name (e.g. "Inc.", "Corporation", "Co." for a C-Corp; "LLC", "L.L.C." for an LLC). Use one of the valid endings returned by formation_set_company_type. Set this BEFORE the company name so the full legal name is derived correctly.
| Name | Required | Description | Default |
|---|---|---|---|
| ending | No | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| formationId | No | UUID value wrapper. |
| entityEnding | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only include openWorldHint=false and destructiveHint=false, so the description carries some burden. It discloses that the ordering matters for the derived full legal name, but does not mention validation behavior, side effects of changing an existing ending, or permission requirements. The description adds some context but lacks richer behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and examples, and includes ordering guidance without redundancy or fluff. Every clause 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 setter with an output schema, the description covers the what, why, and when. It specifies valid value source and ordering, which is sufficient for a focused operation. Minor gaps include lack of explicit error conditions or fallback defaults, but these are not critical given the 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?
Schema coverage is 50%: formationId has a description but 'ending' does not. The description compensates for the ending parameter by defining it and providing examples, adding meaning beyond the schema's pattern and maxLength constraints. formationId is left to the schema's 'UUID value wrapper' description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('Sets') and resource ('company's legal entity ending'), and provides concrete examples (e.g., 'Inc.', 'LLC'). It distinguishes itself from sibling tools like formation_set_company_name and formation_set_company_type by focusing on the suffix component of the legal name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is given: use valid endings from formation_set_company_type and set this BEFORE the company name to ensure correct derivation. This provides both a dependency and ordering constraint, making it clear when and how to use the tool relative to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_set_registered_agentSet Registered AgentAInspect
Sets the registered agent for the formation. Pass use_default = true to use Lovie's included registered agent (recommended for most founders), or use_default = false with an agent to supply a custom one.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | ||
| useDefault | No | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| formationId | No | UUID value wrapper. |
| registeredAgent | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate non-destructive/non-open-world; description adds that the default agent is recommended and how to supply a custom one. However, it doesn't disclose behavior if both useDefault and agent are provided, or whether the change is reversible/overwrites existing.
Agents need to know what a tool does to the 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 filler. Every clause contributes to understanding the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param tool with output schema and some annotations, the description covers the primary use cases. It's slightly incomplete in not explicating the mutual exclusivity of useDefault and agent, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 33% (name and formationId only). Description explains the useDefault/agent relationship, adding meaning to the two key parameters, but doesn't elaborate on agent's nested contact/address fields or the optionality beyond the branch. This partially compensates for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Sets the registered agent for the formation' – a specific verb and resource. It clearly distinguishes from related tools like formation_purchase_registered_agent (purchase vs set) and other formation_set_* setters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to pass use_default=true for Lovie's included agent (recommended for most founders) or use_default=false with a custom agent, providing clear context for both modes. It doesn't mention alternative tools or exclusions, but the in-tool choice is well covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_set_signatorySet Authorized PartyCInspect
SetAuthorizedParty sets the authorized signatory for formation documents
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable name (1-255 Unicode chars). | |
| No | |||
| phone | No | ||
| title | No | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| formationId | No | UUID value wrapper. |
| authorizedParty | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations signal that the tool is non-destructive and closed-world, but the description does not disclose any additional behavioral traits such as whether it overwrites an existing signatory, whether email/phone/title are optional, or what happens on partial updates. It merely restates the title without adding side-effect 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, tightly phrased sentence with no redundant words. It is front-loaded and easy to parse, though the name 'SetAuthorizedParty' is arguably redundant with the tool name, slightly reducing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, nested objects, and low schema coverage, the description is too sparse to give an agent a complete mental model. It does not clarify which parameters are required beyond the schema, nor does it explain return values or side effects, so the agent cannot reliably predict invocation behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at only 40%, the description should compensate for the missing parameter details on email, phone, and title, but it does not mention any parameters or their roles. The minimal indication that this is about a 'signatory' hints at the name parameter but fails to clarify required versus optional fields or the structure of the input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 ('sets') and the resource ('authorized signatory for formation documents'), making it distinct from other formation_set_* tools. It adds specificity beyond the title by mentioning formation documents, so an agent knows exactly what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like formation_add_shareholder or formation_set_company_name. It doesn't mention prerequisites, exclusions, or scenarios where this tool is appropriate, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_set_stateSet StateBInspect
SetState sets the state of formation (DE or WY) and returns available types
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| state | No | |
| formationId | No | UUID value wrapper. |
| stateDescription | No | |
| availableCompanyTypes | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (destructiveHint=false, openWorldHint=false) already indicate that the tool is non-destructive and operates within a closed world. The description adds that it 'returns available types,' but does not explain what those types are or how the state update behaves. Since annotations cover safety, a score of 3 is appropriate, but the description contributes minimal additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the core action without filler. It is efficient and well-structured for quick consumption, though the brevity sacrifices explanatory depth.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 nested parameters, an output schema, and many sibling formation tools, yet the description is under-specified. It does not clarify when to set state, what 'available types' refers to, or any constraints. An agent would need additional details to confidently select this tool among the many formation_* alternatives.
Complex tools with many parameters or behaviors need more documentation. 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 meaning to the 'state' parameter by explicitly naming valid values (DE or WY), which complements the schema's regex pattern. However, the 'formationId' parameter is not addressed in the description; only the schema's 'UUID value wrapper' note covers it. With schema description coverage at 50%, the description only partially compensates for the missing parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('sets the state of formation') and identifies the resource (formation) with specific state values (DE or WY). It is not a pure tautology, but the phrase 'returns available types' is vague and does not clearly distinguish this tool from similar formation setters like formation_set_company_name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus other formation-related setters. It does not mention alternatives, prerequisites, or exclusions. The single-sentence description lacks any usage context, leaving the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_start_formationStart FormationAInspect
THE entry point for a new company formation — runs anonymously, no sign-in required. Call this DIRECTLY whenever the user wants to start, create, or form a company or formation. Do NOT call company_get_my_companies or formation_get_list_formations first; those require auth and are only for existing records — starting a new formation needs neither. Returns a formation_id plus the ordered steps. Calling it again for the same signed-in user RESUMES the formation already in progress and returns its id with resumed=true — it does not create a second one, so a retry is safe. When resumed=true, tell the user which company you are continuing (the response carries its name) instead of assuming it is the one they just described. If they say they want a DIFFERENT, additional company, call again with force_new=true — that is the only time to set it; never set it to retry. Before walking the steps, briefly understand the user's business, experience, and funding (one question at a time), then give a tailored recommendation. Keep the formation_id and pass it to every later step. Call this exactly ONCE per formation — never start a second one to resume. When a later step needs sign-in, let the user connect and retry with the SAME formation_id; signing in automatically claims the in-progress formation, so it is never lost.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| forceNew | No | ||
| sessionId | No | UUID value wrapper. | |
| referralCode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| resumed | No | |
| sessionId | No | UUID value wrapper. |
| companyName | No | |
| currentStep | No | |
| formationId | No | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it runs anonymously with no sign-in, returns formation_id and steps, is idempotent on retry (resumed=true), and that signing in later claims the in-progress formation. This adds significant context beyond annotations (openWorldHint: false, destructiveHint: false), which only signal non-destructive 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?
Although long, each sentence delivers essential operational guidance (auth, resume, force_new, follow-up conversation, formation_id continuity). The primary purpose is front-loaded, and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of company formation, the description covers anonyminity, direct usage, resume semantics, force_new, how to handle resumed=true (tell user which company), what to do with formation_id, and the sign-in retry flow. It makes the tool fully actionable without requiring additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description offers detailed semantics for forceNew ('the only time to set it; never set it to retry'), which compensates for the low 25% schema coverage. However, source, sessionId, and referralCode are only exposed via schema enum/pattern and are not explained further, leaving partial 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 explicitly states 'THE entry point for a new company formation' and instructs to call it directly when the user wants to start, create, or form a company. It clearly distinguishes itself from list/get tools by noting they require auth and are for existing records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('Call this DIRECTLY whenever the user wants to start, create, or form a company or formation') and when-not-to-use alternatives ('Do NOT call company_get_my_companies or formation_get_list_formations first'). Also explains retry safety, force_new usage, and one-call-per-formation rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_submit_ein_filing_infoSubmit EIN Filing InfoADestructiveInspect
Collects and saves EIN (SS-4) filing information after the company is filed with the state. First ask whether the user has an SSN or ITIN; if they do not, set no_ssn and skip it — the EIN then takes ~45 business days via paper filing. Collect the remaining fields conversationally: date of birth, employee counts, first wages date, closing month of the accounting year, reason for applying, any prior EIN, and principal business activity.
| Name | Required | Description | Default |
|---|---|---|---|
| info | Yes | ||
| noSsn | No | ||
| ssnItin | No | ||
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hasSsn | No | |
| formationId | No | UUID value wrapper. |
| submittedAt | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the destructiveHint annotation: explains the no-SSN path leads to ~45 business days via paper filing, and describes the conversational collection flow. It does not contradict the annotations, and the destructive nature is already flagged, so the bar is lower.
Agents need to know what a tool does to the 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, followed by actionable instructions. Every sentence earns its place; no filler or redundant restating of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested info schema and output schema, the description covers the main workflow and lists most relevant fields. It omits some automatically-set fields like submittedAt/submittedVia, but these are likely system-managed. The behavioral details and clear field list make it sufficiently complete 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 directly explains the noSsn/ssnItin logic ('if they do not, set no_ssn and skip it') and enumerates the fields to collect (date of birth, employee counts, first wages date, etc.), which maps to the nested info object. This goes far beyond the schema's sparse descriptions and makes the parameters self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool collects and saves EIN (SS-4) filing information, with a specific timing condition ('after the company is filed with the state'). This distinguishes it from the sibling getter tool formation_get_ein_filing_info, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use it (after state filing) and detailed procedural guidance (first ask for SSN/ITIN, set no_ssn if absent, collect fields conversationally). However, it does not explicitly name alternative tools or state when not to use it, so it misses some exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_sweep_formation_order_statusSweep Formation Order StatusAInspect
SweepFormationOrderStatus polls CorpTools for the status of in-flight formation orders and updates each formation. Intended for the scheduled sweep (in-process subcommand) and manual/dry-run admin triggering.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | No | |
| scanned | No | |
| updated | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the tool updates each formation, which is a key behavioral trait beyond the sparse annotations (openWorldHint false, destructiveHint false). It also mentions dry-run triggering. No contradiction with annotations; the update is non-destructive in nature.
Agents need to know what a tool does to the world before calling 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 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?
The description covers purpose, intended usage, and dry-run mode. An output schema exists, so return value explanation is unnecessary. It lacks a precise explanation of the dry-run boolean's side effects, but overall is sufficient for a sweep 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 only parameter, dryRun, is contextually referenced in 'manual/dry-run admin triggering,' but its exact effect (e.g., suppressing updates) is not explicitly defined. With schema description coverage at 0%, the description could better explain parameter semantics, though the name itself is evocative.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 polls CorpTools for status of in-flight formation orders and updates each formation. The verb 'polls' and resource are specific, and the sweep nature distinguishes it from sibling tools like formation_get_formation or formation_update_formation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the tool is intended for the scheduled sweep (in-process subcommand) and manual/dry-run admin triggering, providing clear contextual guidance. It does not explicitly discuss when not to use alternatives, but the specified contexts are sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
formation_update_formationUpdate FormationAInspect
UpdateFormation applies a FieldMask-scoped patch to a formation. The caller supplies update_mask.paths to select the fields to replace.
| Name | Required | Description | Default |
|---|---|---|---|
| formation | Yes | ||
| updateMask | Yes | Comma-separated field paths. | |
| formationId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| formation | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide openWorldHint=false and destructiveHint=false. The description adds meaningful behavioral context: only fields listed in update_mask.paths are replaced, clarifying the partial-update semantics beyond what the annotations state. It does not cover permissions or error handling, but this is useful added detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, front-loaded sentences with no redundancy. Every clause contributes to understanding the tool's purpose and key behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large nested schema and three required parameters, the description covers the core mechanism but omits preconditions, list-field behavior, and relationship to specialized setter tools. The existence of an output schema reduces the need for return-value details, but operational guidance remains 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 schema already documents updateMask as 'Comma-separated field paths' and provides a deeply nested formation structure. The description adds the relationship between formation fields and updateMask paths, but it doesn't provide examples or clarify how the formation object should be populated. With 67% schema description coverage, the description only moderately 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 identifies the operation: 'applies a FieldMask-scoped patch to a formation.' This specific verb+resource combination distinguishes it from sibling creation, retrieval, and specialized setter tools by defining partial-update semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 partial updates by mentioning 'the caller supplies update_mask.paths to select the fields to replace,' but it does not explicitly state when to choose this over specialized setters like formation_set_company_name or provide exclusion criteria. It lacks an explicit when/when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_metrics_get_google_ads_campaign_windowGet Google Ads Campaign WindowARead-onlyInspect
GetGoogleAdsCampaignWindow aggregates each campaign over an arbitrary date range — the shape a charge is reconciled against. Distinct from the monthly list above, whose month key cannot describe a billing period that starts mid-month.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | ||
| periodEnd | No | ||
| customerId | No | ||
| periodStart | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| campaigns | No | |
| totalSpend | No | |
| currencyCode | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only and non-destructive behavior. The description adds useful context about aggregation shape and reconciliation, going beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with the main action and immediately followed by a valuable distinction. 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 read-only aggregation tool with an output schema, the description covers purpose, use case, and distinction from a sibling. It lacks explicit parameter guidance but is otherwise sufficient for straightforward 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 0%, and the description only loosely implies the date range parameters via 'arbitrary date range'. It does not explain companyId or customerId, though the parameter names are self-descriptive. Partial compensation 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 the tool 'aggregates each campaign over an arbitrary date range' — a specific verb and resource. It also explicitly distinguishes itself from the monthly list, making its unique purpose clear among 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?
It names the alternative directly: 'Distinct from the monthly list above' and explains why that alternative fails for mid-month billing periods, giving a clear rule for when to prefer this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_metrics_get_list_google_ads_campaign_metricsList Google Ads Campaign MetricsARead-onlyInspect
List per-campaign monthly metrics for a company, with optional customer/campaign/month filtering and offset pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| companyId | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| metrics | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe read operation. The description adds valuable behavioral context about filtering capabilities (customer/campaign/month) and the offset pagination mechanism, which are not evident from annotations alone. It does not contradict 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, dense sentence that front-loads the action and resource. Every phrase contributes meaning, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values do not need to be described. The description covers the core scenario, filters, and pagination. It lacks explicit mention of default behavior when no filters are provided, but the phrase 'optional filtering' implies it, making the tool reasonably complete for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given the 0% schema description coverage, the description compensates by mapping high-level concepts: 'company' to companyId, 'customer/campaign/month filtering' to the filter object, and 'offset pagination' to pageToken/pageSize. It does not detail exact formats, but schema patterns exist for month fields, providing enough semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the action verb 'List' and specifies the resource as 'per-campaign monthly metrics' for a company, making it clear this is a listing operation. It distinguishes itself from sibling tools like google_ads_metrics_get_google_ads_campaign_window (a getter for a single campaign window) and summarization 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 states it lists metrics with optional customer/campaign/month filtering and offset pagination, indicating when this tool is appropriate. However, it does not explicitly mention when to use alternative tools, such as the get-window variant for a single campaign summary, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_get_invoiceGet InvoiceDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| invoice | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_get_invoice_pdf_urlGet Invoice PDF URLARead-onlyInspect
GetInvoicePdfUrl returns a short-lived signed S3 URL for the rendered PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expiresAt | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe read operation (readOnlyHint=true, destructiveHint=false). The description adds valuable behavioral context: the URL is short-lived and signed, which implies expiration and access requirements. This goes beyond the annotations and helps the agent understand the nature of the return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and outcome. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, an output schema present, and annotations covering safety, the description is sufficient. It adds the key context about the signed S3 URL being short-lived. Minor gaps like exact expiration duration are not essential for tool invocation. The description is complete for 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?
Schema coverage is 100% for the single parameter (invoiceId, UUID value wrapper). The description does not add any parameter-specific details, so it relies on the schema entirely. Baseline 3 is appropriate given 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 a specific verb and resource: 'returns a short-lived signed S3 URL for the rendered PDF' for an invoice. It distinguishes from sibling tools by explicitly naming the invoice resource and the PDF URL 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 context via the resource and purpose but does not explicitly say when to use this over alternatives or mention exclusions. Sibling tools like invoice_get_invoice could be alternatives for invoice data, but no comparison is provided. The context is clear enough from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_get_list_invoicesList InvoicesDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| invoices | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_settings_get_invoice_settingsGet Invoice SettingsDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| settings | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kyc_get_kyc_statusGet KYC StatusARead-onlyInspect
GetKycStatus aggregates the user's inquiries into a single app-level KYC status. Safe to expose to agents.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| latestInquiryId | No | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds value by explaining that the tool aggregates inquiries (a behavioral detail) and explicitly states it's 'Safe to expose to agents.' This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two crisp sentences with no wasted words: one states the core behavior, the other a key safety property. Perfectly 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's simplicity (one parameter, output schema present, strong annotations), the description covers purpose and safety adequately. It could elaborate on what 'app-level' status means, but the output schema likely resolves that. Overall, complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the userId parameter described as a 'UUID value wrapper.' The description adds no additional parameter-specific meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'aggregates the user's inquiries into a single app-level KYC status.' It specifies a clear resource (KYC status) and action (aggregates/gets), and is distinct from all sibling tools as the only KYC-related 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 usage by its name and domain, but it does not explicitly say when to use it or provide alternatives/exclusions. There are no sibling KYC tools to differentiate from, but the lack of explicit usage context makes this only minimally adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_metrics_get_meta_ads_campaign_windowGet Meta Ads Campaign WindowCRead-onlyInspect
GetMetaAdsCampaignWindow aggregates each campaign over an arbitrary date range — the shape a charge is reconciled against.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | No | ||
| companyId | No | ||
| periodEnd | No | ||
| periodStart | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| campaigns | No | |
| totalSpend | No | |
| currencyCode | No |
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 a behavioral detail (aggregating over an arbitrary date range) and a semantic context (reconciliation shape), but it does not disclose any further traits such as pagination, required permissions, or how the data is structured beyond the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the core action ('GetMetaAdsCampaignWindow aggregates...'). It is appropriately sized, though the phrase 'the shape a charge is reconciled against' is cryptic and reduces 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?
The description is too minimal for a tool with 4 undocumented parameters and multiple closely related siblings. The output schema exists and annotations are present, but the description does not clarify parameter scoping (account vs company), the arbitrary date range semantics, or how this tool differs from 'ads_insight_summarize_campaign_window'.
Complex tools with many parameters or behaviors need more documentation. Simple 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 compensate. 'Arbitrary date range' loosely maps to periodStart/periodEnd, but the roles of accountId and companyId are left entirely unexplained, and the exact date format or requirement is not stated despite the schema regex.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('aggregates') and identifies the resource ('each campaign') over an 'arbitrary date range', making the core function clear. However, it does not explicitly distinguish itself from the sibling 'ads_insight_summarize_campaign_window' or clarify how it differs from platform-specific variants like Google/TikTok/X ads campaign windows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The phrase 'the shape a charge is reconciled against' hints at a reconciliation use case, but there is no mention of exclusions, prerequisites, or why one would choose this over 'ads_insight_summarize_campaign_window' or the other platform-specific campaign window tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification_get_list_notificationsList NotificationsBRead-onlyInspect
GetListNotifications lists notifications for the caller with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalCount | No | |
| unreadCount | No | |
| nextPageToken | No | |
| notifications | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the useful behavioral detail that it is scoped to the caller and supports filtering/pagination. It does not describe return format or ordering, but given the annotations, the added value is sufficient for a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the main action and key features. 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 tool has a complex filter object with multiple optional fields, but the description only says 'filtering' without elaborating what filter dimensions exist. While output schema covers return values, the description leaves parameter semantics and pagination behavior underspecified for a list tool with this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meanings. It only mentions 'filtering and pagination' generically, without explaining specific filter fields (ids, types, userId, unreadOnly) or pageSize/pageToken semantics. This barely adds value beyond the schema structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'lists notifications for the caller with filtering and pagination', which clearly identifies the verb and resource. It distinguishes from the sibling 'notification_get_notification' by being a list operation, though it does not explicitly mention that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for the caller' gives clear context about scope, indicating this returns the caller's own notifications. It does not explicitly discuss alternatives or exclusions, but the context is clear enough to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
notification_get_notificationGet NotificationARead-onlyInspect
GetNotification returns a single notification owned by the caller
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notification | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, covering the safety profile. The description adds the ownership constraint ('owned by the caller'), which is useful behavioral context beyond the annotations. However, it does not disclose other behaviors such as error handling or pagination, which are beyond the annotations but not required for a simple get-by-id read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the action ('returns') and resource. Every word serves a purpose, with no redundancy or fluff. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-by-id tool with a rich output schema and clear annotations, the description is sufficient. It communicates the key scoping constraint (ownership) and the return of a single notification. No additional details about return values are needed because the output schema is present. It lacks only explicit alternative guidance, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'id' with a description 'UUID value wrapper', giving 100% schema_description_coverage. The tool description adds no additional parameter meaning beyond what the schema provides. Per the baseline rule, a score of 3 is appropriate as the schema carries the semantic burden and the description does not compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'returns a single notification owned by the caller' clearly states a specific verb ('returns') and resource ('notification'), with an important scope qualifier ('owned by the caller'). It distinguishes this tool from the sibling 'notification_get_list_notifications' by explicitly saying 'single', which is a clear differentiating factor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving one specific notification by ID, and the ownership qualifier provides context. However, it does not explicitly mention when to use this tool versus alternatives, nor does it state any exclusions or prerequisites. The guidance 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.
payment_get_list_paymentsList PaymentsDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| payments | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payment_get_paymentGet PaymentDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| payment | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
saved_view_get_default_saved_viewGet Default Saved ViewARead-onlyInspect
GetDefaultSavedView returns the calling user's pinned default view for a datatable (empty when none is pinned)
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| datatableCode | Yes | Lowercase kebab-case code identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| savedViewId | No | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral context: it returns the 'calling user's' pinned view and explicitly notes 'empty when none is pinned', which clarifies the empty-result behavior 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 sentence that is front-loaded with the verb and resource. It includes only essential information (pinned default, calling user, empty-when-none) and adds no filler or redundant repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, strong annotations, 100% parameter coverage, and an output schema, the description is complete. It covers the key behavioral nuance (empty when none pinned) 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%, with both parameters described (companyId as UUID value wrapper, datatableCode as lowercase kebab-case). The description does not add parameter-level semantics, but the schema fully handles this, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('returns') and identifies the exact resource: the calling user's pinned default view for a datatable. It clearly distinguishes this tool from siblings like saved_view_get_saved_view and saved_view_get_list_saved_views by emphasizing 'default' and 'pinned'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 the calling user's pinned default view for a datatable. However, it does not explicitly state when to use this instead of the sibling saved_view tools or provide exclusions, so guidance is implied but not fully articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
saved_view_get_list_saved_viewsList Saved ViewsARead-onlyInspect
GetListSavedViews lists saved views with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| savedViews | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds minimal behavioral context ('filtering and pagination') that is already visible in the schema, so it does not significantly go 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 sentence, front-loaded, and contains no redundant wording. It efficiently communicates 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?
Given the read-only annotations and the presence of an output schema, the description is minimally viable for a list operation. However, it does not explain filter usage or pagination details, leaving some nuance to the schema, which is acceptable 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 description coverage is 0%, and the description only mentions 'filtering and pagination' without explaining the filter fields, pageSize, or pageToken semantics. The schema's nested descriptions ('UUID value wrapper', 'Lowercase kebab-case code identifier') provide slight help but are insufficient to fully compensate for the lack of parameter guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'lists' and resource 'saved views', making the purpose unambiguous. It also distinguishes from sibling tools like saved_view_get_saved_view by indicating this returns multiple views with filtering/pagination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 listing saved views but does not explicitly state when to use this tool over alternatives like saved_view_get_saved_view or saved_view_get_default_saved_view. No exclusions or alternative guidance are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
saved_view_get_saved_viewGet Saved ViewARead-onlyInspect
GetSavedView retrieves a single saved view by ID
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| savedView | No |
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 minimal context beyond the ID scoping, which is already evident from the tool name. No additional behavioral traits such as return format, pagination, or errors are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, 'GetSavedView retrieves a single saved view by ID,' which is front-loaded and contains no filler. Every word contributes to 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?
For a simple single-get operation with one parameter, an output schema, and annotations covering read-safety, the description is sufficient. It lacks explicit differentiation from sibling get-list/default tools, but that is not critical for completeness. Overall, the definition fully equips an agent for a straightforward ID-based retrieval.
Complex tools with many parameters or behaviors need more documentation. 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 a single required 'id' parameter with a nested 'value' UUID wrapper, and the schema description coverage is 100%. However, both the schema and tool description provide only minimal semantic information (e.g., 'UUID value wrapper'), adding little meaning beyond the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'GetSavedView retrieves a single saved view by ID' uses a specific verb ('retrieves'), names the resource ('saved view'), and specifies the scope ('by ID'). This clearly distinguishes it from sibling tools like saved_view_get_list_saved_views and saved_view_get_default_saved_view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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. The phrase 'by ID' implies it is for fetching a specific saved view when the ID is known, but it does not mention list/default alternatives or exclusion criteria. Thus, usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shopify_orders_get_shopify_payout_ordersGet Shopify Payout OrdersARead-onlyInspect
GetShopifyPayoutOrders lists the orders that make up a single payout, with the payout's authoritative gross/fees/net — the shape a deposit is reconciled against.
| Name | Required | Description | Default |
|---|---|---|---|
| payoutId | No | ||
| companyId | No | ||
| shopDomain | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| net | No | |
| fees | No | |
| gross | No | |
| orders | No | |
| orderCount | No | |
| currencyCode | No |
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 agent knows it is a safe read operation. The description adds valuable context by specifying that it returns the authoritative gross/fees/net and the deposit reconciliation shape, which goes beyond the 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 a single, front-loaded sentence that efficiently conveys the purpose and a key detail (authoritative gross/fees/net). There is no fluff or repetition of annotation information, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The overall purpose is clear and the output schema likely describes the return shape, but the description does not explain the meaning or necessity of companyId and shopDomain, nor any prerequisites. Given the 0% schema description coverage and 3 parameters, the lack of parameter guidance 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%, so the description must compensate. It only hints at payoutId via 'single payout' and does not explain companyId or shopDomain at all. The parameter names are somewhat self-explanatory, but the description adds minimal meaning for two of the three 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 the orders that make up a single payout, with a specific verb ('lists'), a resource ('orders'), and a clear scope ('single payout'). It also distinguishes itself by referencing the payout's authoritative gross/fees/net and the reconciliation context, which is distinct from any sibling 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 provides clear context for when to use the tool: when reconciling a deposit against a payout. It implies the use case but does not explicitly mention alternatives or exclusions. There are no sibling tools specifically for Shopify payouts, so this is reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signature_create_envelopeCreate Signature EnvelopeAInspect
Open a multi-signer signature envelope for an already-created company document. Prefer the composite signature_send_document_for_signature tool; this low-level primitive never returns signing tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| signers | No | ||
| envelope | Yes | ||
| accessCode | No | ||
| documentS3Key | No | ||
| documentS3Bucket | No | ||
| reminderIntervalDays | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| envelopeId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it states the tool is a low-level primitive and that it never returns signing tokens, which is a useful caveat. Annotations only declare openWorldHint and destructiveHint, so the description partially covers the behavioral burden, though it does not mention side effects like email sending or state 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, fully front-loaded with the main purpose and followed by usage guidance. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is short but covers core purpose and a key caveat. However, the tool has 6 parameters, nested structures, and an output schema (not shown). It does not mention prerequisites (other than already-created document), expected state transitions, or error behavior. Given the complexity, a bit more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any parameters. The tool name and phrase 'multi-signer signature envelope' hint at signers and envelope, but the description does not clarify key fields like documentS3Key, accessCode, or envelope structure. The schema is complex with nested objects, yet the description offers no compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Open') and resource ('multi-signer signature envelope') and clarifies the prerequisite ('already-created company document') and the level ('low-level primitive'). It clearly distinguishes itself from the preferred composite tool, signature_send_document_for_signature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 prefer the composite tool signature_send_document_for_signature when possible, and notes that this tool never returns signing tokens. This provides clear 'when to use vs alternative' guidance and warns about a limitation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signature_get_consent_documentGet Consent DocumentARead-onlyInspect
GetConsentDocument returns the currently effective ESIGN consent version (or a specific historical version when id is provided).
| Name | Required | Description | Default |
|---|---|---|---|
| consentVersionId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| version | No |
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 description's safety profile is covered. It adds useful context about returning current vs. historical versions, but lacks details on potential errors, authentication, or behavior when no consent 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 a single sentence, front-loaded with the verb and resource, and contains no redundant information. It is both concise and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read operation, the description provides sufficient context about behavior. An output schema exists, so return-value details are covered, and the description adequately handles the primary use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no description for consentVersionId (coverage 0%), so the description compensates by explaining that providing an id retrieves a specific historical version. However, it refers to 'id' rather than the exact parameter name, which is a minor 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 uses a specific verb ('returns') with a clear resource ('currently effective ESIGN consent version') and explicitly distinguishes between current and historical versions. It stands apart from sibling tools by focusing on consent documents rather than envelopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies usage: omit the optional id to get the current version, or provide a specific historical version id. It does not name alternative tools, but the context is sufficient for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signature_get_list_signature_envelopesList Signature EnvelopesDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| envelopes | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signature_get_signature_envelopeGet Signature EnvelopeDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | No | |
| envelope | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signature_run_remindersRun Signature RemindersAInspect
RunSignatureReminders sweeps every Lovie Sign envelope that is still awaiting signature — SAFEs and plain documents alike; Docusign envelopes are excluded because Docusign runs its own reminders — and re-emails the signing link to the signers whose turn it currently is. The sweep is platform-wide, never scoped to the caller's company: it mails every tenant's pending signers and the response lists their emails. The cadence is whatever was configured per envelope when it was sent, capped at 5 (MaxRemindersPerTurn) reminders per signing turn. Each reminder rotates that signer's token, so every link emailed to them earlier stops working. Runs on the syncer cron; also reviewer-invokable for a manual sweep. dry_run reports the would-be sends without emailing, rotating, or persisting anything.
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| sent | No | |
| errors | No | |
| scanned | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (openWorldHint=true, destructiveHint=false), the description discloses several surprising behaviors: it rotates signer tokens so 'every link emailed to them earlier stops working,' it operates 'platform-wide, never scoped to the caller's company,' and dry_run 'reports the would-be sends without emailing, rotating, or persisting anything.' These details give the agent a clear mental model of side effects and boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but every sentence contributes essential information: scope, exclusions, cadence cap, token rotation, invocation mode, and dry-run behavior. There is minor redundancy (platform-wide/unscoped repetition), but the structure is logical and front-loaded with the core action. It earns its length given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all important operational aspects for this complex global operation: what it acts on, what it excludes, cadence limits, side effects, scheduling context, and dry-run mode. Since an output schema exists, the response format ('lists their emails') is mentioned without over-explaining. The tool feels fully specified for an agent to call safely.
Complex tools with many parameters or behaviors need more documentation. 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 schema description coverage, the description compensates by explaining the sole parameter dryRun in functional terms: 'dry_run reports the would-be sends without emailing, rotating, or persisting anything.' This conveys the semantic meaning and safety implications of the boolean, going beyond the schema's bare type declaration. It doesn't specify the default value, but that is not critical for a single optional flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'sweeps' and identifies the resource ('every Lovie Sign envelope awaiting signature') plus the exact action ('re-emails the signing link to the signers whose turn it currently is'). It clearly distinguishes itself from sibling tools by excluding Docusign envelopes and noting the platform-wide scope, making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states that the tool 'runs on the syncer cron' and is 'reviewer-invokable for a manual sweep,' providing clear context for when it is used. It also explains why Docusign envelopes are excluded (they run their own reminders), effectively indicating when this tool is not applicable. It doesn't explicitly name alternative tools, but the operational guidance is sufficient for agent selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
signature_signing_statusGet Envelope SignersARead-onlyInspect
GetEnvelopeSigners lists an envelope's signers and their signing progress.
| Name | Required | Description | Default |
|---|---|---|---|
| envelopeId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| signers | No | |
| totalCount | No | |
| signedCount | No |
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 known. The description adds the small behavioral detail of 'signing progress,' which is useful but does not go beyond that. No pagination or response format context is given, but output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the purpose and contains no unnecessary words. It is 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 simple read-only tool with one parameter and an output schema, the description is largely complete. It explains what the tool returns (signers and progress) and is consistent with annotations. A minor gap is that it does not explicitly state that envelopeId is required, but this is inferable from the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter, envelopeId, with 0% schema description coverage. The description says 'an envelope's signers,' which implies envelopeId identifies the envelope, adding some semantic meaning. However, it does not explicitly describe the parameter format or requirements beyond what the schema provides (maxLength).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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 an envelope's signers and their signing progress, which is a specific verb+resource. It distinguishes from siblings like signature_get_signature_envelope (envelope details) and signature_get_list_signature_envelopes (list of envelopes) by focusing on signers and progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving signer information but does not explicitly state when to use this tool versus alternatives such as signature_get_signature_envelope. No exclusions or alternative comparisons are provided, leaving the agent to infer from the title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tik_tok_ads_metrics_get_tik_tok_ads_campaign_windowGet Tik Tok Ads Campaign WindowBRead-onlyInspect
GetTikTokAdsCampaignWindow aggregates each campaign over an arbitrary date range — the shape a charge is reconciled against.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | No | ||
| periodEnd | No | ||
| periodStart | No | ||
| advertiserId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| campaigns | No | |
| totalSpend | No | |
| currencyCode | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds context about arbitrary date ranges and reconciliation shape, which goes beyond the schema, but it doesn't describe pagination, data freshness, or behavior with missing parameters.
Agents need to know what a tool does to the 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 redundancy, and it front-loads the core action. The dash adds a clarifying descriptor. 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?
Output schema and annotations provide return structure and safety, so the description doesn't need to cover those. However, it lacks parameter guidance and relies on the name for platform context. The reconciliation use case is clear, but the overall description is minimal for a 4-param tool with zero schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple 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 for parameter meanings, but it only hints at 'date range' without explaining periodStart/periodEnd formats or the roles of companyId and advertiserId. No parameter details are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it aggregates campaigns over a date range and mentions the reconciliation shape, which is a specific verb+resource. It doesn't explicitly differentiate from sibling metric tools (e.g., Google/Meta/X ads), but the TikTok scope is in the name and the reconciliation angle adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies usage for reconciling charges against campaign aggregates, but there is no explicit when-to-use or alternatives. It doesn't say 'use instead of X' or mention prerequisites, so guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transaction_categorize_transactionCategorize TransactionAIdempotentInspect
Set a transaction's category by taxonomy option code (e.g. "ai-products", "meals", "cloud-hosting"). Applies to the sign-appropriate detail field (income vs expense) and the umbrella category automatically. Writes a user override that AI enrichment never overwrites, and the bookkeeping journal entry re-derives from the new category. Find valid codes via field tools (list options of the income-category / expense-category fields).
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| transactionId | Yes | UUID value wrapper. | |
| categoryOptionCode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| optionPath | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (idempotentHint true, destructiveHint false), the description discloses significant side-effects: it applies to both the income/expense detail field and umbrella category, writes a permanent user override that AI enrichment never overwrites, and causes the journal entry to re-derive. This is rich, contextual 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?
Four sentences, each adding unique value. The first states the core action, the second and third describe automatic side-effects, and the fourth provides code discovery guidance. 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?
With an output schema and annotations present, the description sufficiently covers purpose, side-effects, and parameter sourcing. The only minor gap is that categoryOptionCode is optional in the schema while the description implies it is always needed for the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: companyId and transactionId only have 'UUID value wrapper', while categoryOptionCode lacks a description. The description adds meaning by explaining categoryOptionCode is a taxonomy option code, giving examples, and directing to field tools for valid options. This compensates for the undocumented 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 opens with a specific verb+resource+method: 'Set a transaction's category by taxonomy option code'. Examples clarify the code format, and the final sentence directs to field tools for valid codes, distinguishing this tool from the sibling 'transaction_suggest_transaction_category' which suggests rather than sets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs to find valid codes via field tools before using this tool, giving a clear prerequisite. It implies this is for manual categorization vs. suggestion, but does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transaction_document_get_list_transaction_documentsList Transaction DocumentsCRead-onlyInspect
List transaction documents with filtering and pagination
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| documents | No | |
| totalCount | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is established. The description adds that filtering and pagination are supported, but it doesn't disclose nuances such as how pagination tokens behave, what filtering options are available, or what kind of transaction documents are returned. This adds little beyond the annotations and schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, front-loaded and free of filler. However, it is so brief that it under-specifies the tool's capabilities and parameters, which reduces the effectiveness of its conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complex input schema with nested filter objects and the presence of an output schema, the description is too sparse. It doesn't clarify what transaction documents are, how the filters interact, or how pagination works. The output schema exists but does not compensate for the missing explanatory 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 0%, so the description carries the full burden of explaining parameters. It only says 'with filtering and pagination' without detailing the 'filter' object's fields (ids, companyIds, transactionIds) or the semantics of pageSize and pageToken. This provides minimal value over the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists transaction documents with filtering and pagination. It uses a specific verb and resource, but it doesn't distinguish this from sibling tools like documents_list_documents or transaction_get_list_transactions, relying on the name to imply uniqueness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of alternatives. The description merely states the action and capabilities without indicating context or excluding cases where other list tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transaction_get_list_transactionsList TransactionsBRead-onlyInspect
List transactions with filtering, sorting, and pagination Supports: filtering by account, counterparty, card, types, statuses, date range, amounts Supports: sorting by date, amount, created_at, status, type (ascending or descending)
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| pageToken | No | ||
| sortField | No | ||
| sortOrder | No | ||
| includeTotalCount | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalCount | No | |
| transactions | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description only restates capabilities already visible in the schema (filtering/sorting/pagination) and adds no new behavioral context such as default page size, result truncation, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the verb, but the duplicated 'Supports:' structure and missing period make it slightly awkward. No redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (nested filter object, 6 top-level parameters, advanced filters), the description provides only a high-level summary. Output schema covers return structure, but usage guidance for advanced filters and pagination is lacking.
Complex tools with many parameters or behaviors need more documentation. 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 lists key filter dimensions (account, counterparty, card, types, statuses, date range, amounts) and sorting fields, adding meaning beyond the schema property names. However, it omits many advanced filter options (providers, companyIds, searchTerm, fieldFilters, relatedFieldFilters) and doesn't explain pageToken or includeTotalCount semantics, so coverage is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List transactions' with filtering, sorting, and pagination, clearly identifying the operation as a read/list. It implicitly distinguishes from siblings like transaction_get_transaction and transaction_get_summary, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use: when a list of transactions is needed with filtering, sorting, or pagination. It does not mention alternatives or exclusions, so no explicit when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transaction_get_summaryGet SummaryBRead-onlyInspect
Aggregate transactions into P&L groups (income/expenses) by a given dimension
| Name | Required | Description | Default |
|---|---|---|---|
| filter | Yes | ||
| fieldId | No | UUID value wrapper. | |
| groupBy | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| netPl | No | |
| groups | No | |
| totalIncome | No | |
| totalExpenses | No |
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 safe read-only profile is known. The description adds the P&L grouping behavior but does not disclose filtering constraints, default grouping behavior, or other operational traits 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, front-loaded with the action 'aggregate transactions into P&L groups', 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?
Given the large and complex filter object, three parameters, and the existence of an output schema, the description is adequate but minimal. It conveys the high-level function but does not elaborate on groupBy enum values or filter usage, which are important 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 33%, and the description does not explain the required 'filter' parameter or the role of 'fieldId'. It only hints at 'groupBy' through 'by a given dimension', leaving major parameter semantics unaddressed for a complex nested filter object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'aggregate' and resource 'transactions' with a clear outcome ('P&L groups'), distinguishing it from raw transaction listing/getting tools. However, it does not explicitly differentiate from sibling 'accounting_get_profit_and_loss', which also produces P&L summaries, so it is not fully distinguishing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied by 'aggregate' and the summary-oriented name, but there is no explicit guidance on when to use this tool versus alternatives like transaction_get_list_transactions. No exclusions or alternative tool references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transaction_get_transactionGet TransactionBRead-onlyInspect
Get a single transaction by ID or reference number
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| transaction | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safe-read nature is established. The description adds that it retrieves a single transaction and mentions reference number as an alternative identifier, but doesn't disclose other behavioral aspects like exact response content or limits. This is mildly additive but not extensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no fluff; front-loads the verb and resource. It is appropriately short for a simple getter and every word adds meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 one-parameter read-only tool with an output schema, the description is mostly sufficient. However, it lacks usage guidance relative to sibling transaction tools and introduces a potential reference-number discrepancy, so it's 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 coverage is 100% with a single parameter, so the baseline is 3. However, the description's mention of 'reference number' is not represented in the schema, which expects a UUID value wrapper. This creates ambiguity about accepted input formats, so the description slightly misleads rather than clarifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' with a resource 'single transaction' and specifies identifier types (ID or reference number). This clearly distinguishes it from list or summary transaction tools and is unambiguous about 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 no guidance on when to use this tool versus transaction_get_list_transactions or transaction_get_summary. It only states what it does, leaving the agent to infer from the name and context rather than giving explicit alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transaction_suggest_transaction_categorySuggest Transaction CategoryARead-onlyInspect
Recommend a bookkeeping category for a transaction using the platform classifier agent. Returns ranked taxonomy option codes with confidence and a short rationale; writes nothing. Apply one with CategorizeTransaction.
| Name | Required | Description | Default |
|---|---|---|---|
| companyId | Yes | UUID value wrapper. | |
| transactionId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| suggestions | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'writes nothing', which reinforces the readOnlyHint true annotation. It also discloses the return content: 'ranked taxonomy option codes with confidence and a short rationale,' providing useful behavioral context beyond the annotations. 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 with no filler. The first sentence leads with the primary purpose, and the second adds key differentiators (return type and non-mutating behavior). Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with two required parameters and an existing output schema, the description is complete. It states what the tool does, what it returns, that it writes nothing, and how to apply the result. No additional context is needed 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 provides descriptions for both parameters (100% coverage) as 'UUID value wrapper.' The tool description does not add parameter-specific meaning, so it does not exceed the schema baseline. The description's reference to 'a transaction' is generic and not tied to the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Recommend a bookkeeping category for a transaction') and the mechanism ('using the platform classifier agent'). It also distinguishes itself from the sibling tool transaction_categorize_transaction by noting it 'writes nothing' and explicitly points to that tool for applying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit alternative: 'Apply one with CategorizeTransaction.' This makes the intended use clear—this tool generates suggestions, while the sibling applies them. It also implies when to use it (when a recommendation is needed) and distinguishes it from the write operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
user_get_userGet UserBRead-onlyInspect
GetUser returns a single user by internal id or Clerk id
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | UUID value wrapper. | |
| No | |||
| externalId | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| user | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe read-only operation. The description adds that lookup is by internal id or Clerk id, but it omits the email parameter also present in the schema, which could mislead an agent into thinking email is not a valid lookup key. It also doesn't disclose behavior for multiple parameters or not-found cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It front-loads the core purpose. However, it could have been slightly more comprehensive without becoming verbose, so it loses one point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is minimally viable: it states the core action and primary identifiers. But it lacks mention of the email lookup option, which is a clear gap. The presence of an output schema and annotations reduces the burden for explaining return values and safety.
Complex tools with many parameters or behaviors need more documentation. Simple 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% (id has a 'UUID value wrapper' description; email and externalId lack meaningful descriptions). The description adds some semantic mapping ('internal id' to id, 'Clerk id' to externalId) but entirely ignores the email parameter, so it fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a single user, with a specific verb (returns), resource (user), and scope (by internal id or Clerk id). This distinguishes it from the many other get_* sibling tools, as no other tool retrieves a user by these identifiers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, nor any situational context or exclusions. The description only states what it does, leaving the agent to infer usage from the schema and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendor_bill_cancel_vendor_billCancel Vendor BillADestructiveInspect
Cancel an open vendor bill so it no longer counts as an open payable. Only OPEN bills can be cancelled; a bill already paid or cancelled cannot.
| Name | Required | Description | Default |
|---|---|---|---|
| vendorBillId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint: true, and the description adds valuable context by explaining the effect ('no longer counts as an open payable') and the precondition (only OPEN bills). It could further disclose irreversibility or whether the bill record remains, but the current description goes beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise, and front-loaded. The first sentence states the action and effect; the second provides a clear constraint. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with annotations and an output schema, the description covers the key aspects: what it does, when it can be used, and the outcome. It could mention whether cancellation is reversible or what happens to the bill record, but such details are not essential given the annotations and 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 covers the single parameter vendorBillId with 'UUID value wrapper', which is high coverage. The description adds no further parameter-specific information, and the schema description itself is minimal. Without more explanation, the agent must infer the parameter's role from the tool name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter 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: 'Cancel an open vendor bill' and its purpose: 'so it no longer counts as an open payable.' It also distinguishes from sibling tools like vendor_bill_mark_vendor_bill_paid by explicitly limiting to open bills and noting paid/cancelled bills are ineligible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource 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 (only for open vendor bills) and explicitly states exclusions ('a bill already paid or cancelled cannot'). It lacks an explicit reference to alternative tools, but the conditions given are sufficient for most use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendor_bill_create_vendor_billCreate Vendor BillDInspect
| Name | Required | Description | Default |
|---|---|---|---|
| vendorBill | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| vendorBillId | Yes | UUID value wrapper. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendor_bill_get_list_vendor_billsList Vendor BillsDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | ||
| pageSize | No | ||
| companyId | Yes | UUID value wrapper. | |
| pageToken | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| totalCount | No | |
| vendorBills | No | |
| nextPageToken | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendor_bill_get_vendor_billGet Vendor BillDRead-onlyInspect
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
| vendorBill | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendor_bill_mark_vendor_bill_paidMark Vendor Bill PaidDInspect
| Name | Required | Description | Default |
|---|---|---|---|
| paidDate | No | ||
| vendorBillId | Yes | UUID value wrapper. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
x_ads_metrics_get_x_ads_campaign_windowGet X Ads Campaign WindowBRead-onlyInspect
GetXAdsCampaignWindow aggregates each campaign over an arbitrary date range — the shape a charge is reconciled against.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | No | ||
| companyId | No | ||
| periodEnd | No | ||
| periodStart | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| campaigns | No | |
| currencyCode | No | |
| totalSpendMicros | No |
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 the output shape is what a charge is reconciled against, which is useful context, but no additional behavioral details like default date ranges or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single sentence and efficient, but the second clause 'the shape a charge is reconciled against' is vague and may confuse rather than clarify.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 aggregation tool with a rich output schema, the description is minimal but adequate. It does not explain when to use this versus the Google/Meta/TikTok equivalents, nor the role of account/company parameters, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; the description only implies periodStart/periodEnd via 'arbitrary date range,' but leaves accountId and companyId unexplained. No param-level semantics beyond what the schema types show.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'aggregates' with resource 'each campaign' and specifies an arbitrary date range, making the core function clear. However, it does not differentiate from sibling platform-specific campaign window tools like google_ads_metrics_get_google_ads_campaign_window.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. It implies usage for campaign aggregation and reconciliation, but does not mention exclusions, prerequisites, or sibling tools.
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
- AlicenseNot gradedqualityCmaintenanceBanking infrastructure for AI agents: open accounts, issue cards, send SEPA/SWIFT payments, run mass payouts, and pay invoices via natural language.2MIT
- AlicenseNot gradedqualityAmaintenanceLet your AI send invoices and take payment — card or ACH. Free. Every write is confirm-gated, and it connects Claude, ChatGPT, or Cursor to your Holdings workspace.MIT
- AlicenseBqualityAmaintenanceAI-native business management — invoices, expenses, clients, products, quotes, and webhooks. 31 tools for Claude, Cursor, Windsurf, and Cline.1003399MIT
Your Connectors
Sign in to create a connector for this server.