TaleSpinner
Server Details
Create personalized stories, gifts, memoirs, tributes, classroom books, and printed keepsakes.
- Status
- Healthy
- Uptime
- 100.0% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 24 tools
Most tools target a distinct resource+action (life projects, stories, share links, orders), but get_account and get_profile overlap heavily—both return the connected account and credit balances, which will cause misselection. The rest of the surface is clearly delineated.
Names consistently follow a snake_case verb_noun pattern (create_story, list_orders, revoke_story_share_link). A few are verbose (close_life_project_contributions, record_life_project_activity), but the convention holds throughout.
24 tools is borderline heavy for this scope, spanning stories, life projects, share links, orders, products, and account. Several could be consolidated (e.g. the account/profile pair) without losing capability.
Stories cover full lifecycle (create, get, list, rename, delete, publish/remove) and share links are complete (create/list/revoke). Life projects lack a content-update tool—only activity/close/delete—so there are minor gaps agents must work around.
Available Tools
24 toolsclose_life_project_contributionsClose Life Story Project ContributionsADestructiveIdempotentInspect
Close a life-story project to new contributor submissions. Existing contributions remain available.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| confirmCloseContributions | Yes | True only after the user explicitly approved closing the project to new contributions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and idempotentHint=true, which could read as alarming. The description usefully qualifies this by stating existing contributions remain available, clarifying that the operation only halts new submissions rather than deleting data. It does not discuss auth/permission needs, but the safety delta over annotations is real.
Agents need to know what a tool does to the 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, zero filler, with the core action stated first and the reassuring retention fact second. Nothing could be removed without losing 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?
For a two-parameter mutation with no output schema and annotations covering the safety profile, the description is nearly sufficient. It could mention the confirmation requirement or already-closed behavior, but the schema and idempotentHint cover those gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: confirmCloseContributions carries a strong schema description (explicit user approval required), while projectId is undocumented but self-describing. The tool description adds nothing about parameters, so it neither compensates nor detracts; baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (close) and resource (life-story project) plus the precise effect: blocking new contributor submissions. It is clearly distinguishable from delete_life_project or rename_story without opening a schema, though it does not explicitly name a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the description ('to new contributor submissions'), but there is no explicit when-to-use guidance, no mention of prerequisites, and no routing to alternatives such as delete_life_project for full removal. An agent can infer intent but is not steered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_life_projectCreate a Life Story ProjectCInspect
Create a memoir, family legacy, celebration, tribute, or life-series project.
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | ||
| subjectName | Yes | ||
| subjectNote | No | ||
| tributeMode | No | ||
| subjectPronouns | Yes | ||
| approvedCreation | Yes | True only after the user approved creating this project. | |
| subjectBirthDecade | No | ||
| subjectRelationship | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and idempotentHint=false, so the agent knows this mutates state, but the description adds nothing beyond that: it does not state that creation requires prior user approval, whether duplicate projects are possible, or what side effects occur. For a non-idempotent write tool with no output schema, the description carries most of the disclosure burden and fails to.
Agents need to know what a tool does to the 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 the verb first and zero padding. It is tight, though the brevity contributes to the under-specification seen in 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?
An 8-parameter (5 required), non-idempotent creation tool with 13% schema coverage and no output schema needs far more than one sentence. The missing pieces — the approval precondition, required vs optional subject fields, and the tributeMode enum's linkage to the tribute category — are exactly what an agent would need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 13% (just approvedCreation), and the description compensates almost nothing — it merely restates the category enum values. The required subjectName, subjectRelationship, and subjectPronouns and the optional tributeMode/subjectBirthDecade/subjectNote are given no meaning, format, or relationship 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 ("Create") and resource ("project") and enumerates the valid project categories (memoir, family legacy, celebration, tribute, life-series), matching the category enum. However, it never distinguishes a "life project" from a sibling like create_story, so an agent cannot tell from the text alone which construct it needs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance, no mention of the required user-approval gate (approvedCreation must be true), and no routing to alternatives such as create_story. The agent is left to infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_storyCreate a TaleSpinner StoryAInspect
Create a personalized story and spend the connected account's credits. Call only after the user explicitly approves the credit spend.
| Name | Required | Description | Default |
|---|---|---|---|
| theme | Yes | ||
| audience | No | children | |
| pageCount | No | ||
| characterAge | Yes | ||
| characterName | Yes | ||
| characterType | Yes | ||
| storyLanguage | No | en | |
| specialMessage | No | ||
| characterGender | No | ||
| illustratePages | No | all | |
| illustrationStyle | No | vivid | |
| approvedCreditSpend | Yes | True only after the user has explicitly approved spending TaleSpinner credits for this generation. | |
| illustrationQuality | No | medium |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (not read-only, non-idempotent, open-world), but the description adds two facts the structured data cannot convey: the call consumes account credits and requires prior user consent. It does not state what artifact is produced or whether credits are refunded on failure, so it is not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both earning their place: the first states the action and cost, the second states the consent precondition. Front-loaded and zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The consent/credit gate is the highest-value missing piece and it is present, but for a 13-parameter generative tool with no output schema the description says nothing about what it returns, generation latency, or how the story relates to get_story_status. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 8% across 13 parameters, so the schema does the near-nonexistent heavy lifting and the description must compensate — it does not. It mentions no parameter at all, not even the required characterName/theme pair or the 4-24 pageCount range, leaving the agent to infer everything from property 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?
Specific verb+resource ('Create a personalized story') plus an explicit statement of the side effect ('spend the connected account's credits'). This clearly separates it from sibling mutation tools like create_story_share_link or create_life_project, though it never names a sibling for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit gating condition: 'Call only after the user explicitly approves the credit spend.' That is a real when-to-call rule rather than implied usage. It stops short of naming alternatives or stating what to do if approval is denied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_life_projectPermanently Delete My Life Story ProjectADestructiveIdempotentInspect
Permanently delete a life-story project and its answers, contributors, generations, and project orders.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | ||
| confirmPermanentDeletion | Yes | True only after the user explicitly confirmed permanent deletion of this project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds real value beyond them by naming exactly what is destroyed in the cascade (answers, contributors, generations, project orders), which an agent cannot derive from the schema; it stops short of stating permission requirements or recoverability guarantees.
Agents need to know what a tool does to the 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 the irreversible action and its blast radius; every clause earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter destructive tool with no output schema and strong annotations, the description covers the crucial unknown (cascade scope) and the irreversibility implied by 'Permanently'. It is nearly complete, missing only routing guidance against sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: confirmPermanentDeletion is documented in-schema, but projectId has no description. The tool description says nothing about either parameter, so it fails to compensate for the undocumented half, and the required explicit-confirmation semantics live entirely 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?
States a specific verb and resource ('Permanently delete a life-story project') and immediately enumerates the cascade scope (answers, contributors, generations, project orders). This lets an agent separate it from softer siblings like close_life_project_contributions or the narrower delete_story.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance and no mention of alternatives, despite an obvious near-neighbor in close_life_project_contributions (a likely non-destructive counterpart) and delete_story. The agent must infer that this is the hard-delete path purely from the word 'Permanently'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_storyPermanently Delete My StoryBDestructiveIdempotentInspect
Permanently delete a story owned by the connected account. This cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| storyId | Yes | ||
| confirmPermanentDeletion | Yes | True only after the user explicitly confirmed permanent deletion of this story. |
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 structurally. The phrase "This cannot be undone" reinforces the irreversibility in user-facing terms and "owned by the connected account" hints at an authorization scope, but the description adds little beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the destructive consequence front-loaded in the second sentence. Nothing superfluous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is needed for a deletion tool and annotations cover the safety profile, so the core is adequate. However, the description never mentions the mandatory confirmPermanentDeletion pre-condition, leaving the agent to infer the two-step confirmation flow from the schema 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?
Schema coverage is 50%: confirmPermanentDeletion is documented in the schema, but storyId is not, and the description says nothing about either parameter. It notably omits the required explicit user-confirmation gate, which is a meaningful workflow constraint the agent needs to satisfy before calling.
Input schemas describe structure but not intent. Descriptions should explain 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 (delete) plus resource (story) and adds an ownership scope ("owned by the connected account"), which helps distinguish it from remove_story_from_world among the siblings. It does not explicitly name or contrast with that sibling, 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. It says the action is permanent but never tells the agent to prefer remove_story_from_world (unpublish) or other alternatives when the user only wants the story hidden rather than destroyed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountGet TaleSpinner AccountARead-onlyInspect
Get credit balances and subscription status for the connected TaleSpinner account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only which fields are returned (credits, subscription status) and reveals nothing extra about auth requirements, freshness, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the verb and the returned data front-loaded. No filler, no restating of the title 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?
For a zero-parameter read on a fixed account, the description covers everything an agent needs to select and call it, and it partially compensates for the absent output schema by naming the returned fields. It stops short of describing return shape or empty/unauthenticated 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?
The tool takes zero parameters, so the baseline is 4; there are no arguments whose semantics the description would need to disambiguate.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Get') and resource ('the connected TaleSpinner account') and names the exact payload (credit balances and subscription status), which cleanly separates it from siblings like get_profile, list_orders, and list_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and 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 when-to-use guidance, no prerequisites, and never references an alternative tool. An agent must infer that this is the right call for account/credit/subscription queries rather than being told.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_life_projectGet My Life Story ProjectBRead-onlyInspect
Get a life-story project's details and latest generation status.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and a closed-world scope, so the safety profile is fully covered by structured data. The description adds the useful behavioral nuance that generation status is included in the response, but says nothing about pagination, freshness, or error behavior on a missing/invalid project.
Agents need to know what a tool does to the 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 tool's action and the two things it returns are communicated immediately. Nothing here is redundant with 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?
For a one-parameter read tool this covers the essentials, and the mention of 'details and latest generation status' partially compensates for the absent output schema. It stops short of clarifying return shape or the relationship to sibling tools, so it 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% and the description never mentions projectId, its format, or where it comes from. The parameter is reasonably self-evident by name, but the description contributes no semantics beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a life-story project's details') and adds a scoping detail ('latest generation status') that tells the agent what subset of data matters. It does not explicitly distinguish itself from siblings like list_life_projects or get_story, but the singular 'project's details' makes the single-project scope inferable from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative (e.g., list_life_projects for browsing, get_story for story content). Usage is only implied by the tool name and the required projectId, which is the minimum viable level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileGet TaleSpinner ProfileBRead-onlyInspect
Get the connected TaleSpinner account and current credit balances.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | No | |
| No | ||
| nickname | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds only that credit balances are included in the response, which is modest extra context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; every word contributes to identifying the resource and its returned fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has an output schema, so return values need no explanation. However, the unresolved overlap with the sibling get_account is a meaningful completeness gap for an account-oriented read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies for a no-argument 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 ('Get') and resource ('the connected TaleSpinner account and current credit balances'), so the agent knows it is a read of profile/credit state. It is distinguishable from most siblings, though the presence of a sibling named get_account leaves some ambiguity about how the two differ in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus the nearby get_account tool, nor any precondition or exclusion. The agent is left to infer the distinction entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_startedGet Started with TaleSpinnerCRead-onlyInspect
Help a new customer create a TaleSpinner account before connecting it to the assistant.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, but the description instructs the agent to 'create a TaleSpinner account', which reads as a state-mutating write. The description contradicts the declared safety profile and adds no other behavioral context (no return format, auth needs, or side effects).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence with no wasted words, and the onboarding intent is front-loaded. It is efficient, though its brevity is partly the source of its ambiguity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no parameters and no output schema, the description carries the full burden of explaining what this 0-arg tool returns or triggers. One sentence about account creation leaves the agent unsure whether it mutates state, returns instructions, or what to do next — and its conflict with the readOnly annotation compounds the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate. The baseline for a 0-param tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a goal (help a new customer create an account) that the vague name 'get_started' does not convey, so it adds some clarity. However, it never states what the tool actually does mechanically — return onboarding instructions, launch a signup flow, or mutate state — and it does not distinguish itself from siblings like get_account or create_story.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before connecting it to the assistant' gives an implied sequencing cue for when this tool applies in the onboarding flow. It offers no explicit alternatives or when-not-to-use guidance, so the agent must infer the rest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_storyGet My StoryCRead-onlyInspect
Read a story owned by the connected TaleSpinner account.
| Name | Required | Description | Default |
|---|---|---|---|
| storyId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered structurally. The description adds one genuinely useful behavioral fact, that only stories owned by the connected account are readable, but says nothing about failure modes (missing ID, not-owned) or what content comes back.
Agents need to know what a tool does to the 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 short sentence with no filler and the ownership constraint front-loaded. It is arguably too terse for the gaps it leaves, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the burden of hinting at return content, and it does not. For a read-by-ID tool it also omits error behavior and does not clarify the undocumented storyId, leaving the agent under-informed on both input and 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% and the sole parameter storyId carries no description in either place. The description does not explain that storyId is the numeric story identifier, so it adds no meaning beyond the schema's type and exclusivity bounds.
Input schemas describe structure but not intent. Descriptions should explain 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+resource (read a story) and scopes it to stories owned by the connected account, which separates it from list_stories and get_story_status. It never names those siblings explicitly, so the differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use guidance: nothing tells the agent to prefer get_story for fetching by ID versus list_stories for enumeration or get_story_status for state checks. Usage is only implied by the name and the single required storyId.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_story_statusGet Story Generation StatusBRead-onlyInspect
Check whether a story's pages and illustrations are ready.
| Name | Required | Description | Default |
|---|---|---|---|
| storyId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds that it checks both pages and illustrations readiness, which is useful, but doesn't disclose return format (no output schema) or whether status is a boolean/enum/partial-progress state.
Agents need to know what a tool does to the 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, front-loaded sentence with no wasted words. Every element (verb, resource, scope of readiness) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-param read tool with annotations covering safety, the description is adequate but lacks any note on what 'ready' returns, whether it's a boolean or partial state, and how the agent should proceed while not ready.
Complex tools with many parameters or behaviors need more documentation. 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 doesn't mention storyId or clarify whether it accepts a story identifier. With only one well-named required param, the impact is limited. Baseline 3 is defensible but lower than ideal given no description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and resource (a story's pages and illustrations readiness), distinguishing it from get_story (which likely returns story content) and other story tools. It doesn't explicitly name a sibling, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. There's no indication of when to poll this status versus calling get_story, nor any mention of rate limits or polling behavior, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_life_projectsList My Life Story ProjectsARead-onlyInspect
List life-story and keepsake projects owned by the connected account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the meaningful constraint that only account-owned projects are returned, but says nothing about result size, ordering, 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?
A single front-loaded sentence with no filler; the verb, resource, and scope all land immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no-argument, read-only list tool with no output schema and annotation coverage of the safety profile, this is nearly sufficient. The only real omission is whether the result set is bounded or paginated, which an agent might want to know before relying on it as a complete inventory.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline this dimension is satisfied by default. There is nothing further the description could usefully add about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('life-story and keepsake projects') with an explicit ownership scope ('owned by the connected account'). It is distinguishable from the singular get_life_project and from the other list_* tools, though it does not name a sibling to sharpen the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the verb and the ownership scope, but there is no explicit statement of when to reach for this versus get_life_project, nor any exclusion such as shared or contributed projects. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ordersList My Print OrdersBRead-onlyInspect
List print orders belonging to the connected TaleSpinner account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds one useful behavioral fact — results are scoped to the connected TaleSpinner account — but says nothing about pagination, volume, or result shape. With annotations carrying the burden, this is an adequate but thin contribution.
Agents need to know what a tool does to the 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, front-loading the verb and resource. Nothing to trim and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 no-param, read-only list tool the description is minimally sufficient, and the annotations cover the safety profile. However, with no output schema, the agent gets no signal about what an 'order' contains or whether results are paginated/limited, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to explain and the baseline is 4. The description correctly implies no filtering input is required or accepted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('List print orders') and scopes it to the connected TaleSpinner account, which is clear enough for an agent to act on. It does not, however, differentiate itself from neighboring listing tools (list_products, list_stories, list_life_projects), so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus the other list_* siblings, nor any prerequisite or exclusion noted. The only implied usage is 'you want orders', which is nothing beyond the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_productsList TaleSpinner ProductsBRead-onlyInspect
List TaleSpinner story, keepsake, classroom, and printing offerings with links to current details.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that results include links to current details, which is useful return-shape context, but says nothing about result size, caching, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the verb and resource first and the return-content note trailing. The category enumeration is slightly listy but every clause carries 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 no-parameter, read-only catalog listing with annotations covering its safety profile and no output schema, the definition is nearly sufficient. The only mild gap is that it does not hint at whether results are paginated or how many offerings are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to disambiguate and the baseline is 4. The description does not need to compensate for any schema 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?
States a specific verb (List) and resource (TaleSpinner story, keepsake, classroom, and printing offerings), so an agent can tell this apart from list_stories and list_orders without opening any schema. It is clear but does not explicitly name or differentiate itself from those catalog-adjacent 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 says nothing about when to call this versus alternatives such as get_story, list_stories, list_orders, or start_checkout. Usage can only be inferred from the purpose statement; no context or exclusions are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_storiesList My StoriesARead-onlyInspect
List stories owned by the connected TaleSpinner account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description contributes the account-scoping context ('owned by the connected account'), which is useful, but says nothing about result size, ordering, or pagination for a list 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?
A single sentence with zero filler; the scope qualifier is baked in rather than buried, and nothing is repeated from 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?
For a zero-parameter read-only list tool with no output schema, the description conveys the essential scope (owned by the connected account). It lacks only minor operational details such as whether the list is paginated or bounded, which is a small gap given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify beyond the implicit 'all stories for the connected account' scope, which it does state.
Input schemas describe structure but not intent. Descriptions should explain 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+resource ('List stories') plus a scope qualifier ('owned by the connected TaleSpinner account'), which distinguishes it from the several sibling story tools that act on individual stories (get_story, delete_story, rename_story). It does not, however, differentiate itself from other list_* siblings or from list_story_share_links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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, no prerequisites, and no named alternative. An agent must infer from the name alone that this is the enumeration tool versus get_story for a single story.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_story_to_worldPublish My Story to Story WorldBIdempotentInspect
Publish a story owned by the connected account to the public Story World library.
| Name | Required | Description | Default |
|---|---|---|---|
| storyId | Yes | ||
| confirmPublicPublishing | Yes | True only after the user explicitly approved making this story public. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true, idempotentHint=true, destructiveHint=false, so the public and repeat-safe nature is partly covered. The description adds that the story must be owned by the connected account, which is useful authorization context, but says nothing about reversibility, visibility latency, or what happens on republishing an already-public story.
Agents need to know what a tool does to the 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 action, the ownership precondition, and the destination are all in the first clause. Nothing can be trimmed without losing 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 two-parameter, no-output-schema mutation that publishes to a public library, the description covers the core action but omits the consent gate mechanics and reversibility. Annotations carry the safety profile, so the gap is moderate rather than critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: confirmPublicPublishing is documented in the schema, but storyId carries no description there or here. The description does not compensate for that gap by clarifying that storyId refers to an owned story, nor does it explain the confirmation semantics beyond the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain 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 (publish) and resource (a story) plus the scope constraints: it must be owned by the connected account and it lands in the public Story World library. That is enough to distinguish it from create_story or rename_story, though it never names its inverse sibling remove_story_from_world.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 when-to-use or when-not-to-use guidance. The description gives no prerequisites, no mention of the confirmPublicPublishing consent gate, and no pointer to remove_story_from_world as the undo path, leaving the agent to infer the trigger conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_life_project_activityRecord Life Story Project ActivityBIdempotentInspect
Update the last-activity time for a life-story project owned by the connected account.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the description need not repeat it. It usefully adds the ownership constraint (project must belong to the connected account) but says nothing about permissions, failure behavior for unowned projects, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and resource, with zero filler. Nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with full annotation coverage and no output schema, the core contract is covered. However, the description omits when this activity recording should occur and how the ownership restriction affects valid inputs, leaving gaps an agent would have to guess at.
Complex tools with many parameters or behaviors need more documentation. 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% for the single required projectId parameter. The description implies a meaningful constraint on that parameter (the project must be owned by the connected account), which is real added semantics, but it never explains the parameter directly or its expected format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Update) and a precise resource (the last-activity time for a life-story project). It is distinguishable from siblings such as get_life_project and close_life_project_contributions, though it does not explicitly name what it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool does but gives no when-to-use guidance, no trigger conditions, and no alternatives among the many life-project siblings. An agent must infer the call site entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_story_from_worldRemove My Story from Story WorldADestructiveIdempotentInspect
Remove a story owned by the connected account from the public Story World library. The story remains in the owner's private library.
| Name | Required | Description | Default |
|---|---|---|---|
| storyId | Yes | ||
| confirmPublicRemoval | Yes | True only after the user explicitly approved removing this story from the public library. |
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 the crucial nuance the annotations cannot: what is destroyed (the public listing) versus what is preserved (the owner's private library copy). It stops short of stating whether the story can be republished or what happens if it is not currently public.
Agents need to know what a tool does to the 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 with zero filler. The scope of removal is front-loaded, and the preservation guarantee follows immediately as the key consequence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation tool with no output schema and annotations carrying the safety profile, the description covers the essential scope distinction an agent needs. Minor gaps remain around republishing/undo behavior and the error case of removing a story that is not public.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: confirmPublicRemoval is well documented as a user-approval gate, while storyId is only typed as a positive integer. The description adds no parameter-level detail in either direction, so it neither compensates for the storyId gap nor reinforces the confirmation-workflow requirement.
Input schemas describe structure but not intent. Descriptions should explain 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 (remove) and resource (a story owned by the connected account) with explicit scope: the public Story World library, not the private library. This cleanly separates it from delete_story and publish_story_to_world without needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by stating the effect (public library removal, private copy retained), which helps an agent infer this is the unpublish path rather than the delete path. However, no sibling is named explicitly and no when-not-to-use condition is given, so routing 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.
rename_storyRename My StoryBIdempotentInspect
Change the title of a story owned by the connected account.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| storyId | Yes | ||
| approvedChange | Yes | True only after the user approved the new story title. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (not read-only, not destructive, idempotent, closed-world), so the bar is lower. The description does add an authorization constraint — only stories owned by the connected account can be renamed — which is genuine context beyond annotations, but it omits the fact that a user-approved flag is mandatory for the call to succeed.
Agents need to know what a tool does to the 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 zero filler. It is efficient, though its brevity also means it under-specifies the operation relative to what the tool requires.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and the schema documenting the required approval flag, the core is present. However, for a mutation tool with no output schema, omitting the mandatory user-approval prerequisite and any title constraints leaves an agent with a partially complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: the schema describes approvedChange well but leaves title and storyId undocumented. The description implies that 'title' is the new value and 'story' identifies the target, but adds no format, uniqueness, or constraint detail to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (change) and targeted field (title) on a clearly identified resource (a story), and adds the ownership scope 'owned by the connected account'. It does not explicitly differentiate itself from siblings like replace_story_page_text or create_story, but the operation 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?
No when-to-use guidance and no mention of alternatives. An agent gets no signal about when renaming is appropriate versus using replace_story_page_text, or what preconditions must hold. Usage is only inferable from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replace_story_page_textReplace My Story Page TextADestructiveIdempotentInspect
Replace the text on one story page. This also permanently clears that page's existing narration audio so it can be regenerated from the new text.
| Name | Required | Description | Default |
|---|---|---|---|
| storyId | Yes | ||
| pageNumber | Yes | ||
| pageContent | Yes | ||
| confirmNarrationRemoval | Yes | True only after the user approved replacing the page text and clearing its existing narration audio. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, but the description adds the concretely useful detail that the page's existing narration audio is permanently cleared and can be regenerated. That is exactly the kind of 'what gets destroyed' context annotations cannot convey. It stops short of covering failure modes or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, zero filler, with the irreversible side effect front-loaded in the second sentence. 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 destructive mutation with no output schema, the description covers the core action and the destructive consequence, and the schema's confirmNarrationRemoval covers the approval gate. Gaps are limited to parameter-level detail that the sparse schema leaves undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% — just confirmNarrationRemoval is documented, and that param already carries the approval workflow. The description obliquely signals pageContent ('the text') and pageNumber ('one story page'), but adds nothing about storyId, length limits, or content format, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Replace the text on one story page') and immediately names the secondary effect on narration audio. No sibling tool touches page-level text, so an agent can route to this confidently without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is for editing the text of an already-created page. There is no explicit when-to-use framing, no mention of alternatives such as create_story or rename_story, and no stated preconditions beyond what the schema enforces.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_checkoutOpen TaleSpinner CheckoutBIdempotentInspect
Create a secure handoff URL where the connected user can review and purchase a physical printed book in TaleSpinner.
| Name | Required | Description | Default |
|---|---|---|---|
| storyId | No | ||
| purchaseType | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=true and destructiveHint=false. The description adds useful context that the output is a handoff URL and that the actual review/purchase happens outside the tool, but it says nothing about auth prerequisites, URL lifetime, or repeat-call 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 with the action verb first; 'in TaleSpinner' is mild branding padding but everything else 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 two-parameter, no-output-schema tool the description covers the core action, but with 0% parameter coverage it leaves storyId unexplained and does not clarify what the returned URL is or how long it is valid.
Complex tools with many parameters or behaviors need more documentation. 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% for two parameters. The description implicitly covers purchaseType by naming 'physical printed book', but storyId is left undocumented in both schema and description, so it does not compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Create) and resource (a secure handoff URL for purchasing a printed book), which clearly separates it from catalog/order readers like list_products and list_orders. It does not explicitly name a sibling or boundary, so it is clear but not maximally 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?
The phrase 'where the connected user can review and purchase a physical printed book' gives a clear condition for use — an authenticated user buying a printed book. It stops short of naming an alternative tool or stating when not to call it, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
24 tool updates
- First observed
close_life_project_contributions - First observed
create_life_project - First observed
create_story - First observed
create_story_share_link - First observed
delete_life_project - First observed
delete_story - First observed
get_account - First observed
get_life_project - First observed
get_profile - First observed
get_started - First observed
get_story - First observed
get_story_status - First observed
list_life_projects - First observed
list_orders - First observed
list_products - First observed
list_stories - First observed
list_story_share_links - First observed
publish_story_to_world - First observed
record_life_project_activity - First observed
remove_story_from_world - First observed
rename_story - First observed
replace_story_page_text - First observed
revoke_story_share_link - First observed
start_checkout
Related MCP Connectors
Gathers voice, video and written messages from a group into one book for one person.
Turn a story, memoir or recipes from the chat into a printed hardcover or softcover book.
Turn your photos or a public iCloud Shared Album into a printed hardcover photo book.
Create and read private AI-illustrated storybooks with your PictureBooks account and credits.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables turning a photo or character description plus a story idea into an interactive, mobile-friendly landscape children's picture book with Lift-the-Flap pages, built as a self-contained HTML file and served locally over Wi-Fi.8MIT
- AlicenseAqualityAmaintenanceBuilds interactive, filterable timelines from your own materials through an interview process, generating self-contained offline files with optional web publishing and cross-device sync.19Apache 2.0

Token of Esteemofficial
AlicenseAqualityCmaintenanceWrite and mail personalized funny booklets via an AI agent. Allows agents to commission custom 16-page print gifts for users.121MIT- AlicenseNot gradedqualityCmaintenanceEnables a child to search a self-hosted picture-book shelf by creatures, themes, places, or colors, read one page at a time through Alexa+, repeat a page on "Again!", and bookmark or resume a reading across sessions.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.