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

Available Tools

86 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. 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.8/5.0
Behavior4/5

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

With readOnlyHint=false and destructiveHint=true already signaling a state-changing operation, the description adds meaningful context: no securities are actually issued or signed, confirmation is required, and amount/discount formats are specified. This goes 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?

The description is three short sentences with the action front-loaded, followed by compact unit/format guidance and a useful legal/behavioral caveat. Every sentence earns its place and there is no redundancy with the schema.

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 create-with-confirmation tool, the description captures the planning-only nature and the confirmation/plan-limits gating, and the output schema likely covers return values. However, the required concurrency and idempotency contract behind expected_version and idempotency_key is not explained, which is a meaningful gap 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%, so the description must compensate for explaining parameters, but it only clarifies units/format (whole USD, fractional discounts) and indirectly references confirmation. Required parameters such as expected_version, idempotency_key, project_id, cap_table_id, and the nested data object are left unexplained beyond their schema names.

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

Purpose5/5

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

The description opens with a concrete verb ('Add') and names the resource as an address-free planning stakeholder, share position, SAFE, or note, clearly distinguishing this from update_stakeholder and delete_stakeholder. 'Within plan limits after confirmation' adds operational scope that helps an agent understand what kind of creation this is.

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 adding a new planning entity rather than modifying or removing one, so an agent can infer the primary use case from context. However, it does not explicitly mention sibling alternatives or state when not to use this tool, leaving usage guidance 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.deleteDelete SparkCap cap tableA
DestructiveIdempotent
Inspect

Delete the selected cap table and associated records after exact confirmation at the current version; 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

A3.7/5.0
Behavior4/5

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

Annotations already convey destructiveness and non-read-only behavior. The description adds useful behavioral context beyond those flags: deletion cascades to 'associated records' and existing shared access stops, while the current-version confirmation requirement signals optimistic concurrency. This is a meaningful addition 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?

A single front-loaded sentence conveys the action, scope, condition, and side effect with no filler. It is concise while retaining all essential high-level information.

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

Completeness4/5

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

For a destructive mutation, the description covers the key consequences (cascade deletion, access revocation) and the confirmation precondition, and an output schema is present. It does not explain the meaning or format of the version/idempotency parameters, but annotations and schema field names fill much of that 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 should compensate by explaining parameters like expected_version, confirmation_token, and idempotency_key. It only hints at the confirmation/version concept in prose and never maps it to the actual parameters; field names alone carry the meaning.

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 ('Delete'), a specific resource ('selected cap table and associated records'), and a distinctive condition ('after exact confirmation at the current version'). This scope clearly separates it from sibling tools like cap_table.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 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 choose this tool over alternatives such as cap_table.delete_stakeholder or cap_table.update, nor are there any exclusions or prerequisites beyond the confirmation/version condition. The usage context must be inferred from the 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.

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.

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

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint and idempotentHint, so the description is not required to repeat those. It adds meaningful behavior: deletion also removes 'associated records', requires 'exact confirmation', and is version-specific. This goes beyond 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, well-structured sentence that front-loads the action and object and packs the key constraints (associated records, exact confirmation, current version) without filler or redundancy.

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 values and annotations cover destructive/idempotent behavior, the tool still has six parameters with zero schema-level descriptions. The description only partially explains the confirmation and version parameters, leaving the agent unable to confidently construct all required arguments.

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 expected_version and confirmation_token via 'current cap-table version' and 'exact confirmation'. The remaining parameters (project_id, cap_table_id, stakeholder_id, idempotency_key) have no semantic explanation anywhere, leaving the agent under-informed.

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 ('Delete') with a precise resource ('selected planning stakeholder') and scope ('associated records'), clearly distinguishing it from sibling tools like cap_table.delete, cap_table.create_stakeholder, and cap_table.update_stakeholder. The context 'at the current cap-table version' also adds needed specificity.

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 used to delete a stakeholder for a cap table, but it never explicitly states when to prefer it over cap_table.delete or when not to use it. The usage context is inferable from the name and description, but no exclusions or alternative guidance are provided.

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

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 draftB
DestructiveIdempotent
Inspect

