Skip to main content
Glama

Server Details

Founder workflows for idea validation, branding, campaigns, landing pages, analytics, and CRM.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

B3.1/5.0
Disambiguation3/5

Domain prefixes (crm., cap_table., landing.) clearly separate broad modules, and most tools target a specific resource and action. However, within modules there are boundary overlaps—crm.add_contact_note vs crm.log_activity and cap_table.dilution_preview vs cap_table.simulate_raise—where descriptions must be read carefully to avoid a wrong pick.

Naming Consistency3/5

The dominant pattern is module.verb_noun (e.g., crm.create_lead, cap_table.update_stakeholder), which is clear and readable. But a subset of top-level tools uses object_verb with flat underscores (e.g., shortlink_create, qr_generate, campaign_archive) and one outlier (campaign_stats) breaks the verb pattern, so conventions are mixed.

Tool Count1/5

86 tools is an extreme surface for any single MCP server, well past the 50+ threshold that makes coherent selection impractical. Even though the features span several business domains, this would be far more usable split into focused servers per module.

Completeness4/5

The covered domains are broadly complete: cap table, CRM, incorporation, landing, projects, sparkroom, tasks, and validation all have read/write workflows with few dead ends. Minor gaps remain (no campaign listing/update, no branding palette delete/update, no contact deletion) but none of them blocks the main product workflows.

Available Tools

100 tools
branding.generate_paletteGenerate color palettesBInspect

Generate and save three private color-palette options for the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
descriptionYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior1/5

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

The annotations declare readOnlyHint=true, but the description says the tool will 'save' palette options, which is a state-changing write operation. This is a direct contradiction between the description and structured annotations, so per the rubric 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.

Conciseness5/5

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

A single, front-loaded sentence with no filler; the verb, resource, count, visibility, and scope are all present. Every word earns its place.

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

Completeness2/5

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

For a tool that generates and saves state, the description is too sparse: it omits what the 'description' parameter should contain, what happens when project_id is null, and how idempotency_key affects the save. The output schema may cover return shape, but input semantics and the annotation contradiction make the definition incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning, but it only clarifies project_id indirectly via 'selected project'. The required 'description' parameter is not explained at all, and idempotency_key semantics are left entirely to its name.

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

Purpose5/5

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

The description states a specific verb ('generate and save'), resource ('color-palette options'), and scope ('selected project'), with concrete details ('three private'). This clearly distinguishes it from sibling read tools like branding.get_palette and branding.list_palettes.

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

Usage Guidelines3/5

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

The description implies creation vs. retrieval through 'generate and save' and the sibling names 'get_palette/list_palettes', but it never explicitly states when to use this tool instead of alternatives. No exclusions or conditions such as 'use list_palettes to view existing palettes' are provided.

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

branding.get_paletteGet color paletteA
Read-onlyIdempotent
Inspect

Retrieve one saved private color palette from the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
palette_idYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructeveHint all set appropriately. The description adds context that the palette is 'saved' and 'privaate' and scoped to a project, which is useful but does not describe details like missing-resource behavior or permission requirements. The annotation coverage keeps the burder lower.

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

Conciseness5/5

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

One clean sentence with no filler. Every phrase ('one', 'saved', 'privaate', 'selected project') adds meaningful scope and contributes to the overall clarity.

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

Completeness4/5

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

For a simple read-only fetch tool with an output schema, rich annotations, and only two params, the description covers the core operation well. It could mention that project_d is nullable by default or explicitly point to list_palettes for discovery, but those are minor gaps given the schema and sibling tool context.

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

Parameters2/5

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

Schema description coverade is 0%, so the description needs to add meaning for palette_d and project_d. It only refers to 'the selected project' and 'one saved private color palette,' leaving the role and relation of both parameters largely implicit. The parameter names are fairly self-explanatory, but the description does not truly compensate for missing schema descriptions.

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

Purpose5/5

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

The description uses the specific verb 'Retrieve' and clearly names the resource: 'one saved private color palette' from 'the selected project.' This distinguishes it from branding.list_palettes (retrieving many) and branding.generate_palette (creating a new palette).

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

Usage Guidelines3/5

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

The description implies this tool is for fetching a single existing palette rather than listing or generating one, but it does not explicitly state when to use list_palettes to discover palette IDs or generate_palette for new palettes. Usage context is present but relies on inference.

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

branding.list_palettesList color palettesA
Read-onlyIdempotent
Inspect

List saved private color palettes for the selected project without changing them.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds scoping context ('saved', 'private', 'for the selected project') and repeats non-mutation, but does not describe output shape or pagination behavior.

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

Conciseness5/5

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

One short, front-loaded sentence with no filler. It states action, object, scope, and non-mutation efficiently.

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

Completeness4/5

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

For a simple read-only list operation with strong annotations and an output schema, the description covers what the tool is for and its scope. The only notable gap is the semantics of limit, but the schema's default and title make this a minor omission.

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

Parameters2/5

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

The schema has no per-parameter descriptions (coverage 0%), so the description must compensate. It addresses project_id through 'selected project' but says nothing about limit, its default, or behavior, leaving one of two parameters unexplained.

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

Purpose5/5

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

The description uses a specific verb ('List') and resource ('saved private color palettes'), scoped to the selected project, and explicitly states non-mutation. This clearly distinguishes it from siblings like branding.generate_palette and branding.get_palette by emphasizing plural saved palettes.

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

Usage Guidelines4/5

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

The description gives clear context: use this to list existing private palettes for a project, and the 'without changing them' clause rules out side effects. It does not explicitly name when to prefer get_palette or generate_palette, but the context is sufficient for a simple read-only list operation.

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

campaign_archiveArchive campaignB
Destructive
Inspect

Archive the selected campaign and deactivate its associated public short links.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
campaign_idYes
idempotency_keyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already flag destructive=true, readOnly=false, and idempotent=false. The description adds value by disclosing the concrete side effect of deactivating associated public short links, which is not visible in the schema or annotations.

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

Conciseness5/5

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

The description is a single front-loaded sentence stating the action and key side effect with no filler. Every phrase earns its place.

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

Completeness2/5

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

For a destructive 4-parameter tool with zero schema descriptions, important invocation details are missing: what confirmation_token is for, what project_id refers to, and how idempotency_key should be used. The output schema covers return values, but correct selection and invocation still depend on undocumented parameters.

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

Parameters1/5

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

The schema has 0% description coverage, and the description provides no parameter-level explanation. campaign_id and project_id are required, and confirmation_token/idempotency_key are left completely unexplained, so the agent cannot determine their meaning or purpose.

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

Purpose5/5

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

The description names a specific action (archive) and resource (campaign), and adds a distinctive side effect (deactivating associated public short links). This clearly separates it from sibling tools like campaign_pause or campaign_stats.

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

Usage Guidelines2/5

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

No guidance is given for when to choose this tool over alternatives such as campaign_pause, nor are prerequisites or workflow conditions mentioned. An agent must infer the appropriate use case from the word 'archive' alone.

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

campaign_createCreate campaignBInspect

Create a campaign with an internet-addressable slug and destination for the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
tagsNo
objectiveYes
project_idYes
destination_urlYes
idempotency_keyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already establish that this is non-readonly, non-idempotent, and non-destructive, so the description does not need to re-state those. It adds some context about campaign creation requiring a slug and destination, but it does not disclose side effects such as confirmation flow, external actions implied by confirmation_token, or the meaning of the idempotency_key. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no redundant filler. It is concise, but some of the key semantic content could be more informative within the same length.

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

Completeness2/5

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 leaves critical invocation semantics unclear: required parameters are only partially referenced, and the roles of confirmation_token and idempotency_key are completely absent. Given this is a mutating create operation with side effects, more contextual detail 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.

Parameters2/5

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

Schema description coverage is 0%, so the description needs to compensate for seven undocumented parameters. It only hints at destination_url and project_id, leaving name, objective, tags, idempotency_key, and confirmation_token entirely unexplained. This is a significant gap for a tool with four required parameters.

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

Purpose4/5

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

The description uses a specific verb and resource ('Create a campaign') and clearly distinguishes this from the sibling campaign tools (campaign_archive, campaign_pause, campaign_stats) which operate on existing campaigns. However, the phrase 'internet-addressable slug and destination' is somewhat jargon-heavy and not fully explained.

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

Usage Guidelines3/5

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

Usage context is implied: this is the creation tool among campaign operations, and it mentions 'for the selected project,' which signals the project_id requirement. But it does not explicitly state when to use this versus related project/campaign tools, nor does it mention prerequisites like the project already existing.

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

campaign_pausePause campaignC
Destructive
Inspect

Disable the selected campaign and change the behavior of its public campaign surface.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
campaign_idYes
idempotency_keyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already signal destructive and non-read-only behavior. The description adds that the public campaign surface changes, which is useful, but it does not explain whether the action is reversible, what exactly changes on the public surface, or what side effects occur. Given the destructiveHint, more behavioral disclosure was warranted.

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

Conciseness4/5

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

The description is a single short sentence, front-loaded with the core action. It is concise, though the phrase 'change the behavior of its public campaign surface' is somewhat vague and could have been more informative without adding length.

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

Completeness2/5

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

For a destructive mutation tool with four parameters including idempotency and confirmation token fields, the description is incomplete. It does not mention why confirmation_token or idempotency_key are relevant, nor the impact of pausing, recovery options, or expected output.

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

Parameters1/5

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

Schema description coverage is 0%, so the description needed to explain the parameters, but it only refers to 'the selected campaign.' It does not clarify campaign_id, project_id, idempotency_key, or confirmation_token, leaving the agent without semantic guidance for these four parameters.

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

Purpose4/5

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

The description clearly states the action ('Disable the selected campaign') and the affected resource, adding that the public campaign surface behavior changes. It is specific enough to distinguish pause from read-like siblings such as campaign_stats, though it does not explicitly contrast with campaign_archive.

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

Usage Guidelines2/5

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

No guidance is given about when to pause versus archive, create, or otherwise interact with campaigns. The description implies a mutating pause operation but provides no context for choosing this tool over campaign_archive or other campaign-related tools.

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

campaign_statsGet campaign statisticsB
Read-onlyIdempotent
Inspect

Retrieve private campaign performance statistics for the selected time window.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNo30d
project_idYes
campaign_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description is consistent with them — no contradiction. It adds modest context beyond annotations: 'private' implies access restrictions, and 'selected time window' scopes the result set. It doesn't address data freshness, rate limits, or error behavior, keeping it at 3.

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

Conciseness5/5

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

A single tight sentence with the action verb front-loaded and zero filler. Every word earns its place; appropriately sized for a modest read-only tool with a small parameter set.

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

Completeness3/5

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

An output schema exists and the annotations carry the safety profile, so the description needn't explain return values or side effects. However, with 0% schema coverage, real gaps remain: the role of the required-but-nullable project_id, acceptable window formats, and what 'performance statistics' actually include. Adequate core purpose, but not complete enough to guarantee correct first-try invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, and it barely does. 'Selected time window' sheds some light on the window parameter, but nothing explains project_id (required yet nullable with a null default — genuinely ambiguous), what window value formats are accepted, or how the two required ids relate. The description fails to close the coverage gap.

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

Purpose4/5

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

The description uses a specific verb ('Retrieve') and a specific resource ('private campaign performance statistics'), with a scope qualifier ('for the selected time window'). This clearly states what the tool does. It stops short of a 5 because it doesn't explicitly differentiate it from analytics siblings like landing.get_analytics.

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

Usage Guidelines3/5

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

The usage context is implied: an agent would infer this is the tool for campaign performance numbers over a time period. The word 'private' adds a mild scoping hint (access-restricted vs public stats), but there is no explicit when-to-use guidance, no named alternatives, and no exclusions relative to the other reporting tools in the sibling list.

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

cap_table.createCreate SparkCap draftA
Idempotent
Inspect

Create a private planning cap table within the selected project's plan limits. This does not establish an official ledger or issue securities.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
project_idYes
idempotency_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already indicate this is a mutating, idempotent, non-destructive operation. The description adds meaningful behavioral context beyond those annotations: the result is a private planning draft, it respects plan limits, and it has no official ledger or securities-issuance effect.

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

Conciseness5/5

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

The description is only two sentences, front-loads the core purpose, and every sentence adds value. The negative clarification about not creating an official ledger or issuing securities is concise and important.

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

Completeness3/5

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

The description adequately captures the tool's core purpose and limitations, and the output schema plus annotations cover some invocation details. However, it lacks explicit guidance on when to use this tool versus sibling cap_table operations and does not explain the meaning or requirement of idempotency_key or plan-limit failure behavior.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of explaining parameter meaning, but it does not mention project_id, data, or idempotency_key. The only hint is 'selected project's plan limits,' which vaguely relates to project_id but does not compensate 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.

Purpose5/5

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

The description states a specific verb and resource: 'Create a private planning cap table.' It also clarifies the distinct nature of the operation by explicitly saying it 'does not establish an official ledger or issue securities,' which differentiates it from related cap table or legal/ledger tools.

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

Usage Guidelines3/5

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

The description implies the use case by emphasizing 'private planning' and 'within the selected project's plan limits,' and it excludes official ledger creation. However, it does not explicitly name alternatives such as cap_table.create_stakeholder or explain when to choose those siblings instead.

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

cap_table.create_stakeholderAdd SparkCap stakeholderA
DestructiveIdempotent
Inspect

Add an address-free planning stakeholder, share position, SAFE, or note within plan limits after confirmation. Any existing public shares may reflect the addition immediately. Amounts are whole USD and discounts are fractions. No securities are issued or signed.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
project_idYes
cap_table_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

The annotations already flag readOnlyHint=false, idempotentHint=true, and destructiveHint=true. The description adds valuable context beyond those flags: additions are planning-only, public shares may update immediately, amounts are whole USD, discounts are fractions, and 'No securities are issued or signed.' These details help an agent understand side effects and constraints 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.

Conciseness5/5

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

The description is three sentences with no filler. The action is front-loaded, the immediate side-effect warning is placed second, and the unit constraints are packed into the final sentence. Every sentence earns its place.

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

Completeness2/5

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, this is a complex mutation with five required top-level parameters and a nested stakeholder object. The description omits required parameter roles, the versioning/idempotency workflow, confirmation token mechanics, and precise plan-limit behavior. An agent would likely need to inspect the schema carefully and still make uncertain assumptions.

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

Parameters2/5

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

Schema description coverage is 0%, so the description bears the burden of explaining parameters. It clarifies some units and constraints ('Amounts are whole USD and discounts are fractions') and hints at confirmation, but it does not explain expected_version, idempotency_key, confirmation_token, the relationship between shares/SAFE/note fields, or project/cap_table identifiers. This is insufficient compensation for a schema with no descriptions.

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

Purpose5/5

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

The description opens with a specific verb ('Add') and specifies the resource: 'an address-free planning stakeholder, share position, SAFE, or note.' It also names operative constraints ('within plan limits after confirmation'), which distinguishes this creation tool from cap_table.update_stakeholder and cap_table.delete_stakeholder. An agent can tell what it does without opening the schema.

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

Usage Guidelines2/5

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

The description does not say when to use this tool versus alternatives like cap_table.create, cap_table.update_stakeholder, or cap_table.simulate_raise. It implies prerequisites like plan limits and confirmation, but does not explain the decision boundary between this and other cap_table tools. No exclusions or alternative-specific guidance 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.deleteDelete SparkCap cap tableA
DestructiveIdempotent
Inspect

Delete the selected cap table and associated records after exact confirmation at the current version; any existing shared access stops.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
cap_table_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

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

The annotations already mark this as destructive, but the description adds meaningful behavioral detail: deletion cascades to associated records, a version check/exact confirmation is required, and shared access is revoked. This goes well beyond the annotations and gives the agent a clear picture of the 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.

Conciseness5/5

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

The description is a single dense sentence with no filler. It front-loads the primary action and scope, then adds the critical confirmation and side-effect details. Every clause earns its place.

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

Completeness4/5

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

For a highly destructive tool, the description covers the main invocation-relevant context: what gets deleted, the need for exact confirmation/current version, and that shared access stops. It does not mention permission requirements or recovery options, but the destructive annotation and availability of an output schema reduce the need for those details.

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

Parameters3/5

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

With 0% schema description coverage, the description partially compensates by giving meaning to expected_version and confirmation_token through 'exact confirmation at the current version'. However, it does not explain idempotency_key, project_id, or cap_table_id, nor how the confirmation flow actually works, leaving a meaningful gap in parameter understanding.

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

Purpose5/5

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

The description clearly identifies the action (delete), the resource (the selected cap table), and the cascade scope (associated records). It distinguishes itself from sibling cap_table.delete_stakeholder by indicating this is a whole-table deletion with associated records, not a single stakeholder removal.

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

Usage Guidelines3/5

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

The description implies when to use it: when deleting an entire cap table rather than an individual stakeholder. However, it never explicitly states 'use cap_table.delete_stakeholder for removing a single stakeholder' or provides any other exclusion/alternative guidance, leaving the routing partially 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.delete_stakeholderDelete SparkCap stakeholderA
DestructiveIdempotent
Inspect

Delete a selected planning stakeholder and associated records after exact confirmation at the current cap-table version. Any existing public shares reflect the removal immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
cap_table_idYes
stakeholder_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior5/5

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

The description goes beyond the annotations by disclosing specific side effects: it deletes associated records and that public shares are updated immediately. It also hints at the need for confirmation, which aligns with the confirmation_token parameter. No contradiction with destructiveHint or idempotentHint.

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

Conciseness5/5

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

The description is a single, focused sentence that conveys the primary action and key constraints without verbosity. It is well-structured and easy to parse, with no redundant phrasing.

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

Completeness4/5

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

Given the tool's destructive nature and its concurrency/idempotency requirements, the description covers the critical aspects: what is deleted, the need for confirmation, the version check, and the immediate effect on public shares. It does not explain idempotency_key, but that is a standard requirement and not necessary for basic understanding. Overall, it is complete enough for an agent to use correctly.

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

Parameters3/5

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

The description provides indirect context for parameters: 'current cap-table version' hints at expected_version, and 'exact confirmation' hints at confirmation_token. However, it does not explicitly map these terms to the schema parameters, and the schema itself has no descriptions. It adds some meaning but not comprehensive coverage.

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

Purpose5/5

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

The description clearly states the action (delete), the resource (a selected planning stakeholder), and includes contextual details (associated records, current cap-table version). It is unambiguous and distinguishes this from other cap_table operations by explicitly mentioning 'stakeholder' and 'associated records'.

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

Usage Guidelines3/5

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

The description implies the use case (deleting a stakeholder) but does not explicitly contrast with sibling tools like cap_table.update_stakeholder or cap_table.delete. It mentions preconditions like 'after exact confirmation' and 'at the current cap-table version' but does not provide clear when-to-use guidance relative to alternatives.

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

cap_table.dilution_previewPreview SparkCap dilutionA
Read-onlyIdempotent
Inspect

Read unsaved dilution scenarios from existing planning data without recording a financing event.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
cap_table_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already state readOnlyHint, idempotentHint, and destructiveHint. The description adds useful behavioral context by clarifying the tool reads unsaved/planning scenarios and does not record anything. This aligns with and reinforces the annotations without contradicting them.

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

Conciseness5/5

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

One tightly written sentence communicates the action, the object, the source, and the key side-effect absence. Every phrase earns its place, and the core behavior is front-loaded.

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

Completeness5/5

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

For a simple two-parameter read-only tool with an output schema and clear annotations, the description is complete enough. It states what is read, from where, and what is not modified, so an agent can correctly decide to invoke it.

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

Parameters2/5

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

The schema has 0% description coverage for its two required parameters, and the description does not explain project_id or cap_table_id beyond the general phrase 'existing planning data.' With the description carrying the burden for parameter meaning, this is a meaningful gap, even though the parameter names are fairly self-explanatory.

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

Purpose5/5

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

