SparkLaunch
Server Details
Founder workflows for idea validation, branding, campaigns, landing pages, analytics, and CRM.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
86 toolsbranding.generate_paletteGenerate color palettesBInspect
Generate and save three private color-palette options for the selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| description | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 paletteARead-onlyIdempotentInspect
Retrieve one saved private color palette from the selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| palette_id | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 palettesARead-onlyIdempotentInspect
List saved private color palettes for the selected project without changing them.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 campaignBDestructiveInspect
Archive the selected campaign and deactivate its associated public short links.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| campaign_id | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| tags | No | ||
| objective | Yes | ||
| project_id | Yes | ||
| destination_url | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 campaignCDestructiveInspect
Disable the selected campaign and change the behavior of its public campaign surface.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| campaign_id | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 statisticsBRead-onlyIdempotentInspect
Retrieve private campaign performance statistics for the selected time window.
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | 30d | |
| project_id | Yes | ||
| campaign_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 draftAIdempotentInspect
Create a private planning cap table within the selected project's plan limits. This does not establish an official ledger or issue securities.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| project_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 stakeholderADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| project_id | Yes | ||
| cap_table_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 tableADestructiveIdempotentInspect
Delete the selected cap table and associated records after exact confirmation at the current version; existing shared access stops.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| cap_table_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 stakeholderADestructiveIdempotentInspect
Delete a selected planning stakeholder and associated records after exact confirmation at the current cap-table version.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| cap_table_id | Yes | ||
| stakeholder_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 dilutionARead-onlyIdempotentInspect
Read unsaved dilution scenarios from existing planning data without recording a financing event.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| cap_table_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 ownershipARead-onlyIdempotentInspect
Read unsaved fully diluted ownership including modeled SAFE/note conversions. Requires Startup or higher; conversion valuation is whole USD.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| cap_table_id | Yes | ||
| conversion_valuation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 tableBRead-onlyIdempotentInspect
Read a planning cap table, address-free stakeholders, ownership summary, and opaque version for later edits.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| cap_table_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 usageARead-onlyIdempotentInspect
Read the selected project's cap-table and stakeholder limits; optionally inspect one cap table's usage.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| cap_table_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 impactARead-onlyIdempotentInspect
Read unsaved engineering-hire equity and runway estimates using existing stage benchmarks. Requires Growth or higher; this does not create grants or offers.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | mid | |
| project_id | Yes | ||
| cap_table_id | Yes | ||
| company_stage | No | pre_seed | |
| engineer_count | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 tablesARead-onlyIdempotentInspect
List planning cap tables in the selected project with bounded pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 raiseARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario | Yes | ||
| project_id | Yes | ||
| cap_table_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 draftBDestructiveIdempotentInspect
Update selected planning fields after exact confirmation at the current opaque version.
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | ||
| project_id | Yes | ||
| cap_table_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 stakeholderADestructiveIdempotentInspect
Change selected address-free planning stakeholder fields after exact confirmation at the current cap-table version. Execution and signature status cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | ||
| project_id | Yes | ||
| cap_table_id | Yes | ||
| stakeholder_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 noteADestructiveInspect
Append to or replace the private notes stored for a CRM contact in the selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | ||
| append | No | ||
| person_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 noteADestructiveInspect
Append to or replace private workspace notes for a CRM lead in the selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | ||
| append | No | ||
| lead_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| tags | No | ||
| No | |||
| phone | No | ||
| title | No | ||
| source | No | mcp | |
| company | No | ||
| message | No | ||
| websites | No | ||
| lead_type | No | ||
| project_id | Yes | ||
| linkedin_url | No | ||
| idempotency_key | No | ||
| additional_phone_numbers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 cardADestructiveInspect
Permanently delete one saved business-card attachment from a private CRM contact workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| project_id | Yes | ||
| activity_id | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.generate_logoGenerate CRM logoBInspect
Generate and save a private logo record for the selected project's business using the supplied brand direction.
| Name | Required | Description | Default |
|---|---|---|---|
| attributes | Yes | ||
| project_id | Yes | ||
| prompt_style | No | symbolic | |
| business_name | Yes | ||
| idempotency_key | No | ||
| selected_colors | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds 'private logo record' and 'save', which implies persistence and scope, going slightly beyond the readOnlyHint=false annotation. However, it does not explain the idempotency_key behavior, any irreversible side effects, or what 'private' means in practice. The annotation surface is minimal, so the description carries moderate weight but stays at a basic level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the primary action and result. It avoids redundancy and keeps the key scoping detail ('selected project's business') in focus. It is appropriately sized for the tool, though it may be too brief given the schema's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters with zero schema description coverage, an output schema, and minimal annotations. The description does not clarify how to structure attributes, what prompt_style defaults to or accepts, the role of selected_colors, or how idempotency_key should be used. This leaves an agent under-informed for correct invocation, especially compared to the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the six parameters. It only gestures at 'brand direction' without explaining that selected_colors, attributes, or prompt_style map to this concept. Business_name, project_id, and idempotency_key receive no contextual explanation. The description does not add enough meaning to help an agent fill the schema correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Generate and save a private logo record' for a project's business, which distinguishes it from sibling tools like branding.generate_palette or landing.generate_content. It names the resource (logo record) and the context (selected project's business). It could be slightly stronger by mentioning that the result is an image asset, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for the selected project's business' implies when the tool is appropriate, and the tool name clarifies it is for logo generation. However, there is no explicit guidance about when to prefer this over alternatives like branding.generate_palette or landing.generate_content, nor any mention of prerequisites such as an existing project. The usage context is implied rather than explicitly stated.
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 activitiesARead-onlyIdempotentInspect
List private CRM activity history for a contact, deal, or selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| deal_id | No | ||
| person_id | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 importARead-onlyIdempotentInspect
Read sanitized state and result identifiers for one owner-bound business-card import handoff without returning card data, contact details, or storage references.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| import_intent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 contactARead-onlyIdempotentInspect
Retrieve one private CRM contact from the selected project without changing it.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 workspaceBRead-onlyIdempotentInspect
Retrieve one private CRM contact with profile, attachments, summary, and activity history.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| project_id | Yes | ||
| activity_limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 dashboardARead-onlyIdempotentInspect
Retrieve private CRM dashboard totals and pipeline summaries for the selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | sales | |
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 leadARead-onlyIdempotentInspect
Retrieve one private CRM lead from the selected project without changing it.
| Name | Required | Description | Default |
|---|---|---|---|
| lead_id | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 workspaceCRead-onlyIdempotentInspect
Retrieve one private CRM lead with profile, notes, summary, and timeline context.
| Name | Required | Description | Default |
|---|---|---|---|
| lead_id | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 cardBDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | business-card.jpg | |
| person_id | No | ||
| project_id | Yes | ||
| content_type | No | ||
| capture_source | No | upload | |
| idempotency_key | No | ||
| business_card_file | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 dealsBRead-onlyIdempotentInspect
List private CRM deals and their current pipeline state in the selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No | ||
| deal_type | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| content | No | ||
| deal_id | No | ||
| subject | No | ||
| person_id | No | ||
| project_id | Yes | ||
| activity_type | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 dealCDestructiveInspect
Overwrite the selected private CRM deal's pipeline stage in the selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | ||
| stage_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 importAIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | No | ||
| project_id | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 summaryBDestructiveInspect
Regenerate and overwrite the stored AI summary and next-step guidance for a private CRM contact.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 contactsARead-onlyIdempotentInspect
Search private CRM contact records in the selected project without changing them.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| project_id | Yes | ||
| person_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 leadsARead-onlyIdempotentInspect
Search private CRM lead records in the selected project without changing them.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| status | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 contactBDestructiveInspect
Overwrite the supplied profile fields on a private CRM contact in the selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| No | |||
| notes | No | ||
| phone | No | ||
| title | No | ||
| source | No | ||
| websites | No | ||
| last_name | No | ||
| person_id | Yes | ||
| first_name | No | ||
| project_id | Yes | ||
| person_type | No | ||
| linkedin_url | No | ||
| source_detail | No | ||
| idempotency_key | No | ||
| organization_id | No | ||
| confirmation_token | No | ||
| additional_phone_numbers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 leadADestructiveInspect
Overwrite the supplied profile and workspace fields on a private CRM lead.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| tags | No | ||
| No | |||
| phone | No | ||
| title | No | ||
| source | No | ||
| status | No | ||
| company | No | ||
| lead_id | Yes | ||
| message | No | ||
| websites | No | ||
| lead_type | No | ||
| project_id | Yes | ||
| linkedin_url | No | ||
| idempotency_key | No | ||
| confirmation_token | No | ||
| additional_phone_numbers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 caseBDestructiveIdempotentInspect
Cancel an exact unfiled incorporation version or request safe Filing Operations review after confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | Yes | ||
| case_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 entitlementARead-onlyIdempotentInspect
Check the selected project's incorporation package entitlement without changing it. This ChatGPT tool never returns a price, purchase URL, or purchasing instructions.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 caseARead-onlyIdempotentInspect
Read safe incorporation case and participant progress for the selected project.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 CenterCDestructiveIdempotentInspect
Lock an exact incorporation version and prepare secure participant tasks after confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 caseAIdempotentInspect
Create or resume the selected project's entitled incorporation case without filing externally.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 SparkLaunchBDestructiveIdempotentInspect
Create or read an internal SparkLaunch Filing Operations receipt; no Delaware or NWRA transmission occurs.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | Yes | ||
| project_id | Yes | ||
| locked_version | Yes | ||
| idempotency_key | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 draftADestructiveIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| draft | No | ||
| case_id | Yes | ||
| draft_file | No | ||
| project_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 draftARead-onlyIdempotentInspect
Validate one authorized incorporation draft version without changing durable state.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | Yes | ||
| version | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| cta_type | No | waitlist | |
| one_liner | Yes | ||
| project_id | Yes | ||
| target_icp | No | ||
| product_name | Yes | ||
| template_type | No | saas | |
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 contentADestructiveInspect
Generate structured landing-page copy from the supplied private product brief and optionally replace a selected private draft without publishing it.
| Name | Required | Description | Default |
|---|---|---|---|
| cta_type | No | waitlist | |
| one_liner | Yes | ||
| project_id | Yes | ||
| product_name | Yes | ||
| template_type | No | saas | |
| idempotency_key | No | ||
| confirmation_token | No | ||
| landing_project_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 analyticsBRead-onlyIdempotentInspect
Retrieve private view, click, and submission analytics for a selected landing page.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| project_id | Yes | ||
| landing_project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 leadsARead-onlyIdempotentInspect
Retrieve private lead submissions captured by a selected landing page.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| project_id | Yes | ||
| landing_project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 projectBRead-onlyIdempotentInspect
Retrieve one private landing-page project with its status and URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| landing_project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 projectsARead-onlyIdempotentInspect
List private landing-page projects within the selected SparkLaunch project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 pageADestructiveInspect
Publish or replace the selected landing page on its public SparkLaunch URL.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No | ||
| landing_project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| campaign_id | Yes | ||
| lead_payload | Yes | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| stage | No | ||
| industry | No | ||
| one_liner | No | ||
| description | No | ||
| entity_type | No | ||
| business_model | No | ||
| idempotency_key | No | ||
| business_description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 projectARead-onlyIdempotentInspect
Retrieve one accessible private SparkLaunch business project, including the current role and effective plan/role/token permissions, without changing it.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 collaboratorADestructiveIdempotentInspect
Create or reissue an email invitation for one collaborator on the selected private SparkLaunch project; access begins only after acceptance.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Editor | |
| Yes | |||
| project_id | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 projectsBRead-onlyIdempotentInspect
List every private SparkLaunch business project accessible to the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| include_archived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 projectCDestructiveInspect
Overwrite the supplied business fields on an accessible private SparkLaunch project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| stage | No | ||
| industry | No | ||
| one_liner | No | ||
| project_id | Yes | ||
| description | No | ||
| entity_type | No | ||
| business_model | No | ||
| idempotency_key | No | ||
| confirmation_token | No | ||
| business_description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | ||
| format | No | png | |
| eye_style | No | ||
| background | No | ||
| project_id | Yes | ||
| include_logo | No | ||
| module_style | No | ||
| shortlink_id | Yes | ||
| idempotency_key | No | ||
| foreground_color | No | ||
| use_project_theme | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
shortlink_createCreate short linkBInspect
Create a public short link that redirects to the supplied destination for a selected campaign.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | ||
| project_id | Yes | ||
| utm_params | No | ||
| campaign_id | Yes | ||
| vanity_domain | No | ||
| destination_url | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=false, so the mutation/safety profile is covered. The description adds modest context: the link is public, performs a redirect, and is tied to a campaign. However, it does not disclose workflows implied by the schema, such as the confirmation_token flow or idempotency_key semantics, so it only partially supplements the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 17-word sentence that is front-loaded with the core action ('Create a public short link') followed by scoping modifiers. There is no filler, redundancy, or structural waste; information gaps are real but belong to other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a write operation with 8 parameters and zero schema-level parameter descriptions, yet the description covers only a fraction of its semantics. The output schema covers return values, but the missing confirmation workflow, idempotency-key behavior, parameter explanations, and lack of differentiation from shortlink_rotate leave an agent under-equipped to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only alludes to destination_url ('destination') and campaign_id ('campaign'). The remaining six parameters—slug, project_id, utm_params, vanity_domain, idempotency_key, and confirmation_token—are unexplained in both the schema and the description, which is a significant gap in a 0%-coverage environment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (create) and resource (public short link), plus the redirect-to-destination behavior and campaign scoping. It is clear but does not explicitly differentiate from its closest sibling, shortlink_rotate, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. The description never mentions alternatives such as shortlink_rotate, nor any conditions for choosing this tool over a generic URL shortener. The 'selected campaign' phrase only implies campaign-scoped usage without instructing the agent on tradeoffs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shortlink_rotateRotate short-link destinationADestructiveInspect
Replace the public redirect destination for an existing short link.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| utm_params | No | ||
| shortlink_id | Yes | ||
| destination_url | Yes | ||
| idempotency_key | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the mutation risk is known. The description adds that only the redirect destination is replaced, which scopes the destructive action, but it does not explain side effects like whether the old URL immediately stops working or how confirmation_token/idempotency affect the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. The key action and target are front-loaded, making the purpose immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters, a destructive annotation, and zero parameter-level documentation, the description is too thin to fully equip an agent. Critical unknowns like why confirmation_token exists, how idempotency_key should be used, and whether utm_params are replaced or merged are left unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for six undocumented parameters, but it only clarifies destination_url. Parameters such as shortlink_id, project_id, utm_params, idempotency_key, and confirmation_token receive no meaningful guidance, leaving the agent to guess their roles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Replace') and a specific resource ('public redirect destination for an existing short link'). It clearly differs from the sibling shortlink_create, so an agent can tell this is an update/rotation operation rather than a creation operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this applies to an existing short link, implying it should not be used for creating new links. It does not explicitly name shortlink_create as the alternative, but the context is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sparkroom.add_documentsAdd reviewed documents to SparkRoomBIdempotentInspect
Pin up to 25 explicitly selected document revisions in the room after confirmation. Existing viewers can access additions. No source documents are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| room_id | Yes | ||
| section | No | ||
| documents | Yes | ||
| project_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 SparkRoomAIdempotentInspect
Create an empty private investor room with investor uploads disabled. Requires a stable idempotency key.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| project_id | Yes | ||
| idempotency_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 SparkRoomARead-onlyIdempotentInspect
Read room items, effective document revision metadata, share controls and the current opaque version. No file contents, storage keys or bearer links are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| room_id | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 summaryARead-onlyIdempotentInspect
Read aggregate views, downloads and link-use counts. Counts are not unique-investor identities or diligence readiness scores.
| Name | Required | Description | Default |
|---|---|---|---|
| room_id | Yes | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 roomsARead-onlyIdempotentInspect
Read paginated investor-room metadata in the selected Growth project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| project_id | Yes | ||
| include_archived | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 documentsARead-onlyIdempotentInspect
Read paginated company-library document and latest revision metadata for selecting room contents. Upload files in SparkLaunch.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| category | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 SparkRoomADestructiveIdempotentInspect
Remove the selected room item after confirmation, retaining its source document. Previously downloaded copies cannot be recalled.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| room_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 detailsADestructiveIdempotentInspect
Change the named room description or name after reviewing current-state confirmation. This does not revoke sharing.
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | ||
| room_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 presentationADestructiveIdempotentInspect
Change a room item title, section or order after current-state confirmation. Revision and live-source modes remain unchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| changes | Yes | ||
| item_id | Yes | ||
| room_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | Yes | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 taskAIdempotentInspect
Create one private general task in the selected SparkLaunch project and optionally assign it to an accepted project member.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| due_at | No | ||
| priority | No | normal | |
| project_id | Yes | ||
| description | No | ||
| assignee_email | No | ||
| idempotency_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 taskADestructiveIdempotentInspect
Permanently delete one private general task from the selected SparkLaunch project.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| project_id | Yes | ||
| idempotency_key | No | ||
| expected_version | Yes | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 tasksARead-onlyIdempotentInspect
List private general tasks in the selected SparkLaunch project without changing them.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| status | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 taskADestructiveIdempotentInspect
Update, complete, cancel, assign, or unassign one private general task in the selected SparkLaunch project.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| due_at | No | ||
| status | No | ||
| task_id | Yes | ||
| priority | No | ||
| unassign | No | ||
| project_id | Yes | ||
| description | No | ||
| clear_due_at | No | ||
| assignee_email | No | ||
| idempotency_key | No | ||
| expected_version | Yes | ||
| clear_description | No | ||
| confirmation_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| business_name | Yes | ||
| target_market | No | ||
| business_model | No | ||
| idempotency_key | No | ||
| business_description | Yes | ||
| unique_value_proposition | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 projectARead-onlyIdempotentInspect
Retrieve one private validation project and its saved analysis results.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| validation_project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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 projectsBRead-onlyIdempotentInspect
List private idea-validation projects within the selected SparkLaunch project.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sections | No | all | |
| project_id | Yes | ||
| idempotency_key | No | ||
| validation_project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
25 tool updates
- Added
cap_table.create - Added
cap_table.create_stakeholder - Added
cap_table.delete - Added
cap_table.delete_stakeholder - Added
cap_table.dilution_preview - Added
cap_table.fully_diluted - Added
cap_table.get - Added
cap_table.get_usage - Added
cap_table.hiring_impact - Added
cap_table.list - Added
cap_table.simulate_raise - Added
cap_table.update - Added
cap_table.update_stakeholder - Added
sparkroom.add_documents - Added
sparkroom.create - Added
sparkroom.create_share_link - Added
sparkroom.get - Added
sparkroom.get_analytics - Added
sparkroom.list - Added
sparkroom.list_documents - Added
sparkroom.list_share_links - Added
sparkroom.remove_item - Added
sparkroom.revoke_share_link - Added
sparkroom.update - Added
sparkroom.update_item
4 tool updates
- Added
crm.get_business_card_import - Changed
crm.ingest_business_card1 field changed- changed
Input schema / $defs / MCPFileReference / descriptionPrevious value: -"Bounded file reference supplied by a ChatGPT host file parameter."New value: +"Bounded file reference supplied by an approved host file parameter."
- Added
crm.prepare_business_card_import - Changed
incorporation.update_draft13 fields changed- added
Input schema / $defs / CapitalizationDraftAdded 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" +} - added
Input schema / $defs / FilingPreferencesAdded 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" +} - added
Input schema / $defs / GovernanceAssignmentsAdded 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" +} - changed
Input schema / $defs / MCPFileReference / descriptionPrevious value: -"Bounded file reference supplied by a ChatGPT host file parameter."New value: +"Bounded file reference supplied by an approved host file parameter." - added
Input schema / $defs / MCPIncorporationDraftInputAdded 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" +} - added
Input schema / $defs / MCPIncorporationFounderDraftAdded 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" +} - added
Input schema / $defs / MCPIncorporationParticipantDraftAdded 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" +} - added
Input schema / oneOfAdded value: +[ + { + "not": { + "required": [ + "draft" + ] + }, + "required": [ + "draft_file" + ] + }, + { + "not": { + "required": [ + "draft_file" + ] + }, + "required": [ + "draft" + ] + } +] - added
Input schema / properties / draftAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/MCPIncorporationDraftInput" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Input schema / properties / draft_file / $refRemoved value: -"#/$defs/MCPFileReference" - added
Input schema / properties / draft_file / anyOfAdded value: +[ + { + "$ref": "#/$defs/MCPFileReference" + }, + { + "type": "null" + } +] - added
Input schema / properties / draft_file / defaultAdded value: +null - changed
Input schema / requiredPrevious value: -[ - "project_id", - "case_id", - "expected_version", - "draft_file", - "idempotency_key" -]New value: +[ + "project_id", + "case_id", + "expected_version", + "idempotency_key" +]
1 tool update
- Changed
incorporation.check_entitlement1 field changed- changed
Output schema / oneOfPrevious 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" + } +]
59 tool updates
- First observed
branding.generate_palette - First observed
branding.get_palette - First observed
branding.list_palettes - First observed
campaign_archive - First observed
campaign_create - First observed
campaign_pause - First observed
campaign_stats - First observed
crm.add_contact_note - First observed
crm.add_lead_note - First observed
crm.create_lead - First observed
crm.delete_business_card - First observed
crm.generate_logo - First observed
crm.get_activities - First observed
crm.get_contact - First observed
crm.get_contact_workspace - First observed
crm.get_dashboard - First observed
crm.get_lead - First observed
crm.get_lead_workspace - First observed
crm.ingest_business_card - First observed
crm.list_deals - First observed
crm.log_activity - First observed
crm.move_deal - First observed
crm.refresh_contact_summary - First observed
crm.search_contacts - First observed
crm.search_leads - First observed
crm.update_contact - First observed
crm.update_lead - First observed
incorporation.cancel_case - First observed
incorporation.check_entitlement - First observed
incorporation.get_case - First observed
incorporation.prepare_action_center - First observed
incorporation.start_case - First observed
incorporation.submit_to_sparklaunch - First observed
incorporation.update_draft - First observed
incorporation.validate - First observed
landing.create_project - First observed
landing.generate_content - First observed
landing.get_analytics - First observed
landing.get_leads - First observed
landing.get_project - First observed
landing.list_projects - First observed
landing.publish - First observed
lead_capture_ingest - First observed
projects.create - First observed
projects.get - First observed
projects.invite_collaborator - First observed
projects.list - First observed
projects.update - First observed
qr_generate - First observed
shortlink_create - First observed
shortlink_rotate - First observed
tasks.create - First observed
tasks.delete - First observed
tasks.list - First observed
tasks.update - First observed
validation.create_project - First observed
validation.get_project - First observed
validation.list_projects - First observed
validation.start_analysis
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
- ZetadeckOAuthcom.zetadeck
One workspace for tasks, CRM, docs, and live runway from your bank feed.
Datasets for founders: directories, newsletters, and agencies, with metrics attached.
Launch and operate a SaaS from one conversation — domain, hosting, email, Stripe, ads, security.
34-tool GTM gateway: CRMs, ad platforms, analytics, Google Workspace, AWS, and LLM orchestration.
Related MCP Servers
- AlicenseBqualityCmaintenanceAgentic pipeline that transforms ideas to revenue — for solo founders and bootstrappers.245204MIT
- FlicenseAqualityDmaintenanceTransforms 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-
- FlicenseAqualityCmaintenanceMCP server for solo business founders to route painpoints, generate execution assets, and maintain control through approval workflow.5-

NUVC MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceProvides VC-grade startup intelligence, allowing founders to validate ideas and VCs to screen deals using tools like scoring, investor matching, and financial analysis.18MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
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.
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.
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.
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.