Update selected planning fields after exact confirmation at the current opaque version.

ParametersJSON Schema
NameRequiredDescriptionDefault
changesYes
project_idYes
cap_table_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 declare readOnlyHint=false, idempotentHint=true, and destructiveHint=true, so the safety profile is covered. The description adds genuinely useful behavior beyond that: updates are scoped to selected planning fields, gated by a version match (optimistic concurrency via expected_version), and require a confirmation token. 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.

Conciseness4/5

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

A single 12-word sentence that front-loads the verb and resource and packs in the version and confirmation conditions without filler. It loses a point because the dense phrasing ('opaque version', 'exact confirmation') prioritizes brevity over immediate comprehensibility.

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 output schema covers return values, but the description is under-specified for a tool with 5 required parameters, a confirmation flow, and version-gating. It never explains how to obtain expected_version or confirmation_token (presumably a prerequisite read or preview call), what happens on version mismatch, or whether changes are merged or replaced. An agent cannot confidently invoke this tool correctly from the description alone.

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 the burden of explaining parameters. Its prose maps well to changes ('selected planning fields'), expected_version ('current opaque version'), and confirmation_token ('exact confirmation'). However, it never explains idempotency_key's retry-safe semantics, and project_id/cap_table_id are left to inference from their names. Partial compensation for a large 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 states a specific verb ('Update'), resource ('selected planning fields'), and key conditions ('after exact confirmation at the current opaque version'). The phrase 'planning fields' distinguishes it from cap_table.update_stakeholder, which targets stakeholder data, and 'selected' implies partial updates rather than full replacement. It loses a point because no sibling is named explicitly and the jargon 'opaque version' is never clarified.

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 a usage condition — updates should only occur after exact confirmation at a specific version — but gives no explicit when-to-use guidance, no exclusions, and no direction to alternatives such as cap_table.create for new cap tables or cap_table.update_stakeholder for stakeholder-level changes. The 0% schema coverage and 5 required parameters make this gap more costly.

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. 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.2/5.0
Behavior4/5

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

Annotations already indicate destructive and idempotent behavior, and the description adds meaningful context beyond that: the need for exact confirmation, the version constraint, and the restriction on execution/signature fields. There is no contradiction with the annotations. Slightly more detail about idempotency-key behavior could help, but the description does not mislead.

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 purpose and scope are front-loaded, and the limitation is stated immediately afterward. 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 tool with 7 parameters and a nested `changes` object, the description is concise but covers the essential behavior, preconditions, and field scope. The output schema exists, so return-value documentation is not required. Idempotency-key semantics are not explained, but the idempotent annotation and schema field name provide reasonable coverage.

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 adds some meaning by tying 'address-free planning fields' to the `changes` object and 'current cap-table version' to `expected_version`/`confirmation_token`. However, schema description coverage is 0%, and the description does not clarify `idempotency_key` or the required identifier parameters in detail. The schema names and constraints carry most of the parameter semantics.

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 ('Change selected address-free planning stakeholder fields') on a specific resource (SparkCap stakeholder), and immediately distinguishes it from create/delete operations. It also pins down what is out of scope: 'Execution and signature status cannot be changed.' This is unambiguous and differentiates the tool from its 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 usage context: this tool is for changing planning fields, requires exact confirmation, and operates at the current cap-table version. It also states an exclusion ('Execution and signature status cannot be changed'), which tells an agent when not to use this tool. It does not name alternative tools explicitly, but the guidance is concrete enough for selection.

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.

sparkroom.add_documentsAdd reviewed documents to SparkRoomB
Idempotent
Inspect

Pin up to 25 explicitly selected document revisions in the room after confirmation. Existing viewers can access additions. 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

B3.3/5.0
Behavior4/5

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

The description adds useful behavioral context: the 25-document cap, the confirmation requirement, that existing viewers can access additions, and that source documents are unchanged. This complements 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?