The description uses a specific verb ('Read') and resource ('unsaved dilution scenarios from existing planning data'), and explicitly states the key non-effect ('without recording a financing event'). This clearly distinguishes it from tools that create or record cap table events.

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

Usage Guidelines4/5

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

The description gives clear usage context: use this when you need to preview unsaved dilution scenarios from existing planning data and do not want to record a financing event. It does not explicitly name alternatives like cap_table.simulate_raise or state exclusions, 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.fully_dilutedModel fully diluted ownershipA
Read-onlyIdempotent
Inspect

Read unsaved fully diluted ownership including modeled SAFE/note conversions. Requires Startup or higher; conversion valuation is whole USD.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
cap_table_idYes
conversion_valuationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the read-only behavior is established. The description adds useful context beyond annotations: the ownership is 'unsaved,' conversions are modeled, an auth tier is required, and conversion valuation must be whole USD. No contradiction with annotations.

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

Conciseness5/5

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

The description is two sentences with no filler. It front-loads the action and scope, then adds the two most important constraints: plan requirement and unit format.

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

Completeness4/5

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

With an output schema, strong read-only annotations, and the key auth/unit details in the description, the definition is largely complete. The only minor gap is not explicitly routing the agent relative to closely related cap_table siblings like dilution_preview or simulate_raise, but this is not critical given the clear 'unsaved modeled' framing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does add real semantics for conversion_valuation by stating that it is a modeled SAFE/note conversion value and must be whole USD. project_id and cap_table_id are not elaborated, but their names and the tool name make them self-explanatory.

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

Purpose5/5

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

The description begins with a specific verb, 'Read,' and names the exact resource: 'unsaved fully diluted ownership including modeled SAFE/note conversions.' This clearly distinguishes the tool from plain cap table reads or writes by emphasizing the modeled/unsaved state.

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

Usage Guidelines4/5

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

It gives clear context for when to call this tool: when the user needs fully diluted ownership with modeled SAFE/note conversions, and it adds the license requirement ('Startup or higher'). It does not explicitly name sibling alternatives or say when not to use it, but the intended scenario is specific enough.

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

cap_table.getGet SparkCap cap tableB
Read-onlyIdempotent
Inspect

Read a planning cap table, address-free stakeholders, ownership summary, and opaque version for later edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
cap_table_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is established. The description adds context about the returned components and the opaque version for later edits, but it does not disclose additional behavioral details like error conditions or authentication requirements.

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

Conciseness4/5

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

The description is one compact sentence that front-loads the core verb and resource before listing returned items. There is no filler, though the phrasing is dense and 'opaque version' could be clearer.

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

Completeness4/5

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

For a simple read-by-ID operation with annotations covering safety and an output schema present, the description is mostly sufficient. It conveys the main purpose and output contents, but leaves terms like 'planning cap table' and 'opaque version' somewhat underspecified.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain project_id or cap_table_id beyond what their names imply. The parameter names are somewhat self-explanatory, but the description fails to compensate for the complete lack of schema descriptions.

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

Purpose4/5

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

The description clearly states the verb and resource: 'Read a planning cap table', and enumerates what is returned (address-free stakeholders, ownership summary, opaque version). It distinguishes this from mutation tools, though it does not explicitly contrast with sibling cap_table read tools like list or fully_diluted.

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

Usage Guidelines3/5

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

The phrase 'opaque version for later edits' implies this tool is intended for retrieval before editing, and the verb 'Read' signals read-only use. However, it does not name alternative tools or explain when not to use this one, so usage guidance is mostly implicit.

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

cap_table.get_usageGet SparkCap usageA
Read-onlyIdempotent
Inspect

Read the selected project's cap-table and stakeholder limits; optionally inspect one cap table's usage.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
cap_table_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description is consistent with those. The description adds some context by indicating project-level behavior and optional cap-table-level inspection, but it does not clarify how usage/limits are aggregated or what exactly is included.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. The semicolon cleanly separates the main behavior from the optional specialization, making it easy to scan.

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

Completeness4/5

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

Given the output schema, rich annotations, and low parameter complexity, the description is nearly sufficient. The only notable gap is a slight ambiguity between 'limits' and 'usage', but this does not block correct tool selection or invocation.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It loosely maps to the parameters by referencing 'selected project' for project_id and 'optionally inspect one cap table' for cap_table_id, but it provides no additional detail on constraints, null behavior, or the relationship between the two parameters.

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

Purpose4/5

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

The description uses a clear verb ('Read') and identifies the resource: the project's cap-table and stakeholder limits, with optional per-cap-table usage inspection. It is distinguishable from cap_table.get because it focuses on usage/limits, though it does not explicitly contrast with sibling tools.

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

Usage Guidelines3/5

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

The description implies this tool should be used when the agent needs usage or limit information, and it notes the optional cap-table scope. However, it does not provide explicit when-to-use/when-not-to-use guidance or name alternatives among the many cap_table.* siblings.

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

cap_table.hiring_impactModel SparkCap hiring impactA
Read-onlyIdempotent
Inspect

Read unsaved engineering-hire equity and runway estimates using existing stage benchmarks. Requires Growth or higher; this does not create grants or offers.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNomid
project_idYes
cap_table_idYes
company_stageNopre_seed
engineer_countYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior5/5

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 meaningful extra context: 'Requires Growth or higher' (permission level), 'unsaved' (no persistence), and 'this does not create grants or offers' (side-effect clarity). This goes beyond the annotations without contradicting them.

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

Conciseness5/5

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

The description is two sentences with no filler. The core action and scope are front-loaded, followed by permission and side-effect constraints. Every sentence earns its place.

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

Completeness4/5

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

For a read-only modeling tool with a rich output schema, the description covers purpose, permission, side effects, and methodology. It does not explain parameter roles, but the schema provides structure and defaults. It also does not explicitly differentiate from cap_table.simulate_raise or dilution_preview, which are closely related siblings, leaving a small selection ambiguity.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It gives only vague hints ('engineering-hire' implies engineer_count/level, 'stage benchmarks' implies company_stage) and says nothing about project_id or cap_table_id. The schema provides only titles and enums, so the agent is left to infer the meaning of most parameters.

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

Purpose5/5

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

The description states a specific verb ('Read') and a concrete resource ('unsaved engineering-hire equity and runway estimates'), and clarifies it does not create grants or offers. This distinguishes it from mutation siblings like cap_table.create_stakeholder and cap_table.update_stakeholder, and from simulation tools like cap_table.simulate_raise by narrowing to hiring-impact modeling.

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

Usage Guidelines4/5

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

The description provides clear context: use this for read-only hiring-impact estimates, requires Growth or higher, and does not create grants/offers. It implies when-not-to-use (when you need to create or modify grants), but it does not explicitly name alternative tools or state exclusion conditions, so it stops short of exhaustive routing guidance.

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

cap_table.listList SparkCap cap tablesA
Read-onlyIdempotent
Inspect

List planning cap tables in the selected project with bounded pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already establish that this is read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds the useful behavioral detail of 'bounded pagination,' but it does not disclose exact defaults, maximum limits, or whether results are ordered or complete. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every phrase contributes meaning: 'List' states the action, 'planning cap tables' the resource, 'selected project' the scope, and 'bounded pagination' the key behavioral qualifier.

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

Completeness5/5

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

For a simple read-only list tool, the description is sufficient. It names the resource, scope, and pagination behavior, while the output schema covers return-value details and the annotations cover safety semantics. No critical context is missing for an agent to invoke this correctly.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries some burden, but it partially compensates: 'selected project' points to project_id, and 'bounded pagination' points to limit/offset. It does not explain the specific default/max values or how offset interacts with pagination, though the schema constraints make those reasonably inferable.

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

Purpose5/5

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

The description states a specific verb ('List'), a clear resource ('planning cap tables'), and a scope ('in the selected project'). It also adds the 'bounded pagination' qualifier, which distinguishes it from single-record retrieval tools like cap_table.get and from analytical tools like cap_table.dilution_preview or cap_table.fully_diluted.

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

Usage Guidelines3/5

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

The description makes the primary use case clear: call this when you need the list of planning cap tables for a project, especially when pagination matters. However, it does not explicitly mention alternatives or state when NOT to use it, such as when a single cap table is needed via cap_table.get.

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

cap_table.simulate_raiseSimulate SparkCap raiseA
Read-onlyIdempotent
Inspect

Model an unsaved SAFE, note, or priced round. Supply whole USD and discount fractions (0.20 means 20%). Calculations are planning estimates, not executed financing or legal advice.

ParametersJSON Schema
NameRequiredDescriptionDefault
scenarioYes
project_idYes
cap_table_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior; the description adds that the round is unsaved, results are planning estimates, and outputs are not executed financing or legal advice. This is meaningful context beyond the annotations 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.

Conciseness5/5

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

Two sentences carry the full message: the first states the core purpose and the second adds units and caveats. There is no filler and the most important information is front-loaded.

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

Completeness4/5

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

The input schema, output schema, and annotations already cover structural and safety details, so the description only needs to add semantic context. It provides the key facts about unsaved status, units, and non-authoritative output, though it could be slightly more explicit about round-type-specific parameter requirements.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining 'whole USD' for monetary amounts and 'discount fractions (0.20 means 20%)' for discount_rate, while the first sentence maps to round_type. It does not clarify dependencies such as when pre_money_valuation is required, so it is good but not fully complete.

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

Purpose4/5

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

The description uses a specific verb ('Model') and names the resource ('an unsaved SAFE, note, or priced round'), making the simulation purpose clear. It does not explicitly differentiate itself from sibling tools such as cap_table.dilution_preview, so it stops short of maximum sibling differentiation.

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

Usage Guidelines4/5

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

The description clearly frames this as a planning tool for unsaved instruments and states that calculations are 'not executed financing or legal advice', which gives strong usage context. It does not explicitly name alternatives or exclusion conditions, so it is a 4 rather than a 5.

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

cap_table.updateUpdate SparkCap draftC
DestructiveIdempotent
Inspect

Update selected planning fields after exact confirmation at the current opaque version. Any existing public shares may reflect changed shared fields immediately.

ParametersJSON Schema
NameRequiredDescriptionDefault
changesYes
project_idYes
cap_table_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.1/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the bar is lower. The description adds a side-effect warning about public shares, which is useful. However, it does not explain the destructive nature or the confirmation token requirement in detail.

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

Conciseness4/5

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

The description is brief at two sentences and front-loads the main action, but the phrase 'after exact confirmation at the current opaque version' is cryptic and could be clearer. Overall it is concise with minimal waste, though clarity suffers.

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

Completeness2/5

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

Given the complexity of the tool (destructive, idempotent, with concurrency control), the description is incomplete. It omits the purpose of expected_version and confirmation_token, and does not explain the destructive implications beyond a vague side-effect note.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no explanation of any parameters. With 6 parameters and low coverage, the description must compensate but does not, leaving the meaning of expected_version, changes, idempotency_key, and confirmation_token unexplained.

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

Purpose2/5

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

The description says 'Update selected planning fields' which is vague and does not clearly state that this updates a cap table draft. The tool name cap_table.update suggests the resource, but the description uses 'planning fields' which is ambiguous.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives like cap_table.create or cap_table.update_stakeholder. The description does not mention any conditions or scenarios 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.

cap_table.update_stakeholderUpdate SparkCap stakeholderA
DestructiveIdempotent
Inspect

Change selected address-free planning stakeholder fields after exact confirmation at the current cap-table version. Any existing public shares may reflect changed shared fields immediately. Execution and signature status cannot be changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
changesYes
project_idYes
cap_table_idYes
stakeholder_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark destructiveHint and openWorldHint, so the bar for extra context is lower. The description adds valuable behavior: changes apply only after exact confirmation, public shares may reflect changed shared fields immediately, and execution/signature status cannot be changed. This goes 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.

Conciseness4/5

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

Three tightly packed sentences and no fluff. The key precondition and limitation are front-loaded. It loses one point because it doesn't mention idempotency_key or confirmation_token semantics, which would help operational use.

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

Completeness4/5

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

For a mutation tool with a rich schema, output schema, and annotations, the description covers the essential behavioral context: what can change, when it takes effect, and what cannot change. It doesn't explain the expected_version/idempotency flow or confirmation_token relationship, but the schema and annotations cover the rest.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It names the semantic category 'address-free planning stakeholder fields' and the constraint 'execution and identity fields are excluded,' which adds meaning absent from the schema. It doesn't enumerate each parameter, but it conveys the intent clearly enough for an agent to map the changes object to planning fields.

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

Purpose5/5

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

Description opens with a precise verb and resource: 'Change selected address-free planning stakeholder fields after exact confirmation at the current cap-table version.' This clearly identifies what the tool mutates and under what precondition, and distinguishes it from the sibling cap_table.update (cap-table-level) and cap_table.create_stakeholder/delete_stakeholder.

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

Usage Guidelines4/5

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

The description says this changes planning fields and explicitly excludes execution/signature status, and mentions exact confirmation at the current version. It doesn't explicitly name alternative tools, but the field-scoping and confirmation precondition give clear context for when to use it versus create/delete/update siblings.

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

crm.add_contact_noteAdd contact noteA
Destructive
Inspect

Append to or replace the private notes stored for a CRM contact in the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
appendNo
person_idYes
project_idYes
idempotency_keyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true, and the description adds useful context by clarifying exactly what can be destroyed: existing private notes that may be replaced. It also discloses that operations are scoped to a selected project. This aligns with annotations and adds meaningful behavioral nuance without contradiction.

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

Conciseness5/5

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

The description is a single, tightly worded sentence that front-loads the action ('Append to or replace') and the affected resource. There is no filler, repetition, or low-value detail.

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

Completeness2/5

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

The required parameters map reasonably to the description, and the output schema reduces the need to explain return values. However, the description omits important operational details for a destructive tool, such as how confirmation_token works, how replacement should be triggered, and any project-scoping constraints. An agent following only these words would have an incomplete model of the tool's behavior.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It helps explain person_id, project_id, note, and append, but it says nothing about idempotency_key or confirmation_token, which are meaningful for a destructive write operation. With six parameters and no schema descriptions, this is a significant gap.

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

Purpose5/5

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

The description states a specific verb phrase ('Append to or replace'), a precise resource ('the private notes stored for a CRM contact'), and a scope ('in the selected project'). It clearly differentiates this from sibling crm.add_lead_note because it targets contact notes, not lead notes.

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

Usage Guidelines3/5

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

The description implies the use case: modifying private notes for a CRM contact. However, it never explicitly states when to use this tool over alternatives like crm.add_lead_note or crm.update_contact, nor does it provide when-not-to-use guidance. The intended context is clear but left to inference.

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

crm.add_lead_noteAdd lead noteA
Destructive
Inspect

Append to or replace private workspace notes for a CRM lead in the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
appendNo
lead_idYes
project_idYes
idempotency_keyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark this as destructive, but the description adds meaningful detail by explaining that notes can be appended or replaced. This clarifies what gets modified and that replacement is possible, going beyond the bare destructiveHint.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every phrase contributes to understanding the operation, target, and scope.

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

Completeness3/5

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

For the core task, the description is sufficient: it identifies the action, target, and project context, and the output schema removes the need to describe return values. However, given the destructive nature and the presence of confirmation_token and idempotency_key, more guidance on optional safety/confirmation flows would make the tool safer to invoke correctly.

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

Parameters3/5

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

With 0% schema description coverage, the description carries a heavy burden, and it does add meaning for the core operation: 'append to or replace' maps to the append flag, and 'lead'/'project' map to lead_id and project_id. However, it does not explain the purpose of idempotency_key or confirmation_token, which remain ambiguous.

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

Purpose5/5

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

The description clearly states a specific action ('Append to or replace') on a specific resource ('private workspace notes for a CRM lead in the selected project'). It also distinguishes this from the sibling crm.add_contact_note by specifying 'lead' rather than 'contact'.

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

Usage Guidelines3/5

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

The description implies the use case: editing private notes attached to a lead. However, it does not explicitly state when to prefer this over related tools like crm.add_contact_note or crm.update_lead, nor does it mention any exclusions.

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

crm.create_leadCreate CRM leadAInspect

Create a private CRM lead in the selected project from the supplied contact and inquiry fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
tagsNo
emailNo
phoneNo
titleNo
sourceNomcp
companyNo
messageNo
websitesNo
lead_typeNo
project_idYes
linkedin_urlNo
idempotency_keyNo
additional_phone_numbersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already flag this as a mutation (readOnlyHint=false) and non-idempotent, so the description does not need to restate that. It adds the behavioral detail that the lead is private and tied to a selected project, but it does not disclose duplicate handling, the effect of idempotency_key, or visibility semantics beyond 'private'. Moderate gap remains.

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

Conciseness5/5

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

A single sentence with no filler; it front-loads the verb and resource and scopes the action compactly. Every word earns its place.

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

Completeness2/5

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

With 14 parameters and zero schema description coverage, a one-line description is not enough for an agent to confidently call the tool. Required project_id, optional field usage, idempotency behavior, and the practical meaning of 'private' are all under-specified. The presence of an output schema covers return values but not input semantics.

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

Parameters2/5

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

Schema description coverage is 0%, so the description should compensate by explaining parameters, but it only groups them generically as 'contact and inquiry fields'. With 14 parameters and a single required project_id, the description does not clarify requiredness or the meaning of key fields like idempotency_key or source. The property names in the schema carry more semantic weight than the description.

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

Purpose5/5

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

States a specific action ('Create'), a concrete resource ('CRM lead'), and the scope ('in the selected project'), which distinguishes it from sibling get/search/update lead tools. The phrase 'from the supplied contact and inquiry fields' also names the input category. There is 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.

Usage Guidelines4/5

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

The description makes the use case clear: create a new private lead in a project when contact/inquiry data is supplied. It does not explicitly name alternatives or exclusions, but the verb and scope are clear enough against the sibling list. Missing an explicit 'use update_lead to modify existing leads' reference prevents a 5.

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

crm.delete_business_cardDelete business cardA
Destructive
Inspect

Permanently delete one saved business-card attachment from a private CRM contact workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idYes
project_idYes
activity_idYes
idempotency_keyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds value by specifying that deletion is 'permanently' and scoped to 'one saved business-card attachment', implying irreversibility and clarifying that the contact/activity/workspace are not deleted. 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.

Conciseness5/5

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

The description is a single, focused sentence with no filler. Key information—permanence and the target resource—is front-loaded, making it quick to parse.

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

Completeness2/5

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

For a destructive tool with 5 parameters and zero schema descriptions, the description is too sparse. It omits crucial contextual details such as why confirmation_token is needed, how idempotency_key behaves, and what identifiers must reference. The existence of an output schema reduces some return-value burden, but the parameter context remains incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the 5 parameters, but it only vaguely connects them through the phrase 'private CRM contact workspace.' It does not explain the distinct roles of person_id, activity_id, project_id, or the purpose of idempotency_key and confirmation_token.

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

Purpose5/5

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

The description explicitly states the action ('Permanently delete'), the resource ('one saved business-card attachment'), and the scope ('private CRM contact workspace'). This clearly distinguishes it from sibling tools like crm.ingest_business_card, which performs the inverse operation.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It simply restates the purpose without contextual cues such as 'use this when the card is no longer needed' or 'for adding a card, use ingest_business_card'.

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

crm.get_activitiesGet CRM activitiesA
Read-onlyIdempotent
Inspect

List private CRM activity history for a contact, deal, or selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
deal_idNo
person_idNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the 'private' qualifier and historical scope, but it does not disclose pagination, sorting, or how multiple scope IDs interact.

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

Conciseness4/5

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

One sentence, front-loaded with the verb and resource, with no filler. 'Selected project' is a slightly awkward way to name the project scope, but the sentence remains easy to scan and every phrase contributes meaning.

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

Completeness3/5

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

Given that this is a simple read-only list tool, annotations cover safety, and an output schema exists, the description covers the core purpose. The main completeness gap is the ambiguous relationship among project_id, deal_id, and person_id, plus unstated limit behavior, though the schema's required field mitigates some of this.

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