The description is two sentences with no filler; the core action is front-loaded and the second sentence adds valuable safety and access context. Every clause 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 7-parameter, 5-required tool with no parameter descriptions, this is insufficient. Missing semantics for expected_version, idempotency_key, confirmation_token, and section could easily lead to incorrect 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 needed to compensate, but it only indirectly touches the documents and confirmation behavior. It does not explain expected_version, idempotency_key, confirmation_token, section, project_id, or room_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 states a specific action, 'Pin up to 25 explicitly selected document revisions in the room after confirmation,' with a clear resource: the room and document revisions. This clearly differentiates it from removal or update siblings even without naming them.

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 about when to use this tool versus alternatives like sparkroom.remove_item or sparkroom.update_item. 'After confirmation' hints at a prerequisite, but there is no when/when-not or alternative routing.

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 SparkRoomA
DestructiveIdempotent
Inspect

Remove the selected room item after confirmation, retaining its source document. Previously downloaded copies 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

A3.8/5.0
Behavior5/5

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

Even though annotations already declare destructiveHint=true and readOnlyHint=false, the description adds genuinely valuable behavioral context: it specifies exactly what is destroyed (the room item) versus what is retained (the source document), and it discloses that 'previously downloaded copies cannot be recalled.' This irreversibility warning clarifies the scope of destruction beyond what the structured hints 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?

Two sentences totaling under 25 words, with the core action and its scoping front-loaded in the first sentence and the critical irreversibility warning in the second. There is no filler and no redundant restatement 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?

The description covers the key behavioral facts for a destructive operation, and the output schema handles return values, but it omits how an agent obtains the confirmation_token and what expected_version means for concurrency control. For a tool with five required parameters and a confirmation workflow, those are significant gaps.

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 for six parameters. It only hints at confirmation_token via 'after confirmation' and at item selection via 'selected room item,' but it leaves expected_version (the 64-hex hash suggesting an optimistic concurrency guard) and idempotency_key completely unexplained. The description does not compensate for the 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 states a specific verb (Remove) and a clear resource (the selected room item), then adds scoping detail: 'after confirmation, retaining its source document.' This makes the removal action unambiguous and distinguishes it from siblings like sparkroom.update_item, which handles modifications rather than removal.

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 about when to use this tool versus alternatives such as sparkroom.update_item or sparkroom.add_documents. The phrase 'after confirmation' implies a precondition, but the description never states the conditions that select this tool over other SparkRoom operations.

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. 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.1/5.0
Behavior4/5

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

Annotations already signal that this is a non-read-only, idempotent, destructive operation. The description adds useful behavior beyond that: updates require current-state confirmation and the operation deliberately leaves revision and live-source modes untouched. This helps the agent understand expected_version/confirmation_token semantics 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 sentences communicate the core action, the affected fields, a safety precondition, and a non-impacted area. 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.

Completeness3/5

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

For a 7-parameter destructive update, the description is a bit thin on operational details: it does not explain what 'current-state confirmation' concretely requires or how expected_version and confirmation_token should be supplied. The output schema and annotations fill some gaps, but the description alone leaves important invocation semantics somewhat ambiguous.

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 much of the semantic burden. It maps 'title, section, or order' to the three fields inside the changes object and hints at current-state confirmation for expected_version/confirmation_token. However, it does not explain idempotency_key usage, how to obtain or satisfy the confirmation flow, or the roles of the identifier parameters beyond their names.

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

Purpose5/5

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

The description gives a specific verb ('Change') and a precise resource ('a room item') plus the exact mutable presentation aspects: title, section, and order. This clearly distinguishes it from room-level operations like sparkroom.update and from destructive counterparts like 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 provides clear context for when to use it: any time a room item's presentation fields need to change. It also adds a precondition ('after current-state confirmation') and a constraint ('Revision and live-source modes remain unchanged'), but it does not explicitly name alternatives or state when not to use this tool.

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

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. 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
  2. 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"
        +]
  3. 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"
        +  }
        +]
  4. 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.

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.

Resources