Parameters3/5

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

With 0% schema-description coverage, the description partially compensates by mapping person_id to 'contact', deal_id to 'deal', and project_id to 'project.' It does not explain the limit parameter or clarify that project_id is required while deal_id and person_id are optional, or whether exactly one scope must be selected.

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

Purpose5/5

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

The description uses a specific action verb ('List'), identifies the resource ('CRM activity history'), and names the three scopes ('contact, deal, or selected project'). This clearly distinguishes it from write-oriented siblings like crm.log_activity and entity-profile tools like crm.get_contact or crm.get_lead.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving activity history, so an agent can infer when to call it, but it never states when not to use it or names an alternative. It lacks explicit exclusions or routing conditions, which matters given siblings like crm.log_activity.

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

crm.get_business_card_importGet business card importA
Read-onlyIdempotent
Inspect

Read sanitized state and result identifiers for one owner-bound business-card import handoff without returning card data, contact details, or storage references.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
import_intent_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds valuable context by disclosing that the returned state is sanitized, owner-bound, and deliberately excludes card data, contact details, and storage references. There is no contradiction with the annotations.

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

Conciseness5/5

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

A single sentence that is front-loaded with the action and resource, with every clause contributing scope or exclusion information. There is no filler or unnecessary repetition.

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

Completeness3/5

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

The tool is simple, read-only, and covered by both annotations and an output schema, which helps completeness. However, the description does not clarify why project_id is needed or how the import_intent_id relates to the handoff workflow, so an agent may still be uncertain when calling it.

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

Parameters2/5

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

With schema description coverage at 0%, the description should help explain the parameters, but it never mentions import_intent_id or project_id by name or role. It only refers generically to 'one owner-bound ... import handoff,' leaving project_id's purpose especially unclear.

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

Purpose5/5

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

The description uses a specific verb ('Read'), a clear resource ('business-card import handoff'), and a precise scope: it returns only sanitized state and result identifiers. It also distinguishes itself from sibling tools by explicitly excluding card data, contact details, and storage references.

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

Usage Guidelines3/5

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

The description implies a workflow context—this reads the state of an import handoff, likely after prepare_business_card_import—but it never explicitly states when to use this tool versus a sibling or when not to use it. The usage guidance 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.

crm.get_contactGet CRM contactA
Read-onlyIdempotent
Inspect

Retrieve one private CRM contact from the selected project without changing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint, and the phrase “without changing it” aligns with those without adding much. The description does add some context beyond annotations by specifying that the contact is private and project-scoped, but it omits auth/error/not-found behavior. With annotations already handling the safety profile, 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.

Conciseness5/5

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

A single sentence with no redundant or filler content. Every phrase earns its place: “one” limits scope, “private” adds access context, “selected project” clarifies the lookup scope, and “without changing it” reinforces the non-mutating behavior.

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

Completeness4/5

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

For a simple get-by-id tool, the description combined with the input schema and annotations covers the core invocation: what resource, which project scope, and no side effects. It could be strengthened by naming crm.search_contacts as the discovery alternative and by clarifying the behavior of project_id when null, but the output schema and annotations fill most remaining gaps.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It hints at project_id via “selected project” and at the contact identifier via “one private CRM contact”, but it does not explain parameter-level details such as project_id being nullable/defaulted to null. The parameter names and types do some work, but only partial compensation is provided.

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

Purpose5/5

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

States a specific action (“Retrieve”), a specific resource (“one private CRM contact”), and a scope (“from the selected project”), while also clarifying that the operation does not change anything. This clearly distinguishes it from siblings such as crm.search_contacts and crm.update_contact.

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

Usage Guidelines4/5

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

The description gives clear context: this is for fetching a single known contact within a project and is not a mutating operation. However, it does not explicitly name alternatives or state when-not-to-use conditions, so it stops short of full routing guidance.

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

crm.get_contact_workspaceGet contact workspaceB
Read-onlyIdempotent
Inspect

Retrieve one private CRM contact with profile, attachments, summary, and activity history.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idYes
project_idYes
activity_limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only nature is covered. The description adds useful detail about the payload scope (profile, attachments, summary, activity history), which helps the agent understand what the workspace includes, but it does not disclose other behaviors such as default activity limit or whether the contact must be private.

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

Conciseness4/5

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

The description is a single, compact sentence that front-loads the action and scopes the returned data. It earns its place without fluff, though it could have used the space to include sibling differentiation.

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

Completeness3/5

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

An output schema exists and handles return-value details, and annotations cover the read-only/idempotent safety profile. Still, there is ambiguity against the sibling crm.get_contact, and the semantics of project_id and activity_limit are not clarified, leaving the agent to guess which tool returns what.

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

Parameters3/5

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

Schema description coverage is 0%, so the description should compensate for parameter meaning. It mentions 'profile, attachments, summary, and activity history,' which loosely maps to activity_limit, but it does not explain the role of person_id or project_id, nor does it clarify that project_id is nullable and why. It adds minimal value beyond the schema.

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

Purpose4/5

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

The description identifies a specific verb and resource ('Retrieve one private CRM contact') and lists what is included in the result (profile, attachments, summary, activity history). However, it does not explicitly distinguish this tool from the sibling crm.get_contact, so some ambiguity remains about when to use one over the other.

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

Usage Guidelines3/5

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

The description implies this is a read-only workspace view because it mentions retrieving a contact with profile, attachments, summary, and activity history. It does not state when to use this tool versus crm.get_contact or crm.get_contact_workspace alternatives, nor does it mention any required context like project_id being nullable.

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

crm.get_dashboardGet CRM dashboardA
Read-onlyIdempotent
Inspect

Retrieve private CRM dashboard totals and pipeline summaries for the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNosales
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare the operation as read-only, idempotent, and non-destructive. The description adds useful scoping context: the data is 'private' and project-scoped, and it clarifies that both totals and pipeline summaries are returned. This complements the annotations without contradicting them.

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

Conciseness5/5

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

The description is one compact sentence with no filler. It front-loads the verb and resource, then states the result scope and types efficiently.

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

Completeness4/5

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

The output schema covers return values and the annotations cover safety, so the description does not need to repeat those. For a two-parameter read-only tool, the description is largely sufficient, though a brief note about the 'view' parameter would make it fully complete.

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

Parameters2/5

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

With 0% schema description coverage, the description must carry parameter meaning. It indirectly explains project_id via 'selected project,' but it does not mention the 'view' parameter, its default value, or what view options are valid. This leaves an agent guessing about an optional but meaningful input.

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

Purpose5/5

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

The description names a specific read operation ('Retrieve... dashboard totals and pipeline summaries') and scopes it to 'the selected project' via project_id. This clearly distinguishes it from CRM siblings like crm.get_contact or crm.list_deals, which address different resources.

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

Usage Guidelines4/5

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

The phrase 'for the selected project' and the mention of 'dashboard totals and pipeline summaries' provide clear context for when this tool is appropriate. It does not explicitly list alternatives or when-not-to-use conditions, but no sibling tool covers the same dashboard resource.

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

crm.get_leadGet CRM leadA
Read-onlyIdempotent
Inspect

Retrieve one private CRM lead from the selected project without changing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
lead_idYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds 'without changing it' and 'private', which reinforce the safety profile but do not disclose much beyond what annotations already provide.

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

Conciseness5/5

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

The description is a single, focused sentence with no filler. It front-loads the core action and includes the most important distinguishing details without wasting words.

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

Completeness4/5

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

Given the simple two-parameter schema, the output schema, and the strong annotations, the description is nearly complete. It could be slightly richer around parameter semantics, but nothing essential is missing for a basic get-by-ID operation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of explaining parameters. It clarifies that the lead comes from a project, which loosely maps to project_id, but it does not explain lead_id or the nullable/default behavior of project_id.

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

Purpose5/5

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

The description uses a specific verb, 'Retrieve', names the resource ('one private CRM lead'), and scopes it to 'the selected project'. It also explicitly says 'without changing it', which clearly separates this tool from crm.update_lead and crm.create_lead.

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

Usage Guidelines4/5

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

The description clearly implies the use case: fetching a single lead by ID from the current project. It does not explicitly name alternatives or state when not to use it, but the context is clear enough to guide selection among the CRM sibling tools.

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

crm.get_lead_workspaceGet lead workspaceC
Read-onlyIdempotent
Inspect

Retrieve one private CRM lead with profile, notes, summary, and timeline context.

ParametersJSON Schema
NameRequiredDescriptionDefault
lead_idYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds that the result includes profile, notes, summary, and timeline context, which is useful, but it does not disclose additional behavioral aspects such as authorization requirements or error cases. 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler or redundancy. It efficiently communicates the core purpose and included context.

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

Completeness2/5

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

The annotations and output schema cover safety and return structure, but significant gaps remain: project_id semantics are undocumented, and the distinction from crm.get_lead is unclear. For a tool with two required-looking parameters and zero schema descriptions, this 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.

Parameters1/5

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

Schema description coverage is 0%, so the description needs to explain the parameters. It mentions neither lead_id nor project_id, leaving the meaning of the optional project_id entirely unspecified. The tool name makes lead_id inferable, but project_id remains ambiguous.

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

Purpose4/5

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

The description states a clear action ('Retrieve') and resource ('one private CRM lead'), and lists the included context areas (profile, notes, summary, timeline). It is understandable and distinguishable from generic lead lookup by its 'workspace' framing, though it does not explicitly contrast with sibling tools like crm.get_lead.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus crm.get_lead, crm.get_contact_workspace, or similar tools. It implies use for a full workspace view but does not state conditions, exclusions, or alternatives.

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

crm.ingest_business_cardIngest business cardB
Destructive
Inspect

Create or enrich a private CRM contact from a supplied business-card image in the selected project while excluding dedicated address fields and rejecting detected cross-field addresses.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameNobusiness-card.jpg
person_idNo
project_idYes
content_typeNo
capture_sourceNoupload
idempotency_keyNo
business_card_fileYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

The description adds behavioral context beyond annotations: it mentions private contact scope and specific address-exclusion/rejection logic. However, it does not explain what 'cross-field addresses' means or what happens to existing contact data during enrichment, leaving meaningful behavior undisclosed.

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

Conciseness4/5

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

The description is a single sentence, front-loaded with the core action and scope. The trailing address-handling clause is dense and slightly awkward but not redundant or padded.

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

Completeness2/5

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

Given 8 parameters, 0% schema coverage, a destructiveHint annotation, and sibling import/prepare tools, the description should clarify the import workflow, confirmation/idempotency needs, and overwrite behavior. It covers only the two required parameters and leaves the rest of the invocation context underspecified.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It maps 'business-card image' to business_card_file and 'selected project' to project_id, but six other parameters—confirmation_token, idempotency_key, capture_source, content_type, filename, and person_id—receive no prose explanation. The names and defaults hint at meaning but do not fully compensate.

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

Purpose5/5

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

The description states a specific action ('Create or enrich'), a clear resource ('private CRM contact'), a concrete input ('business-card image'), and project scope ('selected project'). It also adds distinguishing details about address handling that separate it from sibling get/import tools.

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

Usage Guidelines3/5

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

The verb 'Create or enrich' and the business-card input imply direct-ingest usage, but the description does not explicitly say when to use this tool versus crm.prepare_business_card_import or crm.get_business_card_import. No prerequisites or exclusions are mentioned.

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

crm.list_dealsList CRM dealsB
Read-onlyIdempotent
Inspect

List private CRM deals and their current pipeline state in the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo
deal_typeNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is well covered. The description adds the 'private' scope and 'current pipeline state' detail, which gives limited additional context about what is returned. It does not cover pagination or filtering behavior, but annotations lower the burden.

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

Conciseness5/5

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

The description is one concise sentence with no filler or redundancy. It front-loads the action and resource, then adds a relevant detail about pipeline state. Every word contributes value.

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

Completeness2/5

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

While the output schema covers return structure and annotations cover safety, the description omits all optional parameter semantics and filtering behavior. With four parameters and zero schema descriptions, an agent cannot infer valid values for status or the effect of limit. This is a significant gap for a list operation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only references 'selected project', loosely mapping to project_id, and says nothing about limit, status, or deal_type. This leaves three parameters without any semantic explanation, making it insufficient for correct invocation.

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

Purpose4/5

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

The description uses a specific verb 'List' with the resource 'private CRM deals' and adds 'current pipeline state' and 'selected project', clearly indicating what the tool does. It does not explicitly differentiate from sibling tools, but no sibling has a list_deals purpose, so the clarity is strong without being perfect.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention related tools like crm.move_deal or crm.get_dashboard, nor any conditions for filtering by status or deal_type. There is no implied or explicit usage context beyond a basic listing action.

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

crm.log_activityLog CRM activityBInspect

Append a private note, email, call, or meeting activity to a contact or deal in the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentNo
deal_idNo
subjectNo
person_idNo
project_idYes
activity_typeYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

The verb 'append' conveys an additive, non-destructive behavior, and annotations already signal readOnlyHint=false and destructiveHint=false. The description adds context about privacy and project scoping, but it does not disclose duplicate/idempotency behavior, permission needs, or what happens when neither person_id nor deal_id is provided.

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

Conciseness5/5

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

The description is one front-loaded sentence with no filler. Every word adds information: 'append', the activity types, the target (contact/deal), and the project scope.

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

Completeness2/5

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

For a 7-parameter tool with 0% schema description coverage, the description is insufficient on its own. It does not specify the required target combination, exact activity_type values, idempotency usage, or how this differs from similar note tools. The output schema reduces the need to explain return values, but the input contract remains under-explained.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions contact/deal and activity types, but does not explain idempotency_key, the allowed values for activity_type, nor the roles of content vs subject. With seven parameters and no schema descriptions, this is a significant gap.

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

Purpose4/5

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

The description names a specific action ('Append') and resource ('activity to a contact or deal in the selected project'), and even lists the activity types covered. However, it does not explicitly differentiate this tool from sibling note-adding tools such as crm.add_contact_note and crm.add_lead_note.

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

Usage Guidelines2/5

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

No when-to-use guidance or alternatives are given. It does not say when to choose this over crm.add_contact_note/crm.add_lead_note, nor does it state prerequisites such as needing an existing person_id or deal_id. The intended use is only implied by the purpose statement.

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

crm.move_dealMove CRM dealC
Destructive
Inspect

Overwrite the selected private CRM deal's pipeline stage in the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
deal_idYes
stage_idYes
project_idYes
idempotency_keyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

The annotations already declare destructiveHint=true and readOnlyHint=false, and the description's 'Overwrite' aligns with these. However, it adds no extra behavioral context such as confirmation requirements, irreversibility, side effects, or why confirmation_token/idempotency_key exist.

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

Conciseness4/5

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

The description is a single front-loaded sentence with no filler. It is efficiently worded, though the brevity leaves semantic gaps.

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

Completeness2/5

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

For a destructive 5-parameter mutation tool with two unexplained optional fields, one sentence is not enough. The output schema reduces the need to describe return values, but confirmation_token and idempotency_key behavior remain unexplained, and no usage context is provided.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only loosely maps deal_id, stage_id, and project_id via 'selected deal', 'pipeline stage', and 'selected project'. It provides no meaning for idempotency_key or confirmation_token.

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

Purpose5/5

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

The description names a specific action ('Overwrite'), a specific resource ('the selected private CRM deal's pipeline stage'), and a scope ('in the selected project'). This is distinguishable from sibling list/read tools like crm.list_deals and from crm.update_lead because it targets deal pipeline-stage mutation.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives or when not to use it. The description only states what it does; it 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.

crm.prepare_business_card_importPrepare business card importA
Idempotent
Inspect

Create a short-lived private handoff to an authenticated SparkLaunch upload page without importing an image or changing a contact; the user must explicitly choose Upload and import on that page.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idNo
project_idYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

It discloses non-obvious behavior beyond the annotations: the handoff is short-lived, private, authenticated, and does not import or mutate contacts by itself. This complements the idempotentHint and clarifies that the actual import only happens after explicit user action.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the action, resource, and key constraints without wasted words. It is concise while still carrying the most important behavioral caveats.

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

Completeness5/5

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

Given the low parameter complexity, the presence of an output schema, and annotations covering idempotency and destructive intent, the description provides the essential context an agent needs. It explains the lifecycle, authentication aspect, and user action requirement sufficiently.

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

Parameters2/5

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

Schema description coverage is 0%, and the description provides no parameter-specific guidance for project_id, person_id, or idempotency_key. While the parameter names are somewhat self-explanatory, the description does not compensate for the missing schema documentation or clarify relationships between parameters.

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

Purpose5/5

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

The description names a specific verb and resource: creating a short-lived private handoff to an authenticated SparkLaunch upload page. It also explicitly states what the tool does not do ('without importing an image or changing a contact'), which differentiates it from siblings like crm.ingest_business_card.

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

Usage Guidelines4/5

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

The description gives clear context on how the tool is meant to be used: it only prepares the upload handoff and requires the user to explicitly choose Upload and import on that page. It states an important exclusion ('without importing an image or changing a contact'), but does not explicitly name the preferred alternative tool in a when-to-use comparison.

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

crm.refresh_contact_summaryRefresh contact summaryB
Destructive
Inspect

Regenerate and overwrite the stored AI summary and next-step guidance for a private CRM contact.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idYes
project_idYes
idempotency_keyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, and the description adds the key behavioral detail: it overwrites the stored AI summary and next-step guidance. This clearly discloses what gets mutated 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.

Conciseness5/5

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

The description is a single focused sentence that starts with the action and includes the key target. There is no fluff or redundant restatement of the tool name.

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

Completeness2/5

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

Despite an output schema being present, the operation is destructive and involves multiple non-obvious parameters such as confirmation_token and idempotency_key. The description omits enough contextual information for an agent to call it correctly without guessing about parameter roles or side effects.

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

Parameters1/5

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

Schema description coverage is 0% and the description provides no explanation for person_id, project_id, idempotency_key, or confirmation_token. For a tool with four parameters, including a confirmation token and idempotency key, the description must compensate but does not.

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

Purpose4/5

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

The description names a specific verb (regenerate and overwrite) and a distinct resource (stored AI summary and next-step guidance), which clearly distinguishes it from generic contact-update siblings. It does not explicitly name an alternative or scope condition, so it is clear but not fully differentiated.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool vs alternatives such as crm.update_contact or crm.add_contact_note. The intent to refresh a summary is implied by the name but no explicit conditions, prerequisites, or exclusions are provided.

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

crm.search_contactsSearch CRM contactsA
Read-onlyIdempotent
Inspect

Search private CRM contact records in the selected project without changing them.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
project_idYes
person_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description reinforces this with 'without changing them' and adds useful scope context ('private', 'selected project'). 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every word contributes to understanding the tool's purpose and scope.

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

Completeness3/5

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

The description, combined with annotations and output schema, communicates the operation and safety profile well. However, the 0% parameter coverage in the schema and lack of explicit guidance on query and person_type leave meaningful gaps for an agent.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate by explaining parameters like query, limit, and person_type. It only indirectly references project_id via 'selected project' and gives no information about the others.

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

Purpose5/5

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

The description uses a specific verb ('Search') with a specific resource ('private CRM contact records') and a scoping qualifier ('in the selected project'). This clearly distinguishes it from lead-search and individual-contact retrieval siblings.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: searching private CRM contacts within a project. It also signals the read-only nature, but it does not explicitly name alternatives such as crm.search_leads or crm.get_contact.

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

crm.search_leadsSearch CRM leadsA
Read-onlyIdempotent
Inspect

Search private CRM lead records in the selected project without changing them.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
statusNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds mild context by noting records are 'private' and project-scoped, but otherwise adds no behavioral disclosure such as result limits or visibility rules.

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

Conciseness5/5

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

One sentence, front-loaded with the action and resource, then the read-only guarantee. No wasted words; the information density is high.

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

Completeness3/5

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

For a simple filtered read with an output schema and safety annotations, the description provides enough to make a safe first call, but it omits details about how query/status/limit behave. 'selected project' and 'private' give helpful context, yet the overall completeness is only adequate.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the burden of explaining parameters. It only indirectly covers project_id via 'selected project' and says nothing about query, status, or limit semantics, leaving the agent to guess how filtering works. This is a significant gap for a 4-parameter tool.

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

Purpose5/5

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

The description names a specific verb ('Search'), a specific resource ('private CRM lead records'), and a scoping condition ('in the selected project'), making its purpose unambiguous. It also distinguishes itself from sibling tools like crm.search_contacts by explicitly targeting leads, and the 'without changing them' clause separates it from mutating CRM operations.

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

Usage Guidelines3/5

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

The read-only clause and 'selected project' scope imply when the tool should be used, and the presence of siblings like crm.get_lead and crm.search_contacts suggests a search-vs-fetch distinction. However, it never explicitly states when to prefer this over 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.

crm.update_contactUpdate CRM contactB
Destructive
Inspect

Overwrite the supplied profile fields on a private CRM contact in the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNo
notesNo
phoneNo
titleNo
sourceNo
websitesNo
last_nameNo
person_idYes
first_nameNo
project_idYes
person_typeNo
linkedin_urlNo
source_detailNo
idempotency_keyNo
organization_idNo
confirmation_tokenNo
additional_phone_numbersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, and the description's 'Overwrite' matches that destructive profile. It adds useful context that only supplied fields are overwritten and that the contact is private, but does not disclose side effects, authorization needs, or reversibility.

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

Conciseness5/5

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

A single front-loaded sentence with no filler. The verb and object appear first, and the scoping detail is efficiently packed.

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

Completeness2/5

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

Given 17 parameters, zero schema descriptions, a destructive annotation, and no usage alternatives, this one-sentence description is far from complete. It does not clarify required fields, idempotency behavior, or the meaning of unusual fields, so an agent would struggle to invoke it correctly.

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

Parameters2/5

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

Schema description coverage is 0% across 17 parameters, so the description carries the burden of parameter explanation. Saying 'supplied profile fields' adds only a vague category label and does not compensate for the lack of per-parameter meaning, especially for non-profile fields like idempotency_key and confirmation_token.

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

Purpose4/5

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

The description states a specific verb ('Overwrite'), resource ('CRM contact'), and scope ('selected project'), which clearly conveys the operation. It does not explicitly name or contrast sibling tools, so it falls just short of the top score.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as crm.update_lead, crm.add_contact_note, or crm.get_contact. There is no when/when-not, prerequisite, or alternative mention.

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

crm.update_leadUpdate CRM leadA
Destructive
Inspect

Overwrite the supplied profile and workspace fields on a private CRM lead.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
tagsNo
emailNo
phoneNo
titleNo
sourceNo
statusNo
companyNo
lead_idYes
messageNo
websitesNo
lead_typeNo
project_idYes
linkedin_urlNo
idempotency_keyNo
confirmation_tokenNo
additional_phone_numbersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false. The description adds useful context by clarifying that only supplied profile and workspace fields are overwritten and that the lead is private, which goes beyond the structured hints 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.

Conciseness4/5

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

The single sentence is front-loaded and has no fluff, but for a destructive 17-parameter operation it is arguably too sparse. It is concise without being wasteful, though it sacrifices useful context.

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

Completeness2/5

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

Given 17 parameters, a destructive annotation, no parameter descriptions, and many sibling tools, the one-sentence description is insufficient. It does not explain the roles of required lead_id/project_id, null-clearing behavior, or how this relates to create/search sibling tools, though the presence of an output schema lowers the need to document return values.

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

Parameters2/5

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

With schema description coverage at 0% and 17 parameters, the description needed to compensate but only gestures at 'profile and workspace fields' without naming or explaining lead_id, project_id, idempotency_key, confirmation_token, or the nullable clear-field semantics. It adds little beyond the parameter titles already present in the schema.

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

Purpose5/5

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

The description names a specific verb ('Overwrite'), a resource ('a private CRM lead'), and the scope of the change ('supplied profile and workspace fields'). This distinguishes it from sibling tools such as crm.create_lead, crm.get_lead, and crm.update_contact.

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

Usage Guidelines3/5

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

The wording implies use on an existing lead whose fields need to be overwritten, but it never explicitly says when to choose this over crm.create_lead or crm.update_contact, nor does it state prerequisites such as the lead needing to already exist. The usage context is only implied, not spelled out.

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

incorporation.cancel_caseCancel incorporation caseB
DestructiveIdempotent
Inspect

Cancel an exact unfiled incorporation version or request safe Filing Operations review after confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYes
case_idYes
project_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral context: direct cancellation only applies to an exact unfiled version, and otherwise it requests a safe Filing Operations review after confirmation. This conditional behavior goes beyond what annotations alone communicate, with no contradictions.

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

Conciseness4/5

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

The description is a single sentence that leads with the verb 'Cancel' and conveys the core behavior plus a conditional alternative without wasted words. It is compact and front-loaded, though slightly dense and potentially ambiguous in its phrasing.

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

Completeness3/5

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

Given the tool has six parameters, is destructive, and has two behavioral branches, the description is relatively thin. It does not clarify when the review path is triggered, what 'safe Filing Operations review' entails, or what role reason and idempotency_key play. The output schema exists, so return values need not be explained, but the conditional logic and prerequisite conditions could be spelled out more clearly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameter meaning. It only alludes to expected_version ('exact version') and confirmation_token ('after confirmation'). It leaves reason, idempotency_key, project_id, and case_id unexplained, even though some are self-explanatory by name. The description provides minimal parameter-level guidance for a tool with five required parameters.

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

Purpose4/5

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

The description states a specific action (cancel) on a specific resource (unfiled incorporation version) and distinguishes between direct cancellation and requesting a Filing Operations review. It is clearly distinct from sibling tools like incorporation.start_case or incorporation.update_draft, though the two-mode phrasing could confuse an agent about the primary purpose.

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

Usage Guidelines3/5

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

The description implies when to use this tool: to cancel an unfiled incorporation version. It also hints that a review request path exists after confirmation. However, it does not explicitly contrast it with alternatives or state when the review path should be chosen over direct cancellation, leaving the selection logic to be inferred.

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

incorporation.check_entitlementCheck incorporation entitlementA
Read-onlyIdempotent
Inspect

Check the selected project's incorporation package entitlement without changing it. This ChatGPT tool never returns a price, purchase URL, or purchasing instructions.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description reinforces this with 'without changing it.' More importantly, it discloses a behavioral boundary not visible anywhere else: the tool never returns price, purchase URL, or purchasing instructions, which is critical for avoiding overpromising.

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

Conciseness5/5

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

Two sentences, no filler. The core purpose is front-loaded in the first sentence, and the second sentence earns its place by stating a crucial limitation.

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

Completeness5/5

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

For a low-complexity, read-only, one-parameter tool with an output schema and rich annotations, the description covers the important semantic and behavioral points. Nothing essential is missing for an agent to invoke it correctly.

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

Parameters4/5

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

Schema coverage is 0%, so the description must add meaning. It does by tying project_id to the 'selected project', and since there is only one integer parameter that is straightforward. It could be stronger by stating where the selected project ID comes from, but this is sufficient for a single simple parameter.

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

Purpose5/5

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

States a specific verb ('Check') and object ('incorporation package entitlement'), scopes it to the selected project, and explicitly notes it does not change anything. This clearly separates it from sibling tools like start_case, cancel_case, or get_case.

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

Usage Guidelines3/5

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

The description explains when to call it: when the selected project's entitlement needs checking. However, it does not name any alternative tools or give explicit when-not-to-use guidance; the 'never returns price/purchase info' line hints at a boundary but does not route the agent elsewhere.

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

incorporation.get_caseGet incorporation caseA
Read-onlyIdempotent
Inspect

Read safe incorporation case and participant progress for the selected project.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the resource scope ('participant progress' and 'selected project') but no additional behavioral constraints such as edge cases, prerequisites, or auth requirements. No contradiction with the annotations exists.

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

Conciseness5/5

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

The description is a single sentence that front-loads the verb and object, with no redundant clauses or filler. The word 'safe' is slightly ambiguous but does not inflate length or obscure the main purpose.

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

Completeness4/5

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

For a two-parameter read-only tool with an output schema and safety annotations, the description captures the core resource and scope. It omits explicit usage conditions, but the tool's simplicity and the presence of an output schema make it largely sufficient for an agent to invoke correctly.

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

Parameters2/5

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 parameters beyond mapping 'case' to case_id and 'selected project' to project_id. The parameter names are self-explanatory, but the description adds minimal semantic value and does not compensate for the absence of schema descriptions.

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

Purpose5/5

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

The description uses the specific verb 'Read' and identifies the resource as 'incorporation case and participant progress.' This clearly differentiates it from sibling tools like start_case, update_draft, and cancel_case, which imply state-changing operations. The scope 'for the selected project' further ties it to a project context.

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

Usage Guidelines3/5

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

The description implies use when viewing an incorporation case and participant progress, but it does not explicitly state when to use this tool versus alternatives such as check_entitlement or validate. No exclusion conditions or alternative tool routing are provided, leaving the agent to infer from tool naming and sibling context.

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

incorporation.prepare_action_centerPrepare incorporation Action CenterC
DestructiveIdempotent
Inspect

Lock an exact incorporation version and prepare secure participant tasks after confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYes
project_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the description is not required to restate those. It adds useful context by mentioning version locking and task preparation after confirmation, but it does not clarify what destructive consequences locking may have, whether it is irreversible, or how confirmation_token and idempotency interact with the behavior.

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

Conciseness4/5

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

The description is a single concise sentence with the main action front-loaded and no filler. 'Secure' and 'after confirmation' are slightly vague, but the overall structure is efficient and easy to parse.

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

Completeness2/5

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

For a 5-parameter mutation tool with no schema parameter descriptions and no explicitly identified workflow context, the description is too thin. It does not explain where this fits among the incorporation siblings, what happens to the case when locked, or how the optional confirmation_token alters behavior. The presence of an output schema reduces the need to describe return values, but operational context is still incomplete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries full responsibility for explaining parameters. It only hints at expected_version ('exact version') and confirmation ('after confirmation'), leaving case_id, project_id, idempotency_key, and confirmation_token semantics to inference.

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

Purpose4/5

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

The description states a specific action ('Lock an exact incorporation version') and resource ('prepare secure participant tasks'), which clearly conveys what the tool does. It also includes a precondition ('after confirmation'), helping distinguish it from read-only incorporation tools like get_case or validate, though it does not explicitly name sibling alternatives.

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

Usage Guidelines2/5

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

The description implies the tool should be used after confirmation, but it does not specify when to use it versus related incorporation tools such as validate, update_draft, or submit_to_sparklaunch. There is no guidance on prerequisites, ordering, or situations where this tool should be avoided.

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

incorporation.start_caseStart incorporation caseA
Idempotent
Inspect

Create or resume the selected project's entitled incorporation case without filing externally.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
idempotency_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already cover idempotency and non-destructiveness, so the description only needs to add context beyond them. It does add that the tool both creates and resumes a case and does not file externally, but it does not explain what 'resume' entails, how idempotency_key affects behavior, or what state changes occur.

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

Conciseness4/5

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

The description is a single sentence, front-loaded with the verb and resource, and contains no filler. The term 'entitled' introduces some domain jargon that is not clarified, but overall the description is compact and readable.

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

Completeness3/5

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

The description tells the agent the core operation and that it avoids external filing, and an output schema exists to describe return values. However, it omits important operational context such as how idempotency_key works, what distinguishes creation from resumption, and whether any entitlement check is a prerequisite.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden of explaining parameters. It offers only an indirect reference to 'the selected project' as project_id and says nothing about idempotency_key, its constraints, or its role in resuming a case.

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

Purpose5/5

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

The description names a specific action ('Create or resume') and a specific resource ('the selected project's entitled incorporation case'), and adds a scope qualifier ('without filing externally'). This distinguishes it from related siblings like incorporation.cancel_case, incorporation.get_case, and incorporation.submit_to_sparklaunch.

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

Usage Guidelines3/5

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

The phrase 'without filing externally' implies this tool is for the in-app incorporation workflow rather than external submission, but it does not explicitly name an alternative or state when to use this tool instead of siblings. Usage conditions must be inferred rather than directly instructed.

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

incorporation.submit_to_sparklaunchSubmit incorporation case to SparkLaunchB
DestructiveIdempotent
Inspect

Create or read an internal SparkLaunch Filing Operations receipt; no Delaware or NWRA transmission occurs.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYes
project_idYes
locked_versionYes
idempotency_keyYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior1/5

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

The description says the tool only creates or reads an internal receipt, but the annotations mark destructiveHint=true. This is a direct contradiction: a create/read operation is not obviously destructive, and the description does not disclose what destructive side effects may occur. The no-transmission statement adds useful context, but the unresolved conflict with annotations is serious.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. It immediately states the operation, the resource, and the critical non-transmission constraint, making every word informative.

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

Completeness2/5

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

For a tool with five parameters, no paramter descriptions, and a destructiveHint, the description is too thin. It does not explain the meaning of locked_version or idempotency_key, what happens on duplicate submission, or what destructive effects may occur. The output schema may cover return values, but the missing side-effect and parameter context leaves the agent under-informed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate by explaining the parameters, but it does not. Parameter names like projet_id and case_id are self-explanatory, but locked_version and idempotency_key have important semantics that are left entirely to the agent to infer.

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

Purpose5/5

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

The description states a specific verb and resource: it creates or reads an internal SparkLaunch Filing Operations receipt. It also explicitly says no Delaware or NWRA transmission occurs, which clearly differentiates it from external filing tools like incorporation.start_case.

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

Usage Guidelines4/5

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

The description communicates a clear usage boundary: use this when an internal receipt is needed, not when actual Delaware/NWRA transmission is required. It does not name an explicit alternative tool or provide when-not-to-use conditions, but the scope is clear enough for routing.

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

incorporation.update_draftUpdate incorporation draftA
DestructiveIdempotent
Inspect

Replace the selected case's non-address incorporation draft from either a bounded uploaded JSON file or a closed structured draft at the expected version; required addresses are completed later in the SparkLaunch Action Center.

ParametersJSON Schema
NameRequiredDescriptionDefault
draftNo
case_idYes
draft_fileNo
project_idYes
idempotency_keyYes
expected_versionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate destructive, idempotent, non-read-only behavior; the description adds useful context beyond those flags: only the non-address draft is replaced, either input mode is acceptable, and the expected version must be supplied. Nothing contradicts the annotations.

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

Conciseness5/5

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

The description is a single dense sentence with no filler. The core action is front-loaded, and the important caveats (non-address, either-or source, expected version, later address completion) are packed in without redundancy.

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

Completeness4/5

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

For a destructive six-parameter mutation with two mutually exclusive input modes, the description conveys the core operation, source alternatives, version requirement, and address boundary. Since an output schema exists, return-value detail is unnecessary; the only minor gap is explicit idempotency retry semantics, which the annotation already covers.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the burden, and it compensates well: 'bounded uploaded JSON file' explains draft_file, 'closed structured draft' explains draft, and 'selected case' maps to project_id/case_id. It does not explicitly explain idempotency_key, but the schema name and idempotentHint annotation make that parameter self-evident.

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

Purpose5/5

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

The description names a specific verb ('Replace'), a specific resource ('the selected case's non-address incorporation draft'), and distinguishes the operation from siblings like start_case, validate, and submit_to_sparklaunch. The source-type constraint ('either a bounded uploaded JSON file or a closed structured draft at the expected version') further removes ambiguity.

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

Usage Guidelines4/5

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

The description gives clear context: this is the draft-replacement step for a selected case, and address completion is explicitly deferred to the SparkLaunch Action Center. It does not name sibling tools as alternatives, so it stops short of a 5, but the boundary between this tool and later address work is clear.

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

incorporation.validateValidate incorporation draftA
Read-onlyIdempotent
Inspect

Validate one authorized incorporation draft version without changing durable state.

ParametersJSON Schema
NameRequiredDescriptionDefault
case_idYes
versionNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description aligns with these annotations and adds the 'authorized draft version' qualifier, but most of the behavioral safety information is redundant with the annotations.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler. Every clause contributes either the action, the target scope, or the crucial side-effect guarantee.

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

Completeness4/5

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

For a simple 3-parameter validation tool with an output schema and strong annotations, the description is largely sufficient. The main gap is parameter semantics, but required IDs are inferable from their names and the optional version is represented in the schema.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only mentions 'draft version,' giving no explanation of required project_id and case_id or how version behaves when null. The parameter names are somewhat self-explanatory, but the description does not compensate for the missing schema-level parameter documentation.

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

Purpose5/5

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

The description clearly states the action ('Validate'), the target resource ('one authorized incorporation draft version'), and the key non-effect ('without changing durable state'). This distinguishes it from mutation-oriented siblings like incorporation.update_draft and incorporation.submit_to_sparklaunch.

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

Usage Guidelines3/5

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

The description implies that this tool is for read-only validation of a draft, but it never explicitly names sibling alternatives or states when to choose validation over get_case, update_draft, or submit_to_sparklaunch. 'Without changing durable state' provides helpful context, but the selection logic is left to inference.

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

landing.create_projectCreate landing projectBInspect

Create a private landing-page project and draft configuration in the selected SparkLaunch project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
cta_typeNowaitlist
one_linerYes
project_idYes
target_icpNo
product_nameYes
template_typeNosaas
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate this is a write operation (readOnlyHint false) and non-destructive (destructiveHint false). The description adds a little context by saying the project is 'private' and includes 'draft configuration,' but it does not disclose side effects, authorization needs, or idempotency behavior despite an idempotency_key parameter.

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

Conciseness4/5

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

The description is a single concise sentence with no filler and the main purpose is front-loaded. It is appropriately brief but slightly undersized given the tool's 8 parameters and lack of schema descriptions.

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

Completeness2/5

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

The description is too sparse for a create tool with 8 parameters and no parameter descriptions in the schema. It does not explain required fields, the meaning of 'draft configuration,' or how idempotency_key affects behavior. The presence of an output schema helps with return values but does not compensate for missing parameter and usage guidance.

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

Parameters2/5

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

With 0% schema description coverage, the description carries the full burden for explaining parameters. It only hints at project_id via 'selected SparkLaunch project,' leaving name, product_name, one_liner, cta_type, target_icp, template_type, and idempotency_key unexplained.

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

Purpose4/5

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

The description states a specific verb ('Create') and resource ('private landing-page project'), and clarifies that it operates inside a SparkLaunch project. It is clearly distinct from sibling tools like landing.list_projects and landing.publish, though it does not name them.

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

Usage Guidelines3/5

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

The description implies this tool is for initial creation of a landing project, which is enough to distinguish it from later-stage tools like landing.publish or landing.generate_content. However, it does not explicitly state when to prefer this over alternatives or mention any prerequisites.

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

landing.generate_contentGenerate landing contentA
Destructive
Inspect

Generate structured landing-page copy from the supplied private product brief and optionally replace a selected private draft without publishing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
cta_typeNowaitlist
one_linerYes
project_idYes
product_nameYes
template_typeNosaas
idempotency_keyNo
confirmation_tokenNo
landing_project_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

The description goes beyond the annotations by specifying that the destructive behavior is 'replace a selected private draft' and that publishing is not performed. This directly tells the agent what side effect could occur and what will not happen. It does not explain confirmation_token or idempotency behavior, but the core destructive interaction is disclosed.

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

Conciseness5/5

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

The description is a single sentence that front-loads the primary purpose, then adds the key refinement about optional draft replacement and non-publishing. Every clause earns its place and there is no redundancy with the title or schema.

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

Completeness2/5

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

Given 8 parameters, 0% schema coverage, and a destructiveHint, this description is too thin for safe invocation. It does not explain mandatory parameters, how to identify the draft to replace, or optional parameters such as cta_type, template_type, confirmation_token, and idempotency_key. The presence of an output schema reduces the need to describe return values, but input-side ambiguity remains significant.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parametermantics burden. It gestures at 'private product brief' and 'selected private draft', which loosely map to product_name/one_liner and project_id/landing_project_id, but it never explicitly explains any of the 8 parameters, defaults like cta_type/template_type, or the purpose of confirmation_token/idempotency_key. The agent is left to infer most parameter behavior from names alone.

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

Purpose5/5

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

The description states a specific verb and resource: 'Generate structured landing-page copy' from a 'private product brief', and further clarifies that it can 'optionally replace a selected private draft without publishing it.' This clearly distinguishes it from siblings like landing.publish and landing.create_project, which handle different stages of the landing-page workflow.

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

Usage Guidelines4/5

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

The description gives clear context: use this when you need landing-page copy generated from a private brief, and possibly to replace a draft without publishing. It explicitly excludes publishing behavior, which helps separate it from landing.publish. However, it does not name alternative tools or state explicit 'when-not-to-use' conditions.

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

landing.get_analyticsGet landing analyticsB
Read-onlyIdempotent
Inspect

Retrieve private view, click, and submission analytics for a selected landing page.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
project_idYes
landing_project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat safety. It adds value by specifying the analytics types (views, clicks, submissions) and 'private', but it does not mention response format, pagination, or any rate limits. 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.

Conciseness4/5

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

A single, efficient sentence that front-loads the action and scope. It conveys the key analytics domains without wasted words. Could add a tiny bit more context but remains well-structured.

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

Completeness3/5

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

Given it is a read-only analytics tool with 3 parameters and an output schema, the description is minimally adequate. It names the resource but does not mention the required parameters or how days affects the query. The output schema covers return values, which helps, but parameter context is lacking.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden, but it only mentions 'selected landing page' which maps to landing_project_id. The other parameters (project_id, days) are not described; days is self-explanatory by name and default, but project_id's role is unclear. Partially compensates for the coverage gap.

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

Purpose4/5

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

The description 'Retrieve private view, click, and submission analytics for a selected landing page.' clearly states the verb (Retrieve), the resource (view/click/submission analytics), and the scope (selected landing page). It distinguishes this from other landing tools, though it does not explicitly differentiate from campaign_stats or other analytics tools.

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

Usage Guidelines3/5

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

The description implies usage for retrieving landing page analytics but does not specify when to use this tool versus alternatives like campaign_stats or landing.get_leads. It also does not state prerequisites such as an existing landing_project_id. Usage context is implied but not explicit.

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

landing.get_leadsGet landing leadsA
Read-onlyIdempotent
Inspect

Retrieve private lead submissions captured by a selected landing page.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
project_idYes
landing_project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds useful context (_private lead submissions_ and _selected landing page_) but does not disclose behavior like pagination limits or access requirements. This is consistent with the annotations.

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

Conciseness5/5

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

The description is a single, focused sentence with no filler. It states the core purpose immediately and does not repeat information already present in the schema or annotations.

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

Completeness3/5

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

Given the tool has an output schema and rich annotations, the description is minimally adequate. However, it does not clarify the meaning or necessity of project_id, nor does it provide guidance on pagination behavior or how this tool relates to landing.get_analytics or crm.get_lead. These are gaps an agent might face when choosing or calling the tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for undocumented parameters. It only implies the meaning of landing_project_id via 'selected landing page' and leaves project_id unexplained. limit and offset are self-evident by name, but the key project_id parameter lacks semantic clarification.

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

Purpose5/5

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

The description uses a specific verb (_Retrieve_) and identifies a distinct resource (_private lead submissions captured by a selected landing page_). This clearly distinguishes the tool from siblings like landing.get_analytics or landing.get_project.

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

Usage Guidelines4/5

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

The phrase 'captured by a selected landing page' provides clear context for when this tool is appropriate: when the user wants leads belonging to a landing page. It does not explicitly name alternatives or exclusion criteria, so it falls just short of a 5.

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

landing.get_projectGet landing projectB
Read-onlyIdempotent
Inspect

Retrieve one private landing-page project with its status and URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
landing_project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already convey readOnly, idempotent, non-destructive behavior, so the description does not need to restate those. It adds mild context by labeling the project "private", implying limitted access, but it does not disclose other behavioral details such as authorization requirements or what happens when the project is not found. The description does not contradiction the annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every word contributes meaning: the action, the scoped resource, and the primary return content are all present.

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

Completeness3/5

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

For a simple, annotated, read-only get operation, the description is mostly adequate and the output schema presumably details return values. However, the 0% schema description coverage and the lack of any parameter explanation leaves a meaningful gap in what the agent needs to call the tool correctly.

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

Parameters1/5

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 for parameter meaning. It does not explain what landing_project_id represents, what role project_id plays, or why project_id is required yet defaults to null. An agent cannot confidently choose or format the right identifiers from the description alone.

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

Purpose5/5

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

The description uses a specific verb, "Retrieve", plus a clear resource, "one private landing-page project", and specifies the relevant payload aspects: "status and URLs". It distinguishes itself from the sibling listing tool by being explicitly singular.

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

Usage Guidelines3/5

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

The description implies when to use it — when you need a single landing project's status and URLs — but it does not explicitly contrast with alternatives like landing.list_projects or landing.get_analytics. There is no direct when/when-not guidance, only inferred context from the word "one".

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

landing.list_projectsList landing projectsA
Read-onlyIdempotent
Inspect

List private landing-page projects within the selected SparkLaunch project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context beyond this: results are restricted to private landing-page projects and scoped to a selected SparkLaunch project, which is meaningful filtering behavior not visible in the annotations.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler. It immediately states the action, resource, and scope, and every word contributes to understanding the tool.

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

Completeness4/5

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

For a simple read-only list operation, the combination of description, annotations, and output schema covers the essential invocation context. The description could be more explicit about pagination or limit behavior, but this is a minor gap given the output schema and the strong safety annotations.

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

Parameters3/5

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

Schema description coverage is 0%, so the description needs to compensate. It adds meaning for project_id by tying it to the selected SparkLaunch project, but it does not explain the 'limit' parameter or any defaults/constraints beyond the raw schema types.

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

Purpose5/5

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

The description states a specific verb ('List'), a specific resource ('private landing-page projects'), and a scope ('within the selected SparkLaunch project'). This clearly distinguishes it from siblings like landing.get_project (single project) and validation.list_projects (validation projects).

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

Usage Guidelines3/5

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

The description clearly implies this tool is for enumerating private landing projects within a SparkLaunch project, but it does not explicitly mention alternative tools or state when not to use it. An agent can infer the use case, but there is no explicit routing guidance.

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

landing.publishPublish landing pageA
Destructive
Inspect

Publish or replace the selected landing page on its public SparkLaunch URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
idempotency_keyNo
confirmation_tokenNo
landing_project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already mark this as destructive and non-read-only, and the description reinforces that by saying 'publish or replace'. It clarifies that an existing public page may be overwritten, which is useful behavioral context beyond the generic destructiveHint. It does not detail confirmation_token or idempotency behavior, but the annotation coverage lowers 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.

Conciseness5/5

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

Single sentence, front-loaded with the action, and no filler. It conveys the core operation and the public URL context efficiently. Conciseness is not conflated with underspecification; it is appropriately sized for the information it supplies.

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

Completeness2/5

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

With 4 parameters, 0% schema description coverage, a destructive profile, and no explanation of idempotency_key or confirmation_token, the description is not sufficient for an agent to correctly call this tool. The output schema helps with return values but does not solve invocation semantics.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only hints at 'selected landing page' for landing_project_id. The required project_id, idempotency_key, and confirmation_token remain semantically unexplained, leaving an agent without parameter-level guidance.

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

Purpose5/5

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

The description states a specific action ('publish or replace') applied to a specific resource ('selected landing page') and a clear destination ('public SparkLaunch URL'). This distinguishes it from sibling tools like landing.create_project or landing.generate_content without needing to inspect schemas.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives, nor does it mention prerequisites, exclusions, or conditions. The word 'selected' implies a preceding selection step, but no explicit usage context is provided.

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

lead_capture_ingestIngest campaign leadBInspect

Create or link private campaign-attribution and CRM lead records from an allowlisted lead payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
campaign_idYes
lead_payloadYes
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already state this is a write operation (readOnlyHint=false). The description adds useful behavioral context by revealing the tool can either create new records or link to existing ones, and that it operates on private, campaign-attribution data from allowlisted payloads. It does not disclose duplicate handling, idempotency behavior, or authorization requirements beyond 'allowlisted.'

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

Conciseness5/5

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

A single, efficient sentence that front-loads the action and outcome and contains no filler. It conveys the core function without redundant restatement of the tool name.

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

Completeness2/5

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

For a write tool with a complex nested payload, four parameters, and no idempotency annotation despite an idempotency_key parameter, the description is too sparse. It does not explain what 'link' means, what happens on duplicate leads, how idempotency_key works, or what the output schema returns.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to clarify the parameters. It indirectly identifies campaign_id and lead_payload via 'campaign-attribution' and 'allowlisted lead payload', but it leaves project_id and idempotency_key unexplained and does not describe which fields are required or how the payload is validated.

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

Purpose4/5

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

The description names a specific action ('Create or link') and a specific resource ('private campaign-attribution and CRM lead records'), and narrows the source to 'an allowlisted lead payload.' This makes the tool's intent clear, though it does not explicitly differentiate it from crm.create_lead, which also deals with CRM lead records.

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

Usage Guidelines3/5

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

Usage context is implied by terms like 'campaign-attribution' and 'allowlisted lead payload', suggesting this is for campaign-sourced lead ingestion rather than manual CRM lead creation. However, there is no explicit when/when-not guidance or mention of alternatives such as crm.create_lead, so the agent must infer the right selection.

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

projects.createCreate SparkLaunch projectCInspect

Create a new private SparkLaunch business project for the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
stageNo
industryNo
one_linerNo
descriptionNo
entity_typeNo
business_modelNo
idempotency_keyNo
business_descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already mark this as a mutating, non-idempotent operation. The description adds that the project is private and scoped to the authenticated user, which is useful context, but it does not explain idempotency_key behavior, duplicate handling, or access implications.

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

Conciseness5/5

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

A single sentence with no wasted words. The action, resource, privacy scope, and user context are all front-loaded, making it easy for an agent to parse quickly.

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

Completeness2/5

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

The description is too thin for a tool with nine optional parameters, no schema descriptions, and sparse annotations. It does not clarify parameter semantics, how this project creation relates to sibling creation tools, or how idempotency and project uniqueness behave.

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

Parameters1/5

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

With 0% schema description coverage and nine parameters, the description must compensate, but it provides no parameter-level meaning at all. Fields such as stage, industry, entity_type, business_model, and especially idempotency_key are left undefined, adding no value beyond the bare schema titles.

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

Purpose4/5

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

The description states a specific action (create), a concrete resource (SparkLaunch business project), and useful qualifiers (private, authenticated user). It is clear and likely distinguishable from sibling tools like projects.update, though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as landing.create_project or validation.create_project. The description implies it is for creating a project, but does not state exclusions, prerequisites, or when a different tool should be chosen.

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

projects.getGet SparkLaunch projectA
Read-onlyIdempotent
Inspect

Retrieve one accessible private SparkLaunch business project, including the current role and effective plan/role/token permissions, without changing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive, so the bar is lower. The description adds behavioral context beyond annotations by specifying 'accessible private' and enumerating the returned role/permission information. It does not contradict annotations, and 'without changing it' reinforces the read-only intent.

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

Conciseness5/5

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

The description is one tight sentence with no filler. It front-loads the action and resource, then adds the differentiating detail about included permissions and read-only behavior. Every clause adds value.

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

Completeness4/5

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

With a rich output schema and strong read-only annotations, the description covers the core purpose and meaningful return content. It does not mention how to discover project_id, but that is a minor gap given one obvious parameter and sibling list tools.

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

Parameters3/5

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

Schema coverage is 0%, so the description carries the burden, but the only parameter is project_id and its purpose is largely inferable from the tool name and resource wording. The description does not explicitly explain how to obtain project_id or its required format, though the schema does mark it required and allow null.

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

Purpose5/5

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

The description uses a specific verb ('Retrieve') and names the exact resource ('one accessible private SparkLaunch business project'), while also listing the key returned details (current role, effective permissions). It clearly distinguishes this from mutation or list tools by emphasizing a single project and 'without changing it.'

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

Usage Guidelines3/5

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

The description implies this is the detail-getter for a single accessible project, but it does not explicitly say when to prefer it over siblings like projects.list, landing.get_project, or validation.get_project. There is no when-not-to-use guidance or alternative routing, leaving some inference to the agent.

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

projects.invite_collaboratorInvite project collaboratorA
DestructiveIdempotent
Inspect

Create or reissue an email invitation for one collaborator on the selected private SparkLaunch project; access begins only after acceptance.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoEditor
emailYes
project_idYes
idempotency_keyNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag readOnlyHint=false, idempotentHint=true, destructiveHint=true, and openWorldHint=true. The description adds behavior beyond those flags: an email invitation is created or reissued, and access begins only after acceptance, which explains the delayed effect. It does not detail what the destructive aspect invalidates, but 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.

Conciseness5/5

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

A single sentence, front-loaded with the action and resource, with the acceptance behavior appended after a semicolon. No wasted words.

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

Completeness3/5

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

The core call is clear and an output schema exists, so return values need no description. However, the tool has five parameters and the description does not address the optional but non-obvious confirmation_token and idempotency_key semantics, nor fully explain the destructive side effect beyond 'reissue'.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden. It provides semantics for email ('one collaborator') and project_id ('selected private project'), but says nothing about role, idempotency_key, or confirmation_token, leaving three parameters under-explained despite their optionality.

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

Purpose5/5

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

The description opens with a specific verb-object pair ('Create or reissue an email invitation') and names the target resource ('one collaborator on the selected private SparkLaunch project'), which is clearly distinct from sibling project CRUD tools. It also adds the acceptance-required outcome, 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.

Usage Guidelines4/5

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

It states a clear context: this is for inviting a single collaborator to a private SparkLaunch project, and it clarifies that access is not immediate. It does not explicitly name alternatives or exclusions, but no obvious sibling tool competes for this same action.

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

projects.listList SparkLaunch projectsB
Read-onlyIdempotent
Inspect

List every private SparkLaunch business project accessible to the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_archivedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful scoping context about 'private' and 'authenticated user,' but it does not disclose behavior around the include_archived default, pagination, or result limits.

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

Conciseness5/5

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

The description is a single sentence with no filler, front-loads the main action, and conveys the core scope immediately. Every word adds value.

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

Completeness3/5

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

The output schema exists and annotations cover safety, so returns and side effects do not need elaboration. However, the description does not qualify 'every' with the archived-project filtering behavior, which could lead an agent to believe no filtering applies. It should either mention include_archived or clarify the default exclusion.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not mention the include_archived parameter at all. While the schema provides the parameter name, type, and default, the description's word 'every' is potentially misleading because archived projects are excluded by default unless include_archived=true.

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

Purpose5/5

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

The description uses a specific verb ('List') plus a clearly scoped resource: 'every private SparkLaunch business project accessible to the authenticated user.' It distinguishes this from sibling list tools by emphasizing 'private,' 'business,' and authentication scope, so an agent can tell it apart from landing.list_projects or validation.list_projects.

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

Usage Guidelines2/5

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

There is no explicit guidance about when to use this tool versus alternatives such as projects.get, landing.list_projects, or validation.list_projects. The description implies this is for listing accessible private projects, but it never states exclusions or alternative conditions, so the agent must infer usage.

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

projects.updateUpdate SparkLaunch projectC
Destructive
Inspect

Overwrite the supplied business fields on an accessible private SparkLaunch project.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
stageNo
industryNo
one_linerNo
project_idYes
descriptionNo
entity_typeNo
business_modelNo
idempotency_keyNo
confirmation_tokenNo
business_descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, so the 'Overwrite' wording mostly restates the structured safety profile. The description does add useful context that only 'supplied' fields are overwritten and that the project must be 'accessible' and 'private.' It does not explain the role of confirmation_token or idempotency_key, which may be important for this 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.

Conciseness4/5

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

The description is a single compact, front-loaded sentence with no filler. It is appropriately sized for a focused tool, though the brevity comes at the cost of missing behavioral and parameter detail. The structure itself is sound.

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

Completeness2/5

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

With 11 parameters and only 1 required, the description does not cover update semantics, idempotency behavior, confirmation token requirements, or the meaning of omitted fields. Even with an output schema present, an agent lacks enough context to safely invoke this destructive update operation. The description is too sparse for the complexity of the tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description bears full responsibility for explaining 11 parameters, but it only groups them as 'business fields' without defining individual semantics. It offers no clarity on project_id being the required identifier, nor on idempotency_key, confirmation_token, entity_type, or business_model. Omitted fields are implied to be unchanged, but this is not explicit.

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

Purpose4/5

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

The description uses a clear verb ('Overwrite') and identifies the target resource ('business fields on an accessible private SparkLaunch project'). This distinguishes it from projects.create and projects.get, though it doesn't explicitly name a sibling. The scope ('supplied business fields') is useful for an agent deciding whether this is the right update entry point.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as projects.create, projects.invite_collaborator, or incorporation.update_draft. The name implies 'update existing project,' but no explicit condition, prerequisite, or alternative is stated. An agent must infer usage purely from the tool name and sibling list.

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

qr_generateGenerate QR codeAInspect

Generate and record a QR asset for an existing short link without changing its public destination.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNo
formatNopng
eye_styleNo
backgroundNo
project_idYes
include_logoNo
module_styleNo
shortlink_idYes
idempotency_keyNo
foreground_colorNo
use_project_themeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations are all-false and offer little baseline, so the description carries real weight. It adds a genuine safety guarantee (the link's public destination is not changed, consistent with destructiveHint=false) and reveals that the QR is 'recorded' persistently rather than merely rendered transiently, matching readOnlyHint=false. It stops short of explaining idempotency behavior (despite the idempotency_key parameter) or what happens to an existing QR for the same link.

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

Conciseness5/5

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

A single 17-word sentence that front-loads the verb and resource with zero filler. The scoping clause is the only addition and it earns its place by preventing misuse of the tool.

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

Completeness2/5

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

Although the output schema covers the return side, this is an 11-parameter tool with zero schema descriptions and only a one-sentence tool description. An agent wanting non-default customization (eye_style, module_style, foreground_color, background, format) has no way to know valid values, and prerequisites beyond 'link exists' are unstated. The core happy path is clear but the full invocation surface is under-specified.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only hints at shortlink_id ('existing short link'). The remaining 10 parameters — size units, allowed format values, eye_style/module_style options, color formats, use_project_theme semantics, and idempotency_key purpose — are entirely undocumented in both schema and description.

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

Purpose5/5

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

The description specifies a concrete verb+resource pair ('Generate and record a QR asset') and scopes it precisely to an existing short link. The clause 'without changing its public destination' differentiates it from sibling operations like shortlink_create and shortlink_rotate, so an agent can tell what this tool does and does not do.

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

Usage Guidelines3/5

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

The phrase 'for an existing short link' implies the prerequisite that the link must already exist, which gives some selection context. However, there is no explicit when-to-use statement, no named alternative, and no exclusions, so the agent is left to infer the usage scenario.

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

sparkclose.cancel_unsignedCancel an unsigned SAFE investmentA
DestructiveIdempotent
Inspect

Confirm cancellation and void a pending signature request; retain history. Signed agreements require first-party correction.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
investment_idYes
idempotency_keyNo
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag destructiveHint and idempotentHint. The description adds useful context beyond annotations: cancellation retains history, and signed agreements are not handled by this tool. It does not disclose every side effect, but given the annotation coverage, the added context is sufficient.

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

Conciseness5/5

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

Two sentences, action front-loaded ('Confirm cancellation and void a pending signature request'), with a single important boundary statement. No filler or redundant restatement of the title. Highly scannable.

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

Completeness3/5

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

The tool has five parameters, including a required expected_version and optional confirmation_token, but the description only describes the high-level effect, not how these fields fit into the cancellation flow. An output schema exists, so return values are covered, but the description leaves prerequisite and validation details to inference. Adequate for tool selection, not fully complete for invocation.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not mention any parameter. The roles of required fields like expected_version and optional confirmation_token or idempotency_key are left entirely to inference from names and schema patterns. The description fails to compensate for the missing schema-level parameter documentation.

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

Purpose5/5

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

The description names a specific operation ('void a pending signature request' / 'cancel') on a specific resource ('unsigned SAFE investment'), and the closing sentence ('Signed agreements require first-party correction') differentiates it from signed-investment flows. This is much clearer than a generic 'cancel investment' and helps distinguish it from sibling tools like sparkclose.close_investment.

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

Usage Guidelines4/5

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

The description explicitly limits the tool to pending/unsigned signature requests and excludes signed agreements ('Signed agreements require first-party correction'). It does not name sibling alternatives or spell out prerequisites such as needing an existing pending request, 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.

sparkclose.close_investmentFinalize an evidenced SAFE closingA
DestructiveIdempotent
Inspect

Confirm one closing only after signatures, approval, matching receipts, reconciliation and source gates pass. Updates private packet and CRM; no share issuance or payment processing.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
investment_idYes
idempotency_keyNo
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already signal that this is a mutable, potentially destructive, idempotent operation. The description adds meaningful behavioral context by stating that it updates the private packet and CRM, does not issue shares or process payments, and should be confirmed only once, which goes beyond what the annotations alone convey.

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

Conciseness5/5

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

The description is two sentences long, front-loads the governing precondition, and provides key behavioral boundaries without wasted words. Every clause earns its place.

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

Completeness3/5

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

The description covers the core purpose, preconditions, and side effects, and an output schema exists so return values need not be explained. However, it omits guidance on the critical safety parameters (expected_version, confirmation_token, idempotency_key) that a destructive finalization tool should clarify for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any of the five parameters, including the critical expected_version, confirmation_token, or idempotency_key. Because the description carries the burden when schema coverage is low but provides no parameter semantics, this is a meaningful gap.

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

Purpose5/5

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

The description uses a specific verb ('Confirm') with a clear resource ('one closing') and states it is the finalization step for an evidenced SAFE closing. It distinguishes itself from workflow siblings by listing preconditions and side effects, so an agent knows exactly what this tool accomplishes.

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

Usage Guidelines5/5

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

It explicitly states when to use the tool: 'only after signatures, approval, matching receipts, reconciliation and source gates pass.' It also gives when-not guidance by noting it does no share issuance or payment processing and should be used only once, which helps agents avoid misuse.

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

sparkclose.get_investmentInspect a SAFE investmentA
Read-onlyIdempotent
Inspect

Read safe investment milestones and an opaque version; no agreement bodies, signer identities or raw evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
investment_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover readOnlyHint, idempotentHint, and destructiveHint. The description adds behavioral value beyond those by revealing that the response is an 'opaque version' and that sensitive legal/identity content is omitted. This is useful context for the agent about the nature of the returned data.

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

Conciseness5/5

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

One tightly written sentence with no filler. The primary action is front-loaded, and the limitations follow immediately. Every part of the sentence earns its place.

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

Completeness5/5

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

For a simple two-ID read operation with a readOnly annotation and an output schema, the description is complete enough. It states what is returned, what is not returned, and the safe read-only nature is already annotated. An agent has sufficient information 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.

Parameters2/5

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. project_id and investment_id are fairly self-explanatory as identifiers, but the description does not clarify their relationship, scoping, or why both are required. With low schema coverage, the description carries the burden and does not compensate.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Read safe investment milestones and an opaque version.' The negative clause 'no agreement bodies, signer identities or raw evidence' sharply distinguishes this from sibling tools like close_investment or list_investments. An agent can immediately tell what this tool does and what it deliberately excludes.

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

Usage Guidelines4/5

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

The description makes the read-only inspection intent clear and explicitly tells the agent what will not be available, such as agreement bodies and signer identities. It does not name specific sibling alternatives like list_investments, but the content boundaries are strong enough to steer an agent away from this tool when those artifacts are needed.

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

sparkclose.get_scenarioInspect a saved SAFE scenarioA
Read-onlyIdempotent
Inspect

Read a saved model snapshot, its inputs and stale-source status.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
scenario_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

The description accurately indicates a read-only operation, consistent with annotations readOnlyHint=true, idempotentHint=true, and destructiveHint=false. It adds limited behavioral context beyond the annotations, such as the focus on stale-source status, but no additional side-effect disclosure is needed.

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

Conciseness5/5

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

The description is concise and front-loaded with the primary action ('Read a saved model snapshot') followed by the key attributes it returns. Every phrase adds value, and there is no redundant or filler content.

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

Completeness4/5

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

As a read operation with an output schema available, the description appropriately avoids detailing return values. It covers the essential purpose and the distinguishing feature of stale-source status, making it sufficiently complete for basic usage.

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

Parameters2/5

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

The schema provides no description for project_id or scenario_id, and the description does not compensate by explaining how these parameters relate to the scenario lookup. The parameter names are somewhat self-explanatory, but with 0% schema description coverage, the tool description should provide more semantic guidance.

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

Purpose5/5

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

The description clearly states the verb 'Read' and specifies the resource: a saved model snapshot, including its inputs and stale-source status. This distinguishes it from list-oriented tools like sparkclose.list_scenarios.

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

Usage Guidelines3/5

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

The description implies usage for inspecting a single saved scenario, but it does not explicitly mention when to prefer this over alternatives such as sparkclose.list_scenarios or sparkclose.save_scenario. The context is clear enough for basic direction but not fully explicit.

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

sparkclose.list_investmentsList SparkClose investmentsA
Read-onlyIdempotent
Inspect

Read paginated SAFE investment metadata in a Growth project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to restate those. It adds useful context by noting the return is 'metadata' and that results are 'paginated,' and it scopes the operation to 'a Growth project.' This meaningfully supplements the structured annotations without contradicting them.

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

Conciseness5/5

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

The description is a single sentence with no filler. It front-loads the verb 'Read,' then names the resource, the pagination behavior, and the scope. Every word contributes meaning, and there is no redundant restating of the tool name or annotations.

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

Completeness5/5

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

For a read-only paginated list endpoint, the description covers the resource type, the scope, and the pagination behavior. The output schema handles return-value details, and the annotations cover the safety profile. Nothing essential for an agent to select and invoke this tool correctly is missing.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries some parameter responsibility. It maps project_id via 'in a Growth project' and suggests limit/offset through 'paginated,' but it does not explain the individual parameters or their semantics. The schema's titles, defaults, and min/max constraints are reasonably self-explanatory, which mitigates the gap.

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

Purpose5/5

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

The description opens with a specific verb, 'Read,' and names a precise resource: 'paginated SAFE investment metadata in a Growth project.' This clearly separates it from sibling tools such as sparkclose.get_investment and sparkclose.list_scenarios, and the title 'List SparkClose investments' aligns with the description without being a mere tautology.

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

Usage Guidelines3/5

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

The 'paginated' wording and the 'list' title imply a bulk-read use case, which is useful context. However, the description never explicitly states when to prefer this tool over sparkclose.get_investment for a single investment, or over sparkclose.list_scenarios for scenario data. Usage guidance is only implied, not stated.

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

sparkclose.list_scenariosList SAFE scenariosA
Read-onlyIdempotent
Inspect

Read paginated saved scenario metadata in a Growth project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations by specifying pagination, metadata-only results, and project scoping, which helps an agent understand what to expect from the call.

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

Conciseness5/5

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

The description is a single, focused sentence with no filler. It front-loads the action and resource, and every word adds meaning.

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

Completeness4/5

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

For a simple read-only list operation with an output schema and safety annotations, the description is mostly complete. It captures pagination, metadata scope, and project context. It could be slightly more explicit about how this relates to sibling tools, but that is more of a usage-guidelines gap than a completeness gap.

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

Parameters2/5

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

With schema description coverage at 0%, the description must compensate for missing parameter explanations. It only hints at pagination and the Growth project scope; it never explicitly explains that project_id is the required project identifier or how limit and offset drive pagination. This leaves most parameter semantics under-specified.

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

Purpose4/5

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

The description uses a specific verb ('Read'), a clear resource ('saved scenario metadata'), and scope ('in a Growth project'), which differentiates it from single-scenario retrieval tools like sparkclose.get_scenario and write tools like sparkclose.save_scenario. The title 'List SAFE scenarios' aligns with the description, though 'Growth project' is not further defined.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool: to read paginated scenario metadata for a project. It does not explicitly state alternatives or when not to use it, but for a simple list operation 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.

sparkclose.model_safeModel post-money SAFE exposureA
Read-onlyIdempotent
Inspect

Calculate an unsaved cap-exposure estimate with explicit assumptions; no issued equity or saved investment.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

The annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds meaningful non-persistence context: 'unsaved', 'no issued equity or saved investment'. This clarifies the operation has no side effects on the cap table or stored investments, which is valuable beyond the annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every clause adds a meaningful constraint: it calculates, it is an estimate, it is unsaved, and it explicitly excludes issued equity and saved investment.

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

Completeness3/5

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

The annotations and output schema cover safety and return structure, and the description clearly frames the non-persistent nature of the operation. However, given the nested ModelInput schema with multiple optional fields and enum choices, the description does not provide enough modeling context or assumptions to help an agent configure a complex scenario confidently.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any of the key parameters such as cap_table_id, allocations, round_amount, round_valuation, pool_dilution_percent, or inclusion. The schema's titles and defaults carry most of the parameter-understanding burden; the description only provides a high-level domain clue.

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

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Calculate') and a specific resource ('cap-exposure estimate'), and it distinguishes itself by saying the estimate is unsaved and that there is no issued equity or saved investment. This clearly separates it from siblings like sparkclose.save_scenario or cap_table.simulate_raise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'unsaved cap-exposure estimate' plus 'no issued equity or saved investment' gives clear context that this tool is for pre-save modeling scenarios. It does not explicitly name alternative tools or give direct 'use X instead' guidance, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkclose.open_workflowContinue SAFE agreement work in SparkLaunchA
Read-onlyIdempotent
Inspect

Return the selected project workspace for agreement preparation, signing, signed-document import or correction. No action is executed.

ParametersJSON Schema
NameRequiredDescriptionDefault
purposeNoprepare_agreement
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds the explicit guarantee 'No action is executed,' clarifying that this tool only returns a workspace and does not trigger a workflow step—important context given the title's 'Continue' wording.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences front-load the primary behavior and immediately add the no-action guarantee. There is no filler or redundant elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter, read-only, idempotent tool with an output schema present, the description plus annotations cover the essential context. It could add a word about the default purpose or how the workspace is selected, but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden. It maps the purpose enum to plain-language workflow stages (preparation, signing, import, correction), which helps, but it never directly explains project_id or the purpose values by name; the parameter names and enum must carry that weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Return') and a clear resource ('the selected project workspace'), then scopes it to four agreement workflow stages. It is clear and distinct from sibling tools like sparkclose.record_approval or get_investment, though it does not explicitly name a sibling for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It identifies clear triggering contexts: agreement preparation, signing, signed-document import, or correction, and undercuts the active-sounding title with 'No action is executed.' It does not name alternatives or exclusion criteria, 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.

sparkclose.readinessReview SparkClose readinessA
Read-onlyIdempotent
Inspect

Read financing readiness and issue metadata; this is not a completed closing.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description reinforces this by saying 'Read' rather than 'create' or 'update'. The added clarification that this is not a completed closing is a meaningful behavioral nuance beyond the annotations, preventing agents from treating the result as a final closing record.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and includes a useful clarifying exclusion. No words are wasted, and every component earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one obvious parameter, clear annotations, and an output schema present, the description provides sufficient context. It explains what the tool does, clarifies what it is not, and the output schema covers return-value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explicitly explain how 'project_id' relates to the readiness data being read. The parameter name and title are somewhat self-explanatory, but the description adds no parameter-level meaning and does not compensate for the missing schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('Read') and resource ('financing readiness and issue metadata'), and explicitly differentiates itself from a completed closing, which distinguishes it from siblings like sparkclose.close_investment. An agent can understand exactly what this tool is for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this tool reviews readiness and issue metadata. It also provides an explicit exclusion—'this is not a completed closing'—which helps prevent misuse. It does not name an alternative tool, 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.

sparkclose.reconcile_fundingReconcile SAFE funding evidenceB
DestructiveIdempotent
Inspect

Confirm matching company-recorded receipts; no funds move and no bank settlement is verified.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
investment_idYes
idempotency_keyNo
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds some scope context beyond annotations ('no funds move and no bank settlement is verified'), which clarifies what the operation does not do. However, annotations declare readOnlyHint=false and destructiveHint=true, yet the description frames the tool as a benign 'Confirm' operation with no disclosure that it mutates or destroys state. This tonal mismatch is materially misleading for an operation flagged destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single 14-word sentence with no filler. The verb and object are front-loaded ('Confirm matching company-recorded receipts'), and each negative qualifier earns its place by narrowing the operational scope. This is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with five parameters (three required), a destructive annotation, and unusual fields like expected_version and confirmation_token, this description is too thin. It omits parameter semantics, fails to disclose the mutating nature of the operation, and gives no routing guidance relative to record_receipt or close_investment. The presence of an output schema covers return values, but the remaining gaps are material.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description bears the full burden of explaining the five parameters—yet it explains none. In particular, expected_version (a 64-char hex string, likely an optimistic-concurrency token) and confirmation_token are non-obvious and completely undocumented in prose. The description adds zero parameter meaning beyond what the raw schema shows.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Confirm matching company-recorded receipts.' The title 'Reconcile SAFE funding evidence' reinforces the domain. Within the sparkclose sibling set (record_receipt, close_investment, record_approval), the scoping negatives 'no funds move and no bank settlement is verified' help distinguish reconciliation from closing or settlement actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the use case—confirming that company-recorded receipts match—and its negatives ('no funds move, no bank settlement is verified') provide partial routing signal by excluding fund-movement and settlement responsibilities. However, it never explicitly names alternatives such as record_receipt (for recording new receipts) or close_investment (for closing), so when-to-use vs. when-not-to-use is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkclose.record_approvalRecord company-reviewed SAFE approvalB
DestructiveIdempotent
Inspect

After confirmation, record a company-reviewed approval reference. Metadata is not legal review.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
project_idYes
investment_idYes
idempotency_keyNo
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the risk profile is already communicated. The description adds context that this is not a legal review action, which helps prevent misuse. It does not disclose what side effects occur beyond recording, but the idempotentHint and destructiveHint partly cover that, so a mid 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with clear front-loading: the purpose comes first, and the caveat about legal review is concise. Every sentence earns its place, though it could have mentioned the confirmation flow slightly more explicitly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, an output schema, and a nuanced confirmation workflow, the description is minimally adequate. It communicates the non-legal nature and the 'after confirmation' timing, but leaves the agent to infer the meaning of expected_version, confirmation_token, and idempotency_key. Given the complexity of SAFE approvals, a bit more context about the recording workflow would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only explains the approval reference concept. The input schema itself is fairly self-explanatory with required fields like evidence_version_id, reference, approved const true, and company_reviewed const true. The confirmation_token and idempotency_key semantics are not explained, but their names are suggestive, and the schema constrains the key fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('record... approval reference'), the resource ('company-reviewed SAFE approval'), and the key constraint that metadata is not legal review. It distinguishes this as the approval-recording step, though it doesn't explicitly contrast with sibling tools like sparkclose.model_safe or sparkclose.record_receipt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'After confirmation' conveys a prerequisite and 'Metadata is not legal review' warns against treating this as legal sign-off. However, there is no explicit alternative tool or when-not-to-use guidance, leaving the agent to infer that this tool is for post-confirmation bookkeeping versus other sparkclose workflow steps.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkclose.record_receiptRecord company-confirmed funds receivedA
DestructiveIdempotent
Inspect

After confirmation, record receipt evidence and reset reconciliation; no payment or bank verification occurs.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
project_idYes
investment_idYes
idempotency_keyNo
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations already carry destructiveHint=true and readOnlyHint=false, the description adds the concrete consequence: it resets reconciliation state, telling the agent exactly what gets mutated. 'No payment or bank verification occurs' discloses the absence of external side effects. This complements the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single 21-word sentence is front-loaded with the prerequisite ('After confirmation'), followed by the action, then the negative scope. Every clause earns its place and there is zero boilerplate or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a state-changing 6-param tool with zero schema descriptions, the description covers the core flow: when (after confirmation), what (record evidence, reset reconciliation), and what not (no payment/bank verification). However, it omits the optimistic-concurrency semantics of expected_version and the roles of confirmation_token and idempotency_key, which matter for a destructive write. Since an output schema exists, the lack of return-value detail is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the parameter-documentation burden but only hints at `data` (receipt evidence) and the confirmation gate. Critical params like expected_version (a 64-char hex, indicating optimistic locking), idempotency_key, and confirmation_token are entirely unexplained. The schema field titles do most of the work that the description should have done.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-resource pair ('record receipt evidence') and adds the state effect ('reset reconciliation'), making the operation concrete. The negative clause ('no payment or bank verification occurs') actively distinguishes it from siblings like sparkclose.reconcile_funding. An agent can tell what this tool does and what it deliberately does not do.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening 'After confirmation' states the prerequisite condition for invoking the tool, which is useful timing guidance. The exclusion clause clarifies that this tool is not for payment or bank verification, implicitly routing those cases to siblings like sparkclose.reconcile_funding. No alternative tool is explicitly named, so the guidance is clear but slightly indirect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkclose.retry_updatesRetry SAFE record updatesA
DestructiveIdempotent
Inspect

Confirm retry of unfinished canonical CRM/document updates. Does not sign or broaden sharing.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
investment_idYes
idempotency_keyNo
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavior beyond the annotations by explicitly stating that this operation 'does not sign or broaden sharing' — a useful safety guarantee. It also frames the operation as a confirmation/retry rather than a fresh action. The annotation destructiveHint=true is not contradicted; retrying updates can still apply pending write effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The core action is front-loaded, and the important 'does not sign or broaden sharing' caveat is included without adding unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for understanding the basic action and safety posture, and an output schema exists so return details are not needed. However, it does not explain what makes an update 'unfinished,' how this relates to confirmation_token or idempotency_key, or how it fits with other sparkclose operations. These gaps are partially mitigated by the annotations and self-explanatory parameter names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no parameter-level guidance. While names like project_id, investment_id, expected_version, idempotency_key, and confirmation_token are somewhat self-explanatory, the description does not clarify their roles, the meaning of expected_version, or when confirmation_token is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Confirm retry') and a specific resource ('unfinished canonical CRM/document updates'), and the title clarifies this is the SAFE-record retry operation. This clearly distinguishes it from sibling tools like sparkclose.close_investment or sparkclose.record_approval, which serve different stages of the workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'retry of unfinished... updates' gives clear context for when to invoke the tool: when a prior canonical update did not complete and needs confirmation/retry. It does not explicitly name alternatives or exclusions, so it falls short of a perfect 5, but the context is unambiguous enough for an agent to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkclose.save_scenarioSave a SAFE scenarioA
DestructiveIdempotent
Inspect

Confirm and save a source-version-bound immutable scenario; no investment is created.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
project_idYes
idempotency_keyNo
confirmation_tokenNo
expected_source_versionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds real behavioral context beyond the annotations by stating the scenario is immutably bound to a source version and that saving does not create an investment. However, it does not explain the destructiveHint=true annotation or the confirmation mechanism, leaving an important behavioral gap for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action, qualifies the object with 'source-version-bound immutable', and includes the key side-effect ('no investment is created'). Every element earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations and output schema, the description does not need to restate return values or simple safety hints, but it still omits workflow context: where confirmation tokens come from, whether an existing draft/scenario is replaced, and why destructiveHint=true is set. This is adequate but not complete for a 5-parameter tool in a large sibling family.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to compensate, but it only indirectly maps to expected_source_version ('source-version-bound') and confirmation_token ('Confirm'). It does nothing to explain idempotency_key, scenario_id, allocation semantics, inclusion, round amounts, or pool dilution, all of which are nontrivial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Confirm and save') and names the exact resource ('source-version-bound immutable scenario'), plus an explicit negative ('no investment is created') that separates it from close_investment and other sparkclose write operations. This is more than enough for an agent to identify 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Confirm and save' and 'no investment is created' imply it is the final save step in a scenario workflow and not the investment closing step, but no alternative tools or explicit when-to-use/when-not-to-use conditions are named. An agent must infer the workflow placement from siblings and the confirmation_token parameter.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkroom.add_documentsAdd reviewed documents to SparkRoomA
Idempotent
Inspect

Pin up to 25 explicitly selected document revisions in the room after confirmation. Any existing room links may expose additions according to their permissions. No source documents are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
room_idYes
sectionNo
documentsYes
project_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond the annotations: it requires confirmation, states that source documents are not changed, and notes that existing room links may expose additions based on permissions. These are genuine behavioral traits not fully captured by the readOnlyHint, idempotentHint, or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two clear sentences with no redundancy. It efficiently conveys the core action, constraints, and side effects without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the provided output schema and annotations, the description covers the essential behavior, confirmation requirement, and non-destructive nature. It does not delve into error conditions or detailed return values, but those are not required because the output schema exists and the annotations cover idempotency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description clarifies that 'documents' refers to explicitly selected document revisions and implies a limit of 25 via 'up to 25', matching the maxItems constraint. However, it does not explain other parameters like project_id, room_id, expected_version, or idempotency_key, leaving partial coverage given the schema's 0% description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: pin up to 25 explicitly selected document revisions into a room after confirmation. It identifies the resource (document revisions) and the specific operation (pinning into a room), distinguishing it from other SparkRoom tools like create or update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as sparkroom.update or sparkroom.create_share_link. It does not mention conditions, prerequisites, or scenarios that would favor this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkroom.createCreate a SparkRoomA
Idempotent
Inspect

Create an empty private investor room with investor uploads disabled. Requires a stable idempotency key.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
project_idYes
idempotency_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotence and non-destructive behavior. The description adds meaningful behavioral specifics not in the schema or annotations: the created room is empty, private, investor uploads are disabled, and a stable idempotency key is required. It does not cover error or output behavior, but the output schema and annotations reduce that burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence with no filler. The purpose is front-loaded and the idempotency requirement follows immediately, making it easy to parse and act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple creation tool with an output schema and safety annotations, the description is close to adequate. However, it omits any explanation of project_id and the data object, and only partially explains invocation expectations, so an agent must rely heavily on parameter names and schema constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to compensate. It only elaborates the idempotency_key parameter (stable key requirement) and says nothing about project_id or the data/RoomInput fields (name, description), leaving them to be inferred from names and constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise action and resource: "Create an empty private investor room" with explicit initial-state details (empty, private, investor uploads disabled). This clearly distinguishes it from SparkRoom siblings like sparkroom.update, sparkroom.add_documents, and sparkroom.create_share_link.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear context for when to call the tool: to create a new SparkRoom with a specific initial configuration. It also communicates a concrete operational requirement (stable idempotency key), though it does not explicitly name alternatives or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkroom.getInspect a SparkRoomA
Read-onlyIdempotent
Inspect

Read room items, effective document revision metadata, share controls and the current opaque version. No file contents, storage keys or bearer links are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
room_idYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral detail beyond annotations by stating what is deliberately excluded from the response: file contents, storage keys, and bearer links. This helps set expectations without contradicting any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences carry exactly the needed information: the first states what is read, the second states what is not returned. Information is front-loaded and there is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with an output schema, annotations, and only two obvious parameters, the description is complete. It tells the agent what to expect and what to avoid expecting, while the output schema covers the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no additional meaning for project_id or room_id. The parameter names and integer constraints are self-explanatory to some degree, but the description does not compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read'), a specific resource (a SparkRoom), and the exact pieces of state returned: room items, document revision metadata, share controls, and the current opaque version. It also differentiates itself from sibling tools by explicitly saying no file contents, storage keys, or bearer links are returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when you need to inspect a room's items, metadata, shares, or version. However, it does not explicitly name alternatives or state when not to use it, such as when you need file contents or need to list rooms via sparkroom.list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkroom.get_analyticsRead SparkRoom usage summaryA
Read-onlyIdempotent
Inspect

Read aggregate views, downloads and link-use counts. Counts are not unique-investor identities or diligence readiness scores.

ParametersJSON Schema
NameRequiredDescriptionDefault
room_idYes
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so safety is covered. The description adds meaningful context beyond the annotations by clarifying that the counts are aggregate and not unique-investor identities or diligence readiness scores, which prevents misinterpretation of the returned data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The first sentence front-loads the action and metrics, and the second sentence adds a valuable clarification about what the counts do not represent. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read-only tool with two required ID parameters, annotations already covering the safety profile, and an output schema available. The description adequately states what the tool returns and adds a clarifying limitation. The only gap is the lack of parameter role explanations, but the overall context is sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the tool description does nothing to explain project_id or room_id beyond their names. With 0% schema coverage, the description should compensate by clarifying parameter roles, but it does not, leaving the agent to infer the meaning and relationship of the two required IDs from context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Read') with a concrete resource (aggregate views, downloads, and link-use counts), making the tool's function immediately clear. It also distinguishes this from other analytics tools by focusing on SparkRoom usage summary metrics, which keeps it distinct from siblings like landing.get_analytics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use this when you need aggregate SparkRoom usage counts rather than investor identities or diligence readiness scores. However, it does not explicitly state when to prefer this tool over alternatives or name any exclusion conditions, so the guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkroom.listList SparkRoom investor roomsA
Read-onlyIdempotent
Inspect

Read paginated investor-room metadata in the selected Growth project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
project_idYes
include_archivedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description only needs to add behavioral context beyond those. It adds useful specifics: pagination, metadata-only content, and project scoping. Nothing in the description contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence captures the operation type, resource, scaffold, and scope. There is no filler, and every clause adds meaning. The structure is appropriate for a simple read-only list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Annotations cover the safety profile, the output schema covers return values, and the description covers scope and listing behavior. The main gap is that 'Growth project' is not defined and the default exclusion of archived rooms is left implicit to the include_archived parameter, but for a straightforward paginated list this is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameter meaning. It only loosely conveys pagination (limit/offset) and a 'selected Growth project' (project_id), but leaves include_archived unaddressed and does not clarify semantics for the bounds or defaults. This is insufficient given the complete lack of schema-level descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read'), a clear resource ('investor-room metadata'), and a structural characteristic ('paginated'). It is easy to distinguish from sibling tools such as sparkroom.get (single-room retrieval) and sparkroom.list_documents (document listing), and the project scope anchors the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for reading room metadata within a project, but it does not explicitly say when to prefer this tool over alternatives like sparkroom.get or sparkroom.list_documents. There are no when-not-to-use conditions or alternative routing, leaving the decision partially to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkroom.list_documentsFind SparkRoom library documentsA
Read-onlyIdempotent
Inspect

Read paginated company-library document and latest revision metadata for selecting room contents. Upload files in SparkLaunch.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
categoryNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is established. The description adds useful behavioral context beyond those annotations: pagination, company-library scope, and latest-revision metadata exposure. It does not discuss authentication or rate limits, but the annotation coverage lowers the burden and the added context is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence front-loads the action, resource, and purpose; the second sentence provides a concise routing instruction about uploads. Each sentence earns its place, and the structure is easy for an agent to scan quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema is present, return values do not need to be described. The description covers purpose, pagination, scope, and the upload alternative. Minor gaps remain around category filtering and the precise relationship between project_id and the company library, but the schema and available param names cover most of that. For a read-only listing tool, this is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate by explaining parameter semantics. It only alludes to pagination, which loosely maps to limit/offset, and to company-library scope, which maps to project_id. It does not explain the category filter values, the meaning of offset/limit beyond the word 'paginated', or the required project_id relationship. The schema supplies types and constraints, but the description adds only minimal parameter-level value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Read') with a specific resource ('company-library document and latest revision metadata') and names the intended use case ('for selecting room contents'). It clearly distinguishes itself as a read-oriented listing tool from mutation siblings like sparkroom.add_documents or sparkroom.update_item, and it is not a mere restatement of the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use the tool: when selecting room contents by reading company-library documents. It also provides an explicit where-not instruction ('Upload files in SparkLaunch'), steering agents away from using this tool for uploads. However, it does not explicitly name sibling tools or articulate nuanced alternatives for listing documents versus listing rooms or adding items, 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.

sparkroom.remove_itemRemove an item from SparkRoomB
DestructiveIdempotent
Inspect

Remove the selected room item after confirmation, retaining its source document. Any existing room links stop exposing or downloading the item; prior downloads, if any, cannot be recalled.

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYes
room_idYes
project_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and idempotentHint=true, but the description adds important specifics: the source document is retained, existing room links stop exposing or downloading the item, and prior downloads cannot be recalled. This goes beyond the annotations and gives an agent meaningful side-effect awareness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and efficient: two sentences that front-load the action and then give the most important side effects. No filler or redundant restatement of the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a destructive tool with 6 parameters and zero schema descriptions, the description should explain the confirmation flow, versioning/idempotency requirements, and parameter roles. It provides strong behavioral context but leaves the agent under-informed about 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.

Parameters1/5

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 does not explain project_id, room_id, item_id, expected_version, idempotency_key, or confirmation_token. Only 'after confirmation' vaguely alludes to confirmation_token, but no parameter semantics are actually provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove'), the resource ('selected room item'), and the key scope ('retaining its source document'). It also differentiates the tool from siblings like sparkroom.update_item or document-focused operations by explaining that room links stop exposing/downloading the item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus alternatives such as sparkroom.update_item or other removal tools. It implies a confirmation step, but does not state prerequisites, alternatives, or when this operation is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkroom.updateUpdate SparkRoom detailsA
DestructiveIdempotent
Inspect

Change the named room description or name after reviewing current-state confirmation. This does not revoke sharing.

ParametersJSON Schema
NameRequiredDescriptionDefault
changesYes
room_idYes
project_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as destructive and idempotent, so the bar is lower. The description adds meaningful non-destructive context by clarifying that sharing is not revoked, and it hints at the expected_version/confirmation_token workflow. It does not fully explain overwrite consequences, but the combination of annotations and description gives adequate behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences front-load the core purpose, then add the prerequisite and a disambiguating caveat. There is no filler or redundant restating of the tool name, making this appropriately concise and well structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter update tool with expected_version, idempotency_key, and confirmation_token, the description gives only a light hint that current-state confirmation is needed. It does not fully explain how to obtain or supply that confirmation or why idempotency matters. The output schema and annotations reduce some of the burden, so this is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 connects 'changes' to description or name and gestures at current-state confirmation, but it leaves project_id, room_id, idempotency_key, and confirmation_token essentially unexplained. The schema provides only field titles, so an agent still has to infer critical semantics around idempotency and versioning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific mutation: changing the room's name or description. It also distinguishes itself from sibling tools like sparkroom.revoke_share_link by explicitly stating 'This does not revoke sharing,' and from sparkroom.update_item by targeting the room itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'after reviewing current-state confirmation' gives a clear prerequisite: the agent should first inspect the current room state before updating, which maps to expected_version and confirmation_token. It does not explicitly name alternatives, but it provides enough contextual guidance and a useful exclusion in 'does not revoke sharing.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sparkroom.update_itemUpdate SparkRoom item presentationA
DestructiveIdempotent
Inspect

Change a room item title, section or order after current-state confirmation. Any existing room links reflect the new presentation immediately; revision and live-source modes remain unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
changesYes
item_idYes
room_idYes
project_idYes
idempotency_keyYes
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true. The description adds useful behavioral context beyond those flags: existing room links reflect the new presentation 'immediately,' and revision/live-source modes remain unchanged. This helps an agent anticipate side effects 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no filler. The primary intent is front-loaded, and the second sentence adds behaviorally important propagation detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with an output schema and annotations, the description is decent but leaves key workflow gaps. It mentions 'current-state confirmation' but does not explain how confirmation is represented or obtained, nor does it clarify the roles of expected_version and idempotency_key. An agent would likely need to inspect sibling tools or experiment to use this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It maps only three of the seven parameters ('title, section or order' to display_title, section, and order_index). It does not explain the critical semantics of expected_version, confirmation_token, or idempotency_key, which are central to the 'current-state confirmation' workflow and safe mutation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific operation ('Change'), a specific resource ('room item'), and the exact fields affected ('title, section or order'). It also scopes the behavior by stating that only presentation is updated and that revision/live-source modes remain unchanged, which clearly differentiates it from sibling tools like sparkroom.update and sparkroom.remove_item.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear usage context: this is for changing presentation attributes of an existing room item, and it should happen 'after current-state confirmation.' It does not explicitly name alternative tools or state when not to use this tool, but the 'room item presentation' focus plus sibling names makes the intended use reasonably discoverable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tasks.createCreate project taskA
Idempotent
Inspect

Create one private general task in the selected SparkLaunch project and optionally assign it to an accepted project member.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
due_atNo
priorityNonormal
project_idYes
descriptionNo
assignee_emailNo
idempotency_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds useful behavioral context: the task is 'private' and 'general', it is created in a specific project, and assignment is only possible to an 'accepted project member.' This clarifies intended behavior without contradicting the idempotentHint or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense sentence with no filler. It front-loads the core action and includes the most relevant constraints without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists and annotations cover idempotency and destructiveness, so some gaps are acceptable. However, with seven parameters and no schema descriptions, the description leaves too much unstated about optional fields like priority, due date, description, and idempotency_key for an agent to fully understand invocation trade-offs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meaning. It only hints at project_id and assignee_email; it does not explain title, due_at, priority, description, or idempotency_key. Most parameter semantics are left to the schema property names and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: creating a task, with qualifiers 'private general task' and 'in the selected SparkLaunch project.' It clearly differentiates from sibling tasks.delete, tasks.list, and tasks.update by focusing on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this tool is for creating a task in a specific project and optionally assigning it to an accepted member. It does not explicitly mention alternatives or exclusions, but the context is strong enough to guide appropriate use over the task siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tasks.deleteDelete project taskA
DestructiveIdempotent
Inspect

Permanently delete one private general task from the selected SparkLaunch project.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
project_idYes
idempotency_keyNo
expected_versionYes
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true and idempotentHint=true; the description adds that deletion is permanent, reinforcing irreversibility. It also narrows the scope to a private general task within the selected project. However, it does not disclose consequences for related data or any authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One concise, front-loaded sentence with no filler. Every word contributes to either the action, the resource type, or the project scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, 5-parameter operation requiring expected_version and confirmation_token, the description provides only the basic deletion intent. It omits any guidance about when a confirmation token is needed, how optimistic concurrency works, or what happens upon deletion. The presence of an output schema does not compensate for missing operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 5 parameters with 0% schema description coverage, yet the description adds no parameter-level meaning. It does not explain expected_version, confirmation_token, idempotency_key, or how project_id scoping works, leaving critical semantics to the agent's inference from names alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Permanently delete') and resource ('one private general task from the selected SparkLaunch project'), which clearly identifies what the tool does. The delete operation is unambiguous and easily distinguished from sibling tools like tasks.create, tasks.update, and tasks.list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The deletion purpose is implied and clear from the verb, but there is no explicit guidance on when to use this versus alternatives or any exclusions. An agent can infer it is the right tool for removal, but the description does not state conditions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tasks.listList project tasksA
Read-onlyIdempotent
Inspect

List private general tasks in the selected SparkLaunch project without changing them.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
statusNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds scope context ('private general tasks', 'selected SparkLaunch project') but does not disclose additional behavior such as pagination behavior or return format. This is acceptable given the annotations, but no extra behavioral depth is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It communicates the operation, scope, and non-mutating nature clearly and efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with an output schema and read-only annotations, the description covers the essential scope. It does not explain limit/offset/status filtering behavior in prose, but the schema provides enough structural information for an agent. A bit more parameter guidance would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needs to compensate. It only implies project_id via 'selected SparkLaunch project' and says nothing about limit, offset, or status. The parameter names and schema defaults provide some self-evident meaning, but the description does not add value beyond the schema for most parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a clear resource ('private general tasks'), and a scope ('selected SparkLaunch project'). It also explicitly notes the operation does not change anything, which distinguishes it from mutating task siblings like tasks.create, tasks.update, and tasks.delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without changing them' clearly signals this is the read-only retrieval tool, implying use when the agent needs to view tasks rather than modify them. It does not explicitly name alternatives, but the read-only framing provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tasks.updateUpdate project taskA
DestructiveIdempotent
Inspect

Update, complete, cancel, assign, or unassign one private general task in the selected SparkLaunch project.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
due_atNo
statusNo
task_idYes
priorityNo
unassignNo
project_idYes
descriptionNo
clear_due_atNo
assignee_emailNo
idempotency_keyNo
expected_versionYes
clear_descriptionNo
confirmation_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the safety profile is covered. The description adds useful context by listing the specific mutating operations and scoping to private general tasks, but it does not explain behavioral details such as the expected_version concurrency check, confirmation_token requirements, or the effect of cancellation. This is acceptable given annotation coverage 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is a single front-loaded sentence with no filler. Every word contributes either the operation scope or the precise resource context. It is concise without sacrificing the most important differentiators.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 14 parameters and no schema descriptions, the description provides only one terse sentence. It omits essential context around optimistic locking (expected_version), confirmation tokens, idempotency, and clear-field flags. The output schema and annotations help, but an agent is likely to misuse the more nuanced parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only loosely suggests parameter behavior through words like 'complete,' 'cancel,' 'assign,' and 'unassign,' which map to status and assignment fields. It offers no explanation for critical parameters such as expected_version, confirmation_token, idempotency_key, clear_due_at, and clear_description, leaving an agent without enough information to use them correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description lists a precise set of operations—update, complete, cancel, assign, unassign—tied to a specific resource ('one private general task in the selected SparkLaunch project'). This clearly distinguishes it from sibling tools like tasks.create, tasks.delete, and tasks.list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: it is the tool for modifying an existing task's fields, status, or assignment. However, it does not explicitly contrast itself with tasks.delete (for removal) or tasks.create (for creation), nor does it state when not to use it. The guidance is functional but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validation.create_projectCreate validation projectAInspect

Create a private idea-validation workspace within the selected SparkLaunch project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
business_nameYes
target_marketNo
business_modelNo
idempotency_keyNo
business_descriptionYes
unique_value_propositionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag readOnlyHint=false and idempotentHint=false, so the write behavior is expected. The description adds useful context by noting the workspace is 'private' and scoped to a selected project, but it does not disclose side effects, required permissions, or what the created workspace contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, focused sentence conveys the core purpose with no filler. The key qualifiers 'private' and 'within the selected SparkLaunch project' are front-loaded, making the tool's scope immediately clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is too thin for a 7-parameter creation tool with 0% schema coverage. It does not explain the meaning of the required business fields, how project_id selects the parent project, or the purpose of idempotency_key, leaving an agent without enough information to invoke the tool confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only explains the tool's overall purpose and not any of the 7 parameters. Parameter names like business_name and target_market are somewhat self-explanatory, but the role of project_id and idempotency_key is left entirely to inference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Create a private idea-validation workspace within the selected SparkLaunch project.' It clearly distinguishes this tool from siblings like projects.create and landing.create_project by framing it as a validation workspace nested inside an existing project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this tool is used to create a validation workspace within an existing SparkLaunch project, implying the user should already have a project in mind. It does not explicitly name alternatives or exclusions, but the 'within the selected SparkLaunch project' phrasing provides enough situational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validation.get_projectGet validation projectA
Read-onlyIdempotent
Inspect

Retrieve one private validation project and its saved analysis results.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYes
validation_project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful context by specifying 'private' and that saved analysis results are included, but it does not disclose behaviors like authorization requirements or what happens when the project is not found. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler or redundant restatement of the tool name. Every word adds value by conveying scope, privacy, and result content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only getter with annotations and an output schema, the description is reasonably complete. However, the missing explanation of the two IDs and how they relate leaves a notable gap for correct invocation, especially given the schema has no descriptions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden of explaining parameters, but it does not mention validation_project_id or project_id at all. The parameter names are somewhat self-explanatory, yet the description adds no meaning about their relationship or required values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Retrieve') and names a precise resource ('one private validation project') with its associated results. It clearly distinguishes itself from sibling tools like validation.list_projects by emphasizing 'one' and from validation.start_analysis by mentioning saved analysis results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes it clear that the tool retrieves an existing project/results, so an agent can infer when to use it over list/create/start tools. However, it does not explicitly mention list_projects as the alternative for retrieving multiple projects or state any when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validation.list_projectsList validation projectsB
Read-onlyIdempotent
Inspect

List private idea-validation projects within the selected SparkLaunch project.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, covering the safety profile. The description adds only modest behavioral context — that the returned set is 'private' projects inside a 'selected' SparkLaunch project — but does not explain the selection mechanism or result-set behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that leads with the verb and resource, with zero filler. Every word contributes either scope ('private', 'idea-validation') or context ('selected SparkLaunch project').

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich annotations covering safety, the description need not explain return values. However, it leaves the 'selected SparkLaunch project' concept unexplained — an agent cannot tell whether project_id is meant to reference that selection or override it — and limit/pagination behavior is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the burden of explaining parameters, but it only hints at project_id via 'within the selected SparkLaunch project' and says nothing about limit. It also fails to clarify the oddity that project_id is listed as required yet allows null with a default null.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and names a concrete resource ('private idea-validation projects') scoped to a particular context ('within the selected SparkLaunch project'). It distinguishes itself from sibling list tools (landing.list_projects, projects.list) via the 'idea-validation' and 'private' qualifiers, though it does not explicitly name any alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus sibling validation tools like validation.get_project or validation.start_analysis. The scope qualifier 'private' only implies a filtering condition and does not steer the agent toward or away from alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validation.start_analysisRun validation analysisAInspect

Generate and store missing market, competitor, or market-size analysis sections for a private validation project.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionsNoall
project_idYes
idempotency_keyNo
validation_project_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal non-read-only, non-idempotent, and non-destructive behavior. The description adds that the operation persists data and only targets missing sections, which is useful. However, it does not clarify what happens on repeated calls, how the idempotency_key should be used, or whether execution is asynchronous, leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one tight sentence with no filler. The primary action, target resource, and scoping condition are all front-loaded, so an agent can absorb the core meaning at a glance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the output schema exists and the high-level purpose is clear, the description leaves required parameter semantics unexplained, especially the difference between project_id and validation_project_id and the meaning of idempotency_key. For a tool with 0% schema description coverage and two required IDs, this is a meaningful completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It provides meaningful context for the 'sections' parameter by naming market, competitor, and market-size categories, but it does not explain the distinction between the two required IDs (validation_project_id vs project_id) or the purpose of idempotency_key. Those gaps are significant for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly names a specific action ('generate and store') and a specific resource ('market, competitor, or market-size analysis sections') scoped to a private validation project. This is plainly distinct from sibling tools like validation.create_project, validation.get_project, and validation.list_projects, so an agent can select it without deep schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'missing' gives a practical condition: use this tool when analysis sections are absent and need to be filled in. It implies a when-not-to-use case (sections already present), but it does not explicitly name alternatives or state exclusions, so it stops short of a fully explicit routing guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updates
    • Addedsparkclose.cancel_unsigned
    • Addedsparkclose.close_investment
    • Addedsparkclose.get_investment
    • Addedsparkclose.get_scenario
    • Addedsparkclose.list_investments
    • Addedsparkclose.list_scenarios
    • Addedsparkclose.model_safe
    • Addedsparkclose.open_workflow
    • Addedsparkclose.readiness
    • Addedsparkclose.reconcile_funding
    • Addedsparkclose.record_approval
    • Addedsparkclose.record_receipt
    • Addedsparkclose.retry_updates
    • Addedsparkclose.save_scenario
  2. 25 tool updates
    • Addedcap_table.create
    • Addedcap_table.create_stakeholder
    • Addedcap_table.delete
    • Addedcap_table.delete_stakeholder
    • Addedcap_table.dilution_preview
    • Addedcap_table.fully_diluted
    • Addedcap_table.get
    • Addedcap_table.get_usage
    • Addedcap_table.hiring_impact
    • Addedcap_table.list
    • Addedcap_table.simulate_raise
    • Addedcap_table.update
    • Addedcap_table.update_stakeholder
    • Addedsparkroom.add_documents
    • Addedsparkroom.create
    • Addedsparkroom.create_share_link
    • Addedsparkroom.get
    • Addedsparkroom.get_analytics
    • Addedsparkroom.list
    • Addedsparkroom.list_documents
    • Addedsparkroom.list_share_links
    • Addedsparkroom.remove_item
    • Addedsparkroom.revoke_share_link
    • Addedsparkroom.update
    • Addedsparkroom.update_item
  3. 4 tool updates
    • Addedcrm.get_business_card_import
    • Changedcrm.ingest_business_card1 field changed
      • changedInput schema / $defs / MCPFileReference / description
        Previous value: -"Bounded file reference supplied by a ChatGPT host file parameter."New value: +"Bounded file reference supplied by an approved host file parameter."
    • Addedcrm.prepare_business_card_import
    • Changedincorporation.update_draft13 fields changed
      • addedInput schema / $defs / CapitalizationDraft
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "authorized_common_shares": {
        +      "minimum": 0,
        +      "title": "Authorized Common Shares",
        +      "type": "integer"
        +    },
        +    "common_par_value": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
        +          "type": "string"
        +        }
        +      ],
        +      "ge": 0,
        +      "title": "Common Par Value"
        +    },
        +    "founder_common_share_allocations": {
        +      "additionalProperties": {
        +        "minimum": 0,
        +        "type": "integer"
        +      },
        +      "propertyNames": {
        +        "format": "uuid"
        +      },
        +      "title": "Founder Common Share Allocations",
        +      "type": "object"
        +    },
        +    "option_pool_shares": {
        +      "minimum": 0,
        +      "title": "Option Pool Shares",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "authorized_common_shares",
        +    "common_par_value",
        +    "option_pool_shares",
        +    "founder_common_share_allocations"
        +  ],
        +  "title": "CapitalizationDraft",
        +  "type": "object"
        +}
      • addedInput schema / $defs / FilingPreferences
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "certified_copy": {
        +      "title": "Certified Copy",
        +      "type": "boolean"
        +    },
        +    "expedited": {
        +      "title": "Expedited",
        +      "type": "boolean"
        +    },
        +    "registered_agent_selection": {
        +      "enum": [
        +        "sparklaunch",
        +        "existing"
        +      ],
        +      "title": "Registered Agent Selection",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "registered_agent_selection",
        +    "expedited",
        +    "certified_copy"
        +  ],
        +  "title": "FilingPreferences",
        +  "type": "object"
        +}
      • addedInput schema / $defs / GovernanceAssignments
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "incorporator_participant_key": {
        +      "format": "uuid",
        +      "title": "Incorporator Participant Key",
        +      "type": "string"
        +    },
        +    "initial_director_participant_keys": {
        +      "items": {
        +        "format": "uuid",
        +        "type": "string"
        +      },
        +      "title": "Initial Director Participant Keys",
        +      "type": "array"
        +    },
        +    "officers": {
        +      "additionalProperties": {
        +        "format": "uuid",
        +        "type": "string"
        +      },
        +      "title": "Officers",
        +      "type": "object"
        +    },
        +    "responsible_party_participant_key": {
        +      "format": "uuid",
        +      "title": "Responsible Party Participant Key",
        +      "type": "string"
        +    },
        +    "signer_participant_key": {
        +      "format": "uuid",
        +      "title": "Signer Participant Key",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "incorporator_participant_key",
        +    "initial_director_participant_keys",
        +    "officers",
        +    "signer_participant_key",
        +    "responsible_party_participant_key"
        +  ],
        +  "title": "GovernanceAssignments",
        +  "type": "object"
        +}
      • changedInput schema / $defs / MCPFileReference / description
        Previous value: -"Bounded file reference supplied by a ChatGPT host file parameter."New value: +"Bounded file reference supplied by an approved host file parameter."
      • addedInput schema / $defs / MCPIncorporationDraftInput
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Closed ordinary-data draft that cannot carry physical addresses.",
        +  "properties": {
        +    "capitalization": {
        +      "$ref": "#/$defs/CapitalizationDraft"
        +    },
        +    "company_contact_email": {
        +      "format": "email",
        +      "title": "Company Contact Email",
        +      "type": "string"
        +    },
        +    "company_name": {
        +      "maxLength": 255,
        +      "minLength": 1,
        +      "title": "Company Name",
        +      "type": "string"
        +    },
        +    "company_phone": {
        +      "anyOf": [
        +        {
        +          "maxLength": 64,
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "default": null,
        +      "title": "Company Phone"
        +    },
        +    "entity_type": {
        +      "const": "delaware_c_corporation",
        +      "default": "delaware_c_corporation",
        +      "title": "Entity Type",
        +      "type": "string"
        +    },
        +    "filing_preferences": {
        +      "$ref": "#/$defs/FilingPreferences"
        +    },
        +    "founders": {
        +      "items": {
        +        "$ref": "#/$defs/MCPIncorporationFounderDraft"
        +      },
        +      "maxItems": 100,
        +      "minItems": 1,
        +      "title": "Founders",
        +      "type": "array"
        +    },
        +    "governance": {
        +      "$ref": "#/$defs/GovernanceAssignments"
        +    },
        +    "jurisdiction": {
        +      "const": "DE",
        +      "default": "DE",
        +      "title": "Jurisdiction",
        +      "type": "string"
        +    },
        +    "participants": {
        +      "items": {
        +        "$ref": "#/$defs/MCPIncorporationParticipantDraft"
        +      },
        +      "maxItems": 100,
        +      "title": "Participants",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "company_name",
        +    "company_contact_email",
        +    "founders",
        +    "governance",
        +    "capitalization",
        +    "filing_preferences"
        +  ],
        +  "title": "MCPIncorporationDraftInput",
        +  "type": "object"
        +}
      • addedInput schema / $defs / MCPIncorporationFounderDraft
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "common_shares": {
        +      "minimum": 0,
        +      "title": "Common Shares",
        +      "type": "integer"
        +    },
        +    "email": {
        +      "format": "email",
        +      "title": "Email",
        +      "type": "string"
        +    },
        +    "equity_percent": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
        +          "type": "string"
        +        }
        +      ],
        +      "ge": 0,
        +      "title": "Equity Percent"
        +    },
        +    "legal_name": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "title": "Legal Name",
        +      "type": "string"
        +    },
        +    "participant_key": {
        +      "format": "uuid",
        +      "title": "Participant Key",
        +      "type": "string"
        +    },
        +    "roles": {
        +      "items": {
        +        "maxLength": 64,
        +        "minLength": 1,
        +        "type": "string"
        +      },
        +      "maxItems": 16,
        +      "minItems": 1,
        +      "title": "Roles",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "participant_key",
        +    "legal_name",
        +    "email",
        +    "roles",
        +    "equity_percent",
        +    "common_shares"
        +  ],
        +  "title": "MCPIncorporationFounderDraft",
        +  "type": "object"
        +}
      • addedInput schema / $defs / MCPIncorporationParticipantDraft
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "email": {
        +      "format": "email",
        +      "title": "Email",
        +      "type": "string"
        +    },
        +    "legal_name": {
        +      "maxLength": 200,
        +      "minLength": 1,
        +      "title": "Legal Name",
        +      "type": "string"
        +    },
        +    "participant_key": {
        +      "format": "uuid",
        +      "title": "Participant Key",
        +      "type": "string"
        +    },
        +    "roles": {
        +      "items": {
        +        "enum": [
        +          "incorporator",
        +          "director",
        +          "officer",
        +          "signer",
        +          "responsible_party"
        +        ],
        +        "type": "string"
        +      },
        +      "maxItems": 8,
        +      "minItems": 1,
        +      "title": "Roles",
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "participant_key",
        +    "legal_name",
        +    "email",
        +    "roles"
        +  ],
        +  "title": "MCPIncorporationParticipantDraft",
        +  "type": "object"
        +}
      • addedInput schema / oneOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "draft"
        +      ]
        +    },
        +    "required": [
        +      "draft_file"
        +    ]
        +  },
        +  {
        +    "not": {
        +      "required": [
        +        "draft_file"
        +      ]
        +    },
        +    "required": [
        +      "draft"
        +    ]
        +  }
        +]
      • addedInput schema / properties / draft
        Added value: +{
        +  "anyOf": [
        +    {
        +      "$ref": "#/$defs/MCPIncorporationDraftInput"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • removedInput schema / properties / draft_file / $ref
        Removed value: -"#/$defs/MCPFileReference"
      • addedInput schema / properties / draft_file / anyOf
        Added value: +[
        +  {
        +    "$ref": "#/$defs/MCPFileReference"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / draft_file / default
        Added value: +null
      • changedInput schema / required
        Previous value: -[
        -  "project_id",
        -  "case_id",
        -  "expected_version",
        -  "draft_file",
        -  "idempotency_key"
        -]New value: +[
        +  "project_id",
        +  "case_id",
        +  "expected_version",
        +  "idempotency_key"
        +]
  4. 1 tool update
    • Changedincorporation.check_entitlement1 field changed
      • changedOutput schema / oneOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "entitled": {
        -        "type": "boolean"
        -      },
        -      "entitlement_id": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "package_type": {
        -        "type": "string"
        -      },
        -      "price": {
        -        "type": "string"
        -      },
        -      "purchase_url": {
        -        "type": "string"
        -      },
        -      "reason_code": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "source": {
        -        "anyOf": [
        -          {
        -            "type": "string"
        -          },
        -          {
        -            "type": "null"
        -          }
        -        ]
        -      },
        -      "status": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "entitled",
        -      "status",
        -      "source",
        -      "entitlement_id",
        -      "reason_code",
        -      "price",
        -      "package_type",
        -      "purchase_url"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "error": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "code": {
        -            "type": "string"
        -          },
        -          "correlation_id": {
        -            "type": "string"
        -          },
        -          "message": {
        -            "type": "string"
        -          },
        -          "retryable": {
        -            "type": "boolean"
        -          }
        -        },
        -        "required": [
        -          "code",
        -          "message",
        -          "retryable"
        -        ],
        -        "type": "object"
        -      },
        -      "status": {
        -        "const": "error"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "error"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "confirmation": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "expires_at": {
        -            "type": "string"
        -          },
        -          "instruction": {
        -            "type": "string"
        -          },
        -          "token": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "token",
        -          "expires_at",
        -          "instruction"
        -        ],
        -        "type": "object"
        -      },
        -      "preview": {
        -        "additionalProperties": true,
        -        "type": "object"
        -      },
        -      "status": {
        -        "const": "confirmation_required"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "confirmation",
        -      "preview"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "message": {
        -        "type": "string"
        -      },
        -      "next_action": {
        -        "additionalProperties": true,
        -        "type": "object"
        -      },
        -      "status": {
        -        "const": "unavailable"
        -      }
        -    },
        -    "required": [
        -      "status",
        -      "message",
        -      "next_action"
        -    ],
        -    "type": "object"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "entitled": {
        +        "type": "boolean"
        +      },
        +      "entitlement_id": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "guidance": {
        +        "type": "string"
        +      },
        +      "purchase_supported_in_chatgpt": {
        +        "type": "boolean"
        +      },
        +      "reason_code": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "source": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "status": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "entitled",
        +      "status",
        +      "source",
        +      "entitlement_id",
        +      "reason_code",
        +      "purchase_supported_in_chatgpt",
        +      "guidance"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "error": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "code": {
        +            "type": "string"
        +          },
        +          "correlation_id": {
        +            "type": "string"
        +          },
        +          "message": {
        +            "type": "string"
        +          },
        +          "retryable": {
        +            "type": "boolean"
        +          }
        +        },
        +        "required": [
        +          "code",
        +          "message",
        +          "retryable"
        +        ],
        +        "type": "object"
        +      },
        +      "status": {
        +        "const": "error"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "error"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "confirmation": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "expires_at": {
        +            "type": "string"
        +          },
        +          "instruction": {
        +            "type": "string"
        +          },
        +          "token": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "token",
        +          "expires_at",
        +          "instruction"
        +        ],
        +        "type": "object"
        +      },
        +      "preview": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "status": {
        +        "const": "confirmation_required"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "confirmation",
        +      "preview"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "message": {
        +        "type": "string"
        +      },
        +      "next_action": {
        +        "additionalProperties": true,
        +        "type": "object"
        +      },
        +      "status": {
        +        "const": "unavailable"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "message",
        +      "next_action"
        +    ],
        +    "type": "object"
        +  }
        +]
  5. 59 tool updates
    • First observedbranding.generate_palette
    • First observedbranding.get_palette
    • First observedbranding.list_palettes
    • First observedcampaign_archive
    • First observedcampaign_create
    • First observedcampaign_pause
    • First observedcampaign_stats
    • First observedcrm.add_contact_note
    • First observedcrm.add_lead_note
    • First observedcrm.create_lead
    • First observedcrm.delete_business_card
    • First observedcrm.generate_logo
    • First observedcrm.get_activities
    • First observedcrm.get_contact
    • First observedcrm.get_contact_workspace
    • First observedcrm.get_dashboard
    • First observedcrm.get_lead
    • First observedcrm.get_lead_workspace
    • First observedcrm.ingest_business_card
    • First observedcrm.list_deals
    • First observedcrm.log_activity
    • First observedcrm.move_deal
    • First observedcrm.refresh_contact_summary
    • First observedcrm.search_contacts
    • First observedcrm.search_leads
    • First observedcrm.update_contact
    • First observedcrm.update_lead
    • First observedincorporation.cancel_case
    • First observedincorporation.check_entitlement
    • First observedincorporation.get_case
    • First observedincorporation.prepare_action_center
    • First observedincorporation.start_case
    • First observedincorporation.submit_to_sparklaunch
    • First observedincorporation.update_draft
    • First observedincorporation.validate
    • First observedlanding.create_project
    • First observedlanding.generate_content
    • First observedlanding.get_analytics
    • First observedlanding.get_leads
    • First observedlanding.get_project
    • First observedlanding.list_projects
    • First observedlanding.publish
    • First observedlead_capture_ingest
    • First observedprojects.create
    • First observedprojects.get
    • First observedprojects.invite_collaborator
    • First observedprojects.list
    • First observedprojects.update
    • First observedqr_generate
    • First observedshortlink_create
    • First observedshortlink_rotate
    • First observedtasks.create
    • First observedtasks.delete
    • First observedtasks.list
    • First observedtasks.update
    • First observedvalidation.create_project
    • First observedvalidation.get_project
    • First observedvalidation.list_projects
    • First observedvalidation.start_analysis

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Transforms founder profiles from social media into actionable strategic intelligence through automated scraping, LLM analysis, and personalized news tracking. It leverages vector search and caching to provide deep insights and relevant updates on specific founders.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides VC-grade startup intelligence, allowing founders to validate ideas and VCs to screen deals using tools like scoring, investor matching, and financial analysis.
    18
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources