docuwriter
Server Details
Generate and review codebase docs. 77 tools; scoped, credit-approved repository reviews.
- Status
- Healthy
- Uptime
- 81.4% over 82 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- DocuWriter-ai/mcp-server
- GitHub Stars
- 0
- Server Listing
- DocuWriter.ai MCP server
- ChatGPT
- DocuWriter.ai
- Claude
- –
TDQS
Scored across 77 tools
Descriptions work hard to disambiguate near-duplicates (create-space-document vs create-space-item vs add-generation-to-space; update-space-document vs update-space-item; delete-space-document vs delete-space-items), but the density of such pairs makes misselection likely in practice. The nine generate-* tools (code-documentation, repository-documentation, full-tree-documentation, codebase-documentation, generate-and-add-documentation) and the four search tools (global-search, search-space-documents, search-documentation-mentions, search-docuwriter-platform-docs) share enough surface that an agent must read carefully to pick correctly.
Overwhelmingly consistent lowercase kebab-case verb_noun pattern (list-spaces, create-space-item, delete-webhook-subscription, update-team-member-role). A few outliers break the verb-first rule (global-search, inspect-documentation-update, count-space-suggestions), but they remain readable and follow the same casing convention.
77 tools is far beyond a reasonable set for any single MCP surface, and the domain splits naturally into several independent areas (generation, spaces, suggestions, webhooks, team, providers). Several tools are near-redundant variants that could be collapsed into one request with a mode parameter, so the size is not solely justified by scope.
Coverage is strong: full CRUD across spaces, items, documents, repository links, webhooks, team members, plus generation lifecycle, suggestions review workflow, and search. Minor gaps only — generations can be archived/restored but never deleted, webhook test dispatch and several review decisions are explicitly browser-only flows.
Available Tools
77 toolsadd-generation-to-spaceAdd Generation To Space ToolAInspect
Use this when the user wants to save, publish, or add an existing generated output/result into a documentation Space. State-changing: creates a generation-backed Space item after authorization; adding it to a public Space makes the content publicly accessible. Requires generation_id, destination space_id, and optional parent_id/title.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Optional custom Space item title. Defaults to the generation filename. | |
| space_id | Yes | Target numeric Space ID. Call list-spaces first. | |
| parent_id | No | Optional parent folder ID in the target Space. | |
| generation_id | Yes | Generation ID to add to a Space. Call list-generations first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it non-read-only and non-destructive; the description adds real context beyond them by flagging the authorization step and the visibility consequence ('adding it to a public Space makes the content publicly accessible'), which is the kind of side-effect an agent cannot infer from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the usage trigger and packed into two sentences with no filler. The trailing parameter list is mildly redundant given full schema coverage but still terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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-style mutation with no output schema, it covers the essential concerns: state change, authorization, public-visibility risk, and required inputs. Only the absence of any error or idempotency note keeps it out of the top band.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including required status and the list-spaces/list-generations preconditions. The description only restates which fields are required/optional, adding no syntax or semantics 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?
States a specific verb and resource ('save, publish, or add an existing generated output/result into a documentation Space') and scopes it to existing generations, which separates it from siblings like generate-and-add-documentation and create-space-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?
Gives a clear trigger condition ('Use this when the user wants to save, publish, or add an existing generated output'). It does not name an alternative or a when-not case, but the 'existing' qualifier implicitly routes newly-generated content elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply-space-suggestionApply Space Suggestion ToolADestructiveInspect
Use this when the user wants to apply or accept one pending Autopilot/repository-sync documentation suggestion. Destructive state-changing action: writes the suggested content to the target Space document and marks the suggestion applied after authorization. Requires suggestion_id from list-space-suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| suggestion_id | Yes | The numeric ID of the RepositoryDocSuggestion to apply. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is known; the description goes beyond them by stating what actually happens ('writes the suggested content to the target Space document and marks the suggestion applied') and that authorization is required. It stops short of describing reversibility or what happens on a failed/unauthorized apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the trigger condition, then the behavioral warning, then the prerequisite. No filler, though the destructive warning and the 'apply or accept' pairing are mildly redundant with the 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 single-parameter mutation with no output schema, the description covers the trigger, the side effects, the authorization requirement, and the prerequisite tool. The only gap is that it says nothing about what the caller receives back or what happens if the suggestion is stale or already applied.
Complex tools with many parameters or behaviors need more documentation. 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 one parameter at 100% schema coverage the baseline is 3, but the description adds provenance the schema lacks: it tells the agent the suggestion_id must be obtained from list-space-suggestions rather than guessed. It adds no format or validation detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain 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 pair ('apply or accept') and resource ('one pending Autopilot/repository-sync documentation suggestion'), with the scope qualifier 'one' that separates it from bulk-manage-space-suggestions. An agent can distinguish it from discard-space-suggestion and snooze-space-suggestion without opening any 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?
Explicitly gives the trigger condition ('when the user wants to apply or accept one pending... suggestion') and names the source of the required input ('Requires suggestion_id from list-space-suggestions'). It does not explicitly exclude alternatives such as bulk-manage-space-suggestions for multiple suggestions, but the singular scope makes that inference safe.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archive-generationArchive Generation ToolAInspect
Use this when the user wants to archive, hide, or remove an existing generation from the active generation list without deleting it. State-changing: archives the visible generation after authorization. Requires generation_id from list-generations.
| Name | Required | Description | Default |
|---|---|---|---|
| generation_id | Yes | Generation ID to archive. Call list-generations first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, so the write-but-non-destructive profile is already covered. The description adds genuinely new context: it is 'state-changing', the archive happens 'after authorization', and the generation is not deleted. This is useful beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. The user-intent trigger and the non-deletion guarantee are front-loaded, and the prerequisite is compactly appended.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, non-destructive mutation with annotations covering the safety profile and no output schema, the description supplies purpose, trigger, prerequisite, and authorization context. It lacks only explicit undo/restore guidance, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, so the schema already fully documents generation_id. The description reinforces the list-generations prerequisite but adds no format or syntax detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (archive an existing generation) and immediately scopes it as removing it from the active list 'without deleting it'. That negative clause distinguishes it from destructive siblings like delete-space-items and from restore-generation's 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?
Opens with an explicit trigger ('when the user wants to archive, hide, or remove') and states the prerequisite that generation_id must come from list-generations. It does not name restore-generation as the explicit undo path, so the when-not guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bulk-manage-space-suggestionsBulk Manage Space Suggestions ToolADestructiveInspect
Use this when the user wants to apply or discard multiple Autopilot/repository-sync suggestions at once. Destructive state-changing action: bulk apply can update multiple Space documents, and bulk discard removes suggestions from active review after authorization. Requires suggestion IDs from list-space-suggestions; bulk apply requires Enterprise access.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Numeric Autopilot suggestion IDs to bulk apply or discard. | |
| action | Yes | Bulk suggestion action to perform: apply or discard. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and openWorldHint=true, yet the description still adds real value: it specifies what each branch destroys (bulk apply mutates multiple Space documents; bulk discard removes suggestions from active review after authorization) and states the Enterprise access requirement. This is exactly the beyond-annotation context the bar asks for.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the trigger, followed by behavioral risk and then prerequisites. No filler; each sentence carries information an agent needs before calling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 mutation with no output schema and full annotation coverage, the definition supplies trigger, risk, prerequisites, and ID provenance. Nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, making 3 the baseline. The description goes further by explaining the operational consequence of each action value ('apply' mutates documents, 'discard' ends active review), which the schema's flat string field does not convey.
Input schemas describe structure but not intent. Descriptions should explain 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: bulk apply or discard multiple Autopilot/repository-sync suggestions at once. The 'multiple ... at once' phrasing directly distinguishes it from the singular apply-space-suggestion and discard-space-suggestion siblings, so an agent can route correctly without opening a 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?
Gives an explicit trigger ('Use this when the user wants to apply or discard multiple ... at once'), a prerequisite (suggestion IDs from list-space-suggestions), and a gating condition (bulk apply requires Enterprise access). Alternatives are implied by the bulk-vs-single framing and the named source tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel-team-invitationCancel Team Invitation ToolADestructiveInspect
Use this when the user wants to cancel a pending team invitation before it is accepted. After authorization, this destructive action removes the specified invitation_id so that invitation can no longer be accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| invitation_id | Yes | Numeric pending team invitation ID to cancel. Use list-team-members first when the user gives an invitee email. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so safety is largely covered. The description still earns credit by adding two things not in structured data: the authorization prerequisite ('After authorization') and the concrete effect that the invitation can no longer be accepted.
Agents need to know what a tool does to the 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, trigger condition front-loaded before the effect statement. Nothing could be cut 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 single-parameter mutation with full schema coverage, no output schema, and annotations carrying the destructive profile, the description supplies everything an agent needs: trigger, precondition, target, and consequence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself already tells the agent to use list-team-members first when given an email. The description only repeats that invitation_id is the target of the cancellation, adding no new format, range, or resolution guidance beyond the schema — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('cancel a pending team invitation') plus a temporal qualifier ('before it is accepted') that separates it from removing an existing member. It does not name the sibling alternatives (remove-team-member, invite-team-member) that would let an agent route without inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger: 'Use this when the user wants to cancel a pending team invitation before it is accepted.' The pending-only condition implicitly excludes already-accepted members, but the description never states the negative case or points to the tool for accepted members.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy-space-itemCopy Space Item ToolAInspect
Use this when the user wants to copy, duplicate, or clone a Space page/document, folder, or external link and its children into another Space. State-changing: creates copied items in the target Space after authorization; copies in a public target Space are publicly accessible. Requires source_space_id, item_id, target_space_id, and optional target_parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Source Space item ID. | |
| source_space_id | Yes | Numeric source Space ID that currently contains the item to copy. | |
| target_space_id | Yes | Numeric destination Space ID where the copied item should be created. | |
| target_parent_id | No | Optional target parent folder ID, or null for root. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish the write profile (readOnlyHint=false, destructiveHint=false), and the description usefully adds that the operation is state-changing, requires prior authorization, recursively copies children, and that copies landing in a public target Space are publicly accessible. It does not address name-collision handling or whether the copy is atomic, so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the when-to-use clause, then behavior, then parameters. The final parameter sentence largely duplicates what the schema already encodes at 100% coverage, which is minor redundancy rather than bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 state-changing tool with no output schema, the description covers the trigger, the authorization precondition, and the public-visibility consequence — enough to call it correctly. It omits whether new item IDs are returned for follow-up calls, which is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented, and the description only restates which are required versus optional without adding format, ID-sourcing, or null-handling detail. Baseline 3 applies when the schema carries the 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?
States a specific verb (copy/duplicate/clone), the resource (Space page/document, folder, external link) and the scope (including its children), and places the result precisely (into another Space). This clearly separates it from siblings like move-space-item and create-space-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 lead clause gives a clear trigger condition and lists the synonyms a user might say, which aids selection. It stops short of naming the natural alternative (move-space-item) or stating when not to use it, so it is contextual but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
count-space-suggestionsCount Space Suggestions ToolARead-onlyInspect
Use this when the user asks how many Autopilot/repository-sync suggestions are pending, snoozed, done, high-confidence, or waiting for review. Read-only: returns grouped counts without changing suggestions or documents. Optionally filter by numeric space_id.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | No | Optional Space filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint=false, yet the description still adds real behavioral content: results are grouped counts by status, and it explicitly states nothing is changed. It does not describe the groupings' keys or ordering, but the add-on value over annotations is genuine.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: trigger, behavior/scope, parameter. Purpose and the read-only guarantee are front-loaded with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single optional-param counting tool with clear annotations and no output schema, the description covers trigger, safety, output nature (grouped counts) and filtering adequately. Exact count keys are left unspecified, which is a minor gap given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already says 'Optional Space filter.' The description only restates this and adds 'numeric', so it contributes little beyond the structured field. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (count) plus resource (space suggestions) and enumerates the status buckets it tallies, which clearly separates it from list-space-suggestions. It stops short of naming the sibling it supersedes, so the distinction is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 trigger: 'Use this when the user asks how many ... suggestions are pending, snoozed, done, high-confidence, or waiting for review.' No when-not or alternative routing is offered, but the trigger condition is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-spaceCreate Space ToolAInspect
Use this when the user wants to create a new documentation Space or knowledge base container. State-changing: creates the Space directly after the MCP client authorizes the call; setting is_public to true makes the new Space publicly accessible. Requires a Space name and may include description, public visibility, and slug.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the new documentation Space the user wants to create. | |
| slug | No | Optional public slug. | |
| is_public | No | Whether the Space should be public. Defaults to false. | |
| description | No | Optional Space description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) by disclosing that the call is state-changing, that creation happens after MCP client authorization, and that is_public=true exposes the Space publicly. It omits error behavior such as duplicate-name or duplicate-slug handling, which matters for a create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the usage trigger followed by behavioral notes. Minor redundancy in 'State-changing: creates the Space directly', but no filler or repetition that obscures the key facts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter create tool with annotations but no output schema, the description covers the trigger, required input, optional inputs, authorization flow, and the visibility side effect. It lacks any indication of what is returned or how creation failures are surfaced, which would round it out.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented, and the description largely restates them ('Requires a Space name and may include description, public visibility, and slug'). The only added nuance is the consequence of is_public=true, which is close to a restatement of the field's own 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?
States a specific verb and resource ('create a new documentation Space or knowledge base container'), which is the container-level create that distinguishes it from siblings like create-space-document and create-space-item. An agent can identify the operation 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?
'Use this when the user wants to create a new documentation Space' gives a clear triggering condition. It does not, however, name an alternative or state when NOT to use it (e.g. when the user instead wants to add an item to an existing Space), 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.
create-space-documentCreate Space Document ToolAInspect
Use this when the user wants to create a markdown document/page in a Space from provided content. State-changing: creates the document directly after authorization; content in a public Space is publicly accessible. Requires numeric space_id, title, and markdown content. Use create-space-item for folders or external links.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Folder path for the document (e.g., "docs/api") - creates folders if they don't exist | |
| title | Yes | The title of the document | |
| content | Yes | The content of the document in markdown format | |
| space_id | Yes | The numeric ID of the space to create the document in. Call list-spaces first. | |
| parent_id | No | The numeric ID of the parent folder (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the mutation profile is partly covered. The description adds genuinely new context: it is state-changing, creates the document directly after authorization, and that content in a public Space becomes publicly accessible. It does not address duplicate-on-retry behavior, which matters given idempotentHint=false, but the added value 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?
Four compact sentences, each earning its place, with the trigger condition front-loaded before the requirements and the sibling disambiguation. No filler or 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?
Covers trigger, alternatives, required inputs, mutation semantics, and the public-visibility implication for a five-parameter creation tool with full schema coverage. The one gap is that no output schema exists and the description never indicates what comes back (e.g., the created document's ID), which an agent may need for follow-up calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters including path folder-creation and parent_id are already documented in the schema. The description only restates the three required fields and adds no format, syntax, or interaction detail beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: create a markdown document/page in a Space from provided content. It explicitly contrasts itself with the closest sibling, create-space-item, noting that one handles folders and external links, so an agent can route without opening 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?
Gives an explicit trigger ('when the user wants to create a markdown document/page in a Space') and an explicit exclusion with the alternative named ('Use create-space-item for folders or external links'). Prerequisites (space_id, title, content) are also stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-space-itemCreate Space Item ToolAInspect
Use this when the user wants to create a Space page/document, folder, or external link inside an existing Space. State-changing: creates the item directly after authorization; content created in a public Space is publicly accessible. Requires numeric space_id, item type, title, and content or URL when relevant.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Optional folder path to create/use. | |
| type | Yes | page, folder, or external_link. | |
| title | Yes | Title for the new Space page/document, folder, or external link. | |
| content | No | Markdown content for page items. | |
| space_id | Yes | Numeric Space ID where the page, folder, or external link should be created. | |
| parent_id | No | Optional numeric parent folder item ID, or null to create at the Space root. | |
| external_url | No | URL for external_link items. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the description carries extra weight by stating the operation is state-changing, happens directly after authorization, and that content placed in a public Space becomes publicly accessible. That last point is a real consequence not derivable from the schema or annotations, though conflict/overwrite behavior is still unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the use case and followed by the state-changing warning and visibility caveat. No filler, no restatement of the title, and every clause carries actionable 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 7-parameter mutation tool with no output schema and rich annotations, the description covers purpose, prerequisites, side effects, and visibility risk. It stops short of describing failure modes (duplicate titles, invalid parent_id) or permission requirements beyond the vague "after authorization."
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds a conditional relationship the schema does not express: content or URL is required "when relevant" depending on item type, even though external_url and content are both optional in the schema. It also restates the key required inputs (numeric space_id, type, title), reinforcing them without redundancy.
Input schemas describe structure but not intent. Descriptions should explain 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 set (create a Space page/document, folder, or external link) scoped to an existing Space, so an agent immediately knows what the tool produces. It does not, however, differentiate itself from the close sibling create-space-document, which appears to overlap 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?
"Use this when the user wants to create a Space page/document, folder, or external link inside an existing Space" gives clear activation context tied to user intent. No exclusions or named alternatives are offered, so an agent cannot tell from the text why it would pick this over create-space-document or create-space-repository-link.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-space-repository-linkCreate Space Repository Link ToolAInspect
Use this when the user wants to link an authorized provider repository to a Space for Autopilot sync. After authorization, this state-changing external action creates the link with triggers, path filters, notifications, or auto-apply settings and requires Enterprise access.
| Name | Required | Description | Default |
|---|---|---|---|
| branch | Yes | Repository branch name that Autopilot should monitor for this link. | |
| provider | Yes | github, gitlab, bitbucket, or azure. | |
| space_id | Yes | Numeric Space ID where the Autopilot repository link should be created. | |
| path_filters | No | Optional path filters. | |
| trigger_events | Yes | push and/or pr_merge. | |
| auto_apply_enabled | Yes | Enterprise auto-apply flag. | |
| repository_identifier | Yes | Provider repository identifier. | |
| ai_context_instructions | No | Optional AI instructions. | |
| auto_apply_threshold_pct | Yes | Auto-apply threshold percent from 95 to 100. | |
| notify_on_new_suggestions | Yes | Email notification flag. | |
| notification_channels_input | Yes | Notification channel settings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=false. The description adds real value beyond that: it labels the operation a 'state-changing external action', names the authorization prerequisite, and flags Enterprise access. It doesn't describe irreversibility or failure modes, but it meaningfully extends the annotation profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the usage trigger front-loaded ahead of the behavioral and access notes. 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 an 11-parameter, 9-required mutation tool with a nested object and no output schema, the description covers purpose, trigger, prerequisite, and access scope adequately. The detailed parameter contract is fully handled by the 100%-covered schema, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 11 parameters are documented in the schema, setting the baseline at 3. The description names feature groups (triggers, path filters, notifications, auto-apply settings) that map onto parameters, but adds no syntax, format, or constraint detail 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 states a specific verb and resource: link an authorized provider repository to a Space for Autopilot sync. It cleanly distinguishes itself from siblings like list-space-repository-links, update-space-repository-link, and delete-space-repository-link, so an agent can route correctly without opening a 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?
It gives an explicit triggering condition ('Use this when the user wants to link...') plus a prerequisite ('After authorization') and an access gate ('requires Enterprise access'). It stops short of naming alternatives such as update-space-repository-link, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create-webhook-subscriptionCreate Webhook Subscription ToolAInspect
Use this when the user wants to add a webhook, callback URL, n8n/Zapier endpoint, or integration subscription for supported DocuWriter events. State-changing external action: creates the subscription after authorization. Use list-webhook-events first for valid event keys; webhook test dispatch is not exposed.
| Name | Required | Description | Default |
|---|---|---|---|
| events | Yes | Event keys from list-webhook-events. | |
| metadata | No | Optional metadata object to store alongside the webhook subscription. | |
| webhook_url | Yes | HTTP/HTTPS webhook endpoint. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=true, so the state-changing external nature is partly covered; the description reinforces it and adds the non-obvious detail that creation happens "after authorization." The note that test dispatch is unavailable further constrains behavior, though return payload and duplicate/error handling are not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the trigger condition and followed by constraints; no filler. The synonym list is slightly long but serves discovery matching, so it 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 no output schema, the description covers purpose, prerequisites, and authorization context sufficiently to invoke correctly. It does not say what the tool returns or how duplicate URLs are handled, leaving a small gap for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already documented in the schema; the description only repeats the event-key sourcing (list-webhook-events) that the events parameter description already states. Baseline 3 is correct — no additional syntax or format meaning is layered on.
Input schemas describe structure but not intent. Descriptions should explain 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 (create a webhook subscription) and enumerates the synonyms an agent may encounter in user phrasing (callback URL, n8n/Zapier endpoint, integration subscription). This cleanly distinguishes it from the update-, delete-, and list-webhook 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?
Explicit triggering condition ("Use this when the user wants to add a webhook") plus a prerequisite route to a named sibling ("Use list-webhook-events first for valid event keys") and a scope exclusion ("webhook test dispatch is not exposed"). When-to-use, ordering, and out-of-scope are all stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-spaceDelete Space ToolADestructiveInspect
Use this when the user explicitly wants to delete a whole documentation Space. Destructive state-changing action: removes the manageable Space directly after the MCP client authorizes the call, including a public Space and its public content. Requires numeric space_id from list-spaces and should not be used for deleting individual pages.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | Numeric Space ID to delete. Use list-spaces first and confirm the user means the whole Space. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description adds real context beyond that: it states this removes a public Space and its public content, and that removal happens after MCP client authorization. It does not describe irreversibility or recovery options, which would push it higher.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the usage condition, followed by the destructive scope and prerequisite. No filler, though the closing 'not for deleting individual pages' partially restates the 'whole Space' framing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool, the description covers trigger, exclusion, prerequisite source, and destruction scope, which is sufficient given annotations carry the safety profile and no output schema is needed. Missing only recovery/undo context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single space_id parameter is fully documented in the schema ('Numeric Space ID to delete. Use list-spaces first...'). The description's 'Requires numeric space_id from list-spaces' largely repeats the schema, so it adds no syntax or format detail beyond it. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('delete a whole documentation Space') and disambiguates from siblings in the same family (delete-space-document, delete-space-items) by explicitly excluding individual pages. An agent can pick this tool without opening any 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?
Gives an explicit trigger ('when the user explicitly wants to delete a whole documentation Space') and an exclusion ('should not be used for deleting individual pages'), plus the prerequisite of obtaining space_id from list-spaces. It lacks naming the exact alternative tool, so routing is implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-space-documentDelete Space Document ToolADestructiveInspect
Use this when the user explicitly wants to delete one existing Space document/page. Destructive state-changing action: deletes the document directly after authorization, including from public Space content. Requires the document ID from list-space-documents or search results; use delete-space-items for folders or bulk item deletion.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | The numeric ID of the space containing the document. Call list-spaces first. | |
| document_id | Yes | The numeric ID of the document to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is known. The description adds genuine context beyond them: deletion happens 'directly after authorization' and includes removal 'from public Space content'. It does not mention irreversibility or propagation effects, but the additions are substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the trigger condition, then the behavioral warning, then the parameter source and the sibling alternative. Every sentence carries distinct information 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 delete with no output schema, the description covers trigger, behavior, parameter sourcing, and the disambiguating alternative. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both space_id and document_id are already documented, making 3 the baseline. The description adds only a provenance hint that document_id comes from list-space-documents or search results, with no format or ID-sourcing detail beyond that.
Input schemas describe structure but not intent. Descriptions should explain 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 ('delete one existing Space document/page') and immediately differentiates from siblings by naming delete-space-items for folders or bulk deletion. An agent can distinguish it from create-space-document, update-space-document, and get-space-document without opening any 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?
Explicitly states when to use it ('when the user explicitly wants to delete one existing Space document/page') and names the alternative for the adjacent case (delete-space-items for folders or bulk item deletion). It also tells the agent where to source the document ID (list-space-documents or search results), removing all inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-space-itemsDelete Space Items ToolADestructiveInspect
Use this when the user wants to delete one or more Space pages, documents, folders, or external links from a Space. Destructive state-changing action: deletes the selected items directly after the MCP client authorizes the call, including items that may be publicly visible in a public Space. Requires numeric space_id and item_ids from list-space-documents.
| Name | Required | Description | Default |
|---|---|---|---|
| item_ids | Yes | Space item IDs to delete. | |
| space_id | Yes | Numeric Space ID containing the items that should be deleted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered structurally. The description adds genuine context beyond that: deletion happens directly after MCP client authorization, and it can affect items publicly visible in a public Space. It omits whether deletion is reversible or recoverable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the destructive warning and the item types front-loaded; the prerequisite sentence closes it cleanly. No filler, though it is slightly denser than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, the description is the only source of return/side-effect information, and it adequately covers the destructive nature, authorization requirement, and parameter provenance. A brief note on reversibility would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by tying item_ids to their source (list-space-documents) and confirming space_id is numeric, giving the agent a workflow hook the schema alone does not provide.
Input schemas describe structure but not intent. Descriptions should explain 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 the resource classes it handles (Space pages, documents, folders, external links) and scopes them to a Space. This distinguishes it from delete-space (whole space) and delete-space-document (single document), though it doesn't name those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger ("Use this when the user wants to delete one or more...") and tells the agent where the required IDs come from (list-space-documents). No explicit when-not statement or named alternative, which keeps it just below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-space-repository-linkDelete Space Repository Link ToolADestructiveInspect
Use this when the user wants to remove an Autopilot repository link from a Space. Destructive external-provider action: deletes the link after authorization and may remove provider webhook configuration. Requires Enterprise access, manageable Space permission, space_id, and link_id.
| Name | Required | Description | Default |
|---|---|---|---|
| link_id | Yes | Numeric repository link ID to delete. Use list-space-repository-links first when needed. | |
| space_id | Yes | Numeric Space ID containing the Autopilot repository link to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true, readOnlyHint=false, so the safety profile is covered. The description adds genuine value beyond that: authorization ordering, a possible provider webhook side effect, and the Enterprise/manageable-Space 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?
Three tight sentences with the purpose front-loaded and consequences and prerequisites following. No filler, though the sentences are quite densely 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?
No output schema exists but none is needed for a delete operation, and annotations carry the safety profile. Permission prerequisites and the webhook side effect are disclosed; the definition is complete enough for an agent to call 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 100%, so both parameters are already documented in the schema. The description only restates that space_id and link_id are required, adding no syntax, format, or discovery guidance beyond the schema's own 'use list-space-repository-links first' hint.
Input schemas describe structure but not intent. Descriptions should explain 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: removes an Autopilot repository link from a Space. This clearly separates it from siblings like create-space-repository-link, update-space-repository-link, and importantly disable/enable-space-repository-link, though it doesn't explicitly name the non-destructive 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?
Gives an explicit trigger condition ('when the user wants to remove an Autopilot repository link from a Space'). It does not state when-not to use it, e.g. when disable-space-repository-link is the better fit for temporary deactivation — a notable omission given the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete-webhook-subscriptionDelete Webhook Subscription ToolADestructiveInspect
Use this when the user wants to remove a webhook subscription or stop sending events to an endpoint. Destructive external action: deletes the owned subscription after authorization. Requires subscription_id from list-webhook-subscriptions; webhook test dispatch is not exposed.
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes | Webhook subscription ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, openWorldHint=true and readOnlyHint=false, so the safety profile is known. The description still adds meaningful context beyond them: 'deletes the owned subscription after authorization' discloses an authorization prerequisite and ownership scoping, and it clarifies that test dispatch is unavailable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the trigger condition and the destructive nature. Every sentence carries distinct information — usage, safety/auth, and an exclusion — with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with no output schema, the definition covers purpose, destructiveness, authorization requirement, the source of the required ID, and a scope exclusion. Nothing an agent needs in order to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single required subscription_id, so the baseline is 3. The description goes further by telling the agent the value must come from list-webhook-subscriptions, which is actionable sourcing guidance the schema does not provide.
Input schemas describe structure but not intent. Descriptions should explain 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'/deletes) plus the exact resource ('webhook subscription') and the operational effect ('stop sending events to an endpoint'). This clearly separates it from the siblings create-webhook-subscription, update-webhook-subscription, and list-webhook-subscriptions without needing 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?
'Use this when the user wants to remove a webhook subscription or stop sending events to an endpoint' gives explicit triggering conditions, and 'webhook test dispatch is not exposed' rules out a nearby use case. It stops short of naming update-webhook-subscription as the alternative for merely pausing/disabling, so it is not a full when-vs-alternative statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable-space-repository-linkDisable Space Repository Link ToolADestructiveInspect
Use this when the user wants to pause, turn off, or disable an Autopilot repository link for a Space. Destructive external-provider state change: disables the link and attempts webhook removal after authorization, stopping provider events from reaching Autopilot. Requires Enterprise access, manageable Space permission, space_id, and link_id.
| Name | Required | Description | Default |
|---|---|---|---|
| link_id | Yes | Numeric repository link ID to disable. Use list-space-repository-links first when needed. | |
| space_id | Yes | Numeric Space ID containing the Autopilot repository link to disable. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, but the description adds rich operational detail beyond them: it specifies the external-provider state change, attempts webhook removal after authorization, and the effect of stopping provider events from reaching Autopilot. It also lists Enterprise access and manageable Space permission as prerequisites, which is exactly the kind of behavioral context an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste; the usage trigger is front-loaded, followed by the side effects and prerequisites. Every clause earns its place and no information is repeated unnecessarily.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, the description covers purpose, trigger conditions, destructive side effects, authorization requirements, and access prerequisites. An agent has enough to decide when and how to call it, and no return-value explanation is needed since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself documents both parameters with useful notes (e.g., 'Use list-space-repository-links first when needed' for link_id). The description merely restates that space_id and link_id are required, adding no meaning beyond what the schema already provides. Baseline 3 is appropriate when the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain 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 (disable) and resource (Autopilot repository link for a Space), and the phrasing 'pause, turn off, or disable' signals a reversible action that contrasts with permanent deletion. It does not explicitly name the sibling delete-space-repository-link, so an agent must infer the distinction from the name rather than being routed to the 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?
Provides clear when-to-use context ('Use this when the user wants to pause, turn off, or disable...'), which covers the common trigger. It does not explicitly state when not to use this tool or name the alternative (delete-space-repository-link for permanent removal), so an agent has no direct exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discard-space-suggestionDiscard Space Suggestion ToolADestructiveInspect
Use this when the user wants to reject, dismiss, remove from review, or discard one Autopilot/repository-sync documentation suggestion. Destructive state-changing action: marks the pending suggestion discarded directly after authorization. Requires suggestion_id from list-space-suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| suggestion_id | Yes | Numeric Autopilot suggestion ID to discard. Use list-space-suggestions first when needed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds useful context by stating this is a 'Destructive state-changing action' that 'marks the pending suggestion discarded directly after authorization.' It does not discuss reversibility or failure behavior, but it meaningfully supplements the structured 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 with no wasted wording. The use case is front-loaded, and the destructive nature and prerequisite are both stated compactly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive tool with complete schema coverage, no output schema, and annotations that already cover safety, the description supplies the essential context: what it does, when to use it, and where the ID comes from. It could be slightly richer about post-discard state or whether the action is reversible, but it is largely 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 100%, and the single parameter already documents that suggestion_id is the numeric Autopilot suggestion ID and that list-space-suggestions should be used first. The description repeats that source but adds no new syntax, validation, or constraint beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'discard' with the resource 'suggestion', scoped to one Autopilot/repository-sync documentation suggestion. It also gives multiple user-intent synonyms (reject, dismiss, remove from review), so an agent can distinguish it from apply-space-suggestion and snooze-space-suggestion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 clearly states when to use the tool and names the prerequisite source for the required ID: 'Requires suggestion_id from list-space-suggestions.' It does not explicitly exclude alternatives such as apply-space-suggestion or snooze-space-suggestion, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable-space-repository-linkEnable Space Repository Link ToolAInspect
Use this when the user wants to turn on or resume an existing Autopilot repository sync link for a Space. State-changing external-provider action: enables the link and registers the provider webhook after authorization. Requires Enterprise access, manageable Space permission, provider access, space_id, and link_id.
| Name | Required | Description | Default |
|---|---|---|---|
| link_id | Yes | Numeric repository link ID to enable. Use list-space-repository-links first when needed. | |
| space_id | Yes | Numeric Space ID containing the Autopilot repository link to enable. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses the real side effects: the action enables the link and registers the provider webhook after authorization, calls out that it is state-changing and external-provider facing, and lists prerequisites (Enterprise access, manageable Space permission, provider access). This is exactly the extra context annotations cannot carry.
Agents need to know what a tool does to the 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 dense sentences, front-loaded with the usage trigger followed by the behavioral and prerequisite details. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-side burden, and it adequately conveys the observable effect (link enabled, webhook registered) plus all access preconditions. Nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (space_id, link_id) are already fully documented in the schema. The description only restates that these are required without adding format, range, or lookup guidance, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('turn on or resume an existing Autopilot repository sync link for a Space') and is clearly distinguishable from its sibling disable-space-repository-link. An agent can identify the operation without opening any 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?
'Use this when the user wants to turn on or resume an existing ... link' gives a clear trigger condition. It does not, however, name the disable counterpart as an exclusion or point at list-space-repository-links (that routing hint sits in the schema, not the description).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export-space-items-markdownExport Space Items Markdown ToolARead-onlyInspect
Use this when the user wants a Markdown export of selected Space pages, folders, or docs that can be returned in the MCP response. Read-only: returns merged Markdown without changing Space content. Use browser guidance for PDF, ZIP, or download-only export flows.
| Name | Required | Description | Default |
|---|---|---|---|
| item_ids | Yes | Space item IDs to export. | |
| space_id | Yes | Numeric Space ID containing the selected items to export as Markdown. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds real value beyond them: the output is *merged* Markdown and is *returned inline in the MCP response* rather than as a file/download, which materially changes how an agent should handle the result. It does not disclose size limits, truncation, or behavior on very large exports.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the primary use case, then the read-only guarantee, then the exclusion. Every sentence carries distinct information and there is no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, the description correctly compensates by stating that output is merged Markdown returned in the response, and the read-only nature is covered twice (annotation plus prose). It leaves gaps around large-export limits, error cases for invalid item IDs, and whether item_ids must all belong to space_id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (space_id, item_ids) are already documented and the baseline is 3. The description adds only mild extra meaning by clarifying that selectable items span pages, folders, and docs, which suggests heterogeneous item types in item_ids, but it adds no format, limit, or ordering guidance for the ID array.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Markdown export of selected Space pages, folders, or docs') plus the output channel, which is enough to distinguish it from read siblings like get-space-document. It stops short of naming any sibling tool explicitly, and the ambiguity with copy-space-item is only implicitly resolved by the 'returned in the MCP response' phrasing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a clear trigger ('when the user wants a Markdown export ... returned in the MCP response') and an explicit exclusion for PDF, ZIP, and download-only flows. The redirect points at a generic 'browser guidance' flow rather than a concrete sibling tool, so the routing instruction is directional but not fully actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-and-add-documentationGenerate Documentation In SpaceAInspect
Use this when the user supplies source files and wants the generated documentation saved directly in an existing Space. After authorization, this state-changing action consumes AI credits, creates a generation, and writes a document to the specified space_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional custom name used to identify the documentation in generation history | |
| path | No | Folder path for the document (e.g., "docs/api") - creates folders if they don't exist | |
| files | Yes | Array of files to document. Each file must have filename and source_code properties | |
| title | Yes | Title for the document in the space | |
| space_id | Yes | The numeric ID of the space to add the documentation to. Call list-spaces first. | |
| parent_id | No | The numeric ID of the parent folder (optional) | |
| output_language | No | Output language for documentation | |
| documentation_type | No | Free-text style hint for this single document, e.g. 'API Reference', 'Tutorial', 'General Documentation' (the default). This is NOT a Space's full-tree documentation audience — any string is accepted and passed to the prompt as-is. | |
| additional_instructions | No | Additional instructions for documentation generation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), the description discloses that authorization is required first, that the action consumes AI credits, that it creates a generation, and that it writes a document into the given space_id. Credit consumption and the auth prerequisite are non-obvious side effects the agent needs before calling.
Agents need to know what a tool does to the 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 front-loaded: the first states the selection condition, the second the side effects. No filler 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 9-parameter, state-changing tool with no output schema, the description covers the selection context and side effects well. It does not indicate what comes back (e.g., a generation identifier usable with get-generation or add-generation-to-space), which is a minor gap given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 9 parameters is already documented in the schema, including space_id's 'call list-spaces first' hint and path's folder-creation behavior. The description mentions only space_id and source files, adding no syntax or format detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain 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 documentation') plus the key scoping qualifier 'saved directly in an existing Space,' which implicitly separates it from the many generate-* siblings that only produce a generation. It does not explicitly name the alternative tools (e.g., generate-code-documentation vs. add-generation-to-space), so it falls short of full 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?
'Use this when the user supplies source files and wants the generated documentation saved directly in an existing Space' gives a clear triggering condition and a scope qualifier. There is no explicit when-not guidance or named alternative, but the context for invoking it is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-codebase-documentationGenerate Codebase Documentation ToolAInspect
Use this when the user wants a new documentation Space built from selected files in an imported repository. After authorization, this state-changing action consumes AI credits, creates a private Space, links the repository, and queues per-file jobs using repository_id and selected_files.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Optional human language for the generated per-file codebase documentation. Defaults to English. | |
| space_name | No | Optional name for the new documentation Space. If omitted, the platform creates a generated name from repository, branch, and timestamp. | |
| repository_id | Yes | Required numeric ID of an already connected/imported repository from the user repository records; do not pass a slug, URL, provider name, or Space repository-link ID. | |
| selected_files | Yes | Required repository file paths already selected from the imported repository tree, such as app/Models/User.php or routes/api.php. This tool creates one Space with per-file queued docs; use browser guidance if the user still needs to choose files. | |
| additional_instructions | No | Optional customer instructions for documentation tone, scope, examples, framework focus, or project-specific emphasis applied to every queued file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that the action requires authorization, is state-changing, consumes AI credits, creates a private Space, links the repository, and queues per-file jobs. Annotations only say readOnlyHint=false and destructiveHint=false, so the description carries the meaningful behavioral burden and does so richly.
Agents need to know what a tool does to the 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 usage trigger front-loaded and the side effects and required inputs packed into the second. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 credit-consuming, state-changing tool with no output schema, the description covers the trigger, side effects, and required inputs adequately. It stops short of describing the return payload (e.g., a generation/Space identifier for follow-up calls), which would be the remaining useful detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the property descriptions already explain repository_id, selected_files, language, space_name, and additional_instructions in detail. The description only restates that repository_id and selected_files are used, adding no syntax or meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and outcome: build a new documentation Space from selected files in an imported repository. The 'selected files' and 'new Space' framing implicitly distinguishes it from full-tree or add-to-existing generators, but among the many sibling generate-* tools (generate-code-documentation, generate-and-add-documentation, generate-repository-documentation) no sibling is named, so an agent still has to infer which generator applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger: 'Use this when the user wants a new documentation Space built from selected files in an imported repository.' The 'new Space' vs. add-to-existing and 'selected files' vs. whole-repo scoping implicitly routes against alternatives, but no when-not condition or named sibling alternative is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-code-commentsGenerate Code Comments ToolAInspect
Use this when the user supplies source code and asks to add inline comments, docblocks, docstrings, or code annotations. State-changing generation action: consumes AI credits, creates a generation, and returns commented code after authorization. Use browser guidance for file uploads.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional custom name used to identify the commented code in generation history | |
| filename | Yes | The full file path of the file being commented (e.g., src/utils/helper.ts) | |
| source_code | Yes | The source code to add comments to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false already signaling mutation, the description adds real value beyond annotations: it states the action consumes AI credits, creates a generation, and requires authorization before returning commented code. It also flags the file-upload path via browser guidance. It stops short of explaining where the output lands (response vs. generation history).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the usage trigger and followed by the behavioral note. Every sentence carries information; no padding or restatement of the 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 three-parameter generation tool with full schema coverage and no output schema, the description covers the trigger, the cost/auth implications, and the return. The only gap is not specifying how the commented code is surfaced, but that is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (name, filename, source_code) are already documented in the schema. The description adds no parameter-level meaning, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain 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 ('add inline comments, docblocks, docstrings, or code annotations'), which clearly separates it from the code-tests, code-optimization, and documentation generators. It does not explicitly name or contrast with the nearest sibling (generate-code-documentation), 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?
It gives a clear trigger condition: 'Use this when the user supplies source code and asks to add inline comments...'. There are no exclusions or named alternatives, but the context for invocation is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-code-documentationGenerate Code Documentation ToolAInspect
Use this when the user supplies source code and asks to generate markdown documentation, explain code, or document one or more files. State-changing generation action: consumes AI credits, creates a generation, and returns documentation after authorization. Use browser guidance for local upload or repository/full-tree flows.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional custom name used to identify the documentation in generation history | |
| files | Yes | Array of files to document. Each file must have filename and source_code properties | |
| output_language | No | Output language for documentation | |
| documentation_type | No | Free-text style hint for this single document, e.g. 'API Reference', 'Tutorial', 'General Documentation' (the default). This is not a Space's full-tree documentation audience; the hint is included in the generation instructions. | |
| additional_instructions | No | Additional instructions for documentation generation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the write nature is known; the description adds genuinely new context: it consumes AI credits, creates a generation record, and requires authorization before returning documentation. It does not describe latency or failure behavior, but the cost/authorization disclosure is meaningful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the trigger, followed by behavioral cost/side-effect facts. Efficient overall, though the trailing 'use browser guidance for local upload or repository/full-tree flows' is terse and slightly cryptic about where that guidance lives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 generation tool with no output schema, the description covers the trigger, side effects, cost, and authorization requirement, plus a pointer for adjacent flows. It leaves the returned documentation's shape and history/retrieval flow implicit, but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters (name, files, output_language, documentation_type, additional_instructions). The description adds only that files are the unit of work; it offers no syntax or format guidance beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('generate') and resource ('markdown documentation') and scopes the input to 'one or more files', which separates it from repository/full-tree siblings. It does not name those siblings explicitly, but the 'file-level' scope is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with a concrete trigger ('when the user supplies source code and asks to generate markdown documentation, explain code, or document one or more files') and routes repo/local-upload flows elsewhere via browser guidance. No explicit exclusion naming a sibling tool like generate-full-tree-documentation, so it stops short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-code-optimizationOptimize Source CodeAInspect
Use this when the user supplies source code and asks for an optimized or refactored version. After authorization, this state-changing action consumes AI credits, creates a generation, and returns the revised code.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional custom name used to identify the optimized code in generation history | |
| filename | Yes | The full file path of the file being optimized (e.g., src/utils/helper.ts) | |
| source_code | Yes | The source code to optimize | |
| optimization_focus | No | Focus area for optimization (default: Performance) | |
| additional_instructions | No | Additional instructions for code optimization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), it discloses that authorization is required, that AI credits are consumed, that a generation is created as a persistent side effect, and that revised code is returned. It does not say whether the generation is produced synchronously or must be fetched later via get-generation, which is a meaningful gap given the surrounding generation-lifecycle siblings.
Agents need to know what a tool does to the 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 waste. The usage trigger is front-loaded and the behavioral facts are packed into the second sentence rather than spread across filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly names the return value ("returns the revised code"), and the side effect plus credit cost are stated. It leaves open the async/polling question and any reversibility of the created generation, which an agent may need given archive-generation and get-generation siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters including optimization_focus and additional_instructions. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific trigger and outcome: source code in, optimized/refactored code out. That distinguishes it from siblings like generate-code-comments, generate-code-tests, and generate-language-conversion, though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this when the user supplies source code and asks for an optimized or refactored version" gives a clear use condition. It does not state when NOT to use it or which sibling to prefer for overlapping requests (e.g., language conversion), 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.
generate-code-testsGenerate Code Tests ToolAInspect
Use this when the user supplies source code and asks to generate unit, feature, integration, or framework-specific tests. State-changing generation action: consumes AI credits, creates a generation, and returns test code after authorization. Use browser guidance for local uploads or repository-wide test generation.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional custom name used to identify the tests in generation history | |
| filename | Yes | The full file path of the file being tested (e.g., src/utils/helper.ts) | |
| test_type | No | Type of tests to generate (e.g., "unit tests", "integration tests") | |
| source_code | Yes | The source code to generate tests for | |
| test_framework | No | Testing framework to use (e.g., "Jest", "PHPUnit", "JUnit") or "auto-detect" | |
| additional_instructions | No | Additional instructions for test generation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the description's real contribution is the extra context it adds: the action consumes AI credits, creates a persistent generation record, and returns test code only after authorization. That is meaningful beyond the structured fields; only rate/credit limits or failure modes are missing.
Agents need to know what a tool does to the 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 with no padding. The trigger condition is front-loaded, the cost/authorization caveat follows, and the routing exclusion closes it out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, and the description partially compensates by saying test code is returned after authorization. Combined with annotations and full schema coverage, an agent has enough to invoke correctly; only the shape/format of the returned test code is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (filename path format, framework, auto-detect, additional instructions) are already documented in the schema. The description adds only the mention of test kinds, which does not extend parameter meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (generate) and resource (tests) and enumerates the supported test kinds: unit, feature, integration, framework-specific. This clearly separates it from the many generate-* documentation siblings, and an agent can classify a request 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?
Explicit trigger is given ("Use this when the user supplies source code and asks to generate ... tests"), plus an exclusion routing to browser guidance for local uploads or repository-wide generation. The alternative is described generically rather than by a concrete sibling tool name, which keeps it 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.
generate-full-tree-documentationGenerate Full Tree Documentation ToolAInspect
Use this when the user has reviewed a full-tree preview and asks to create its documentation Space. After authorization, this state-changing action consumes AI credits, creates a private linked Space, and queues documentation from the stored preview using repository_id and accepted_tree_hash.
| Name | Required | Description | Default |
|---|---|---|---|
| space_name | No | Optional name for the new full-tree documentation Space. If omitted, the repository name is used. | |
| repository_id | Yes | Required numeric ID of the imported repository that already has a generated full-tree documentation preview. Do not pass a Space ID, repository slug, provider URL, or Autopilot repository-link ID. | |
| excluded_paths | No | Optional metadata listing known repository paths the user intentionally excluded during tree review. This is reported back for clarity and does not perform file deletion. | |
| accepted_tree_hash | Yes | Required SHA-256 tree_hash returned by get-full-tree-documentation-preview. Include it only after the user approved that exact stored preview; if it no longer matches, refresh preview before submitting. Do not send documentation_tree. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=false), the description discloses several consequential traits: it is state-changing, consumes AI credits, creates a private linked Space, requires prior authorization, and queues work asynchronously from stored preview data rather than from live input.
Agents need to know what a tool does to the 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: the first front-loads the trigger condition, the second enumerates cost, side effects, and the identifying parameters. No filler or 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?
For a mutation tool with no output schema, it covers prerequisites, authorization, cost, side effects, and the identity of the queued job. It leaves open what happens after queueing (e.g., how completion is observed, or behavior on a stale hash), which the schema's hash-mismatch note only partially addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning by tying repository_id and accepted_tree_hash to the stored preview and the 'exact approved preview' condition. It does not add format-level detail beyond the schema for the optional parameters (space_name, excluded_paths).
Input schemas describe structure but not intent. Descriptions should explain 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 its documentation Space' from a stored full-tree preview) and pins the triggering precondition (user reviewed a full-tree preview). It clearly separates this from the sibling preview tool and from one-shot generators like generate-repository-documentation, though it does not name those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear triggering condition ('Use this when the user has reviewed a full-tree preview and asks to create its documentation Space') and an 'After authorization' gate. There is no explicit when-not guidance or named alternative for cases where no preview exists, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-language-conversionConvert Source Code LanguageAInspect
Use this when the user supplies one source-code file for conversion to another programming language or framework. After authorization, this state-changing action uses AI credits and creates a generation from source_code, filename, from_language, and to_language. It returns converted code and can save to a Space; public Spaces expose saved results.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional generation history name for the converted output. Defaults to the supplied filename when omitted. | |
| filename | Yes | Filename for the supplied source code, including extension when known, so the generator can name the generation and understand context. | |
| source_code | Yes | Source code contents to convert. Use this only when the customer supplied the code text to the MCP client; use browser guidance for local file picker uploads. | |
| to_language | Yes | Target programming language or framework to convert to, such as TypeScript, Python, Go, Vue, TailwindCSS, CSS, or Laravel. | |
| from_language | Yes | Source programming language or framework to convert from, such as PHP, JavaScript, Python, React, Bootstrap, CSS, or Laravel. | |
| save_to_space | No | Optional destination Space item for saving the converted code after authorization. The authenticated user must be able to manage that Space. | |
| additional_instructions | No | Optional conversion guidance, such as preserving APIs, using a framework version, matching style conventions, or focusing on compatibility. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds substantial context beyond them: authorization is required, AI credits are consumed, the action is state-changing, and saved results in public Spaces become publicly visible. That public-exposure warning is a genuinely useful risk disclosure missing from structured fields, though rate limits or failure behavior aren't covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the usage trigger, then behavior, then return/side effects. Dense and mostly waste-free, though the third sentence packs several distinct facts and could be split for 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?
With no output schema and seven parameters, the description carries return-value burden and does address it ('returns converted code') along with the optional save path and its exposure implications. Enough for an agent to call it correctly, though it doesn't describe the generation object or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; the description goes slightly beyond by tying the inputs together as a generation source and flagging that save_to_space carries a manage-permission requirement and public-visibility consequence, which is meaning the schema alone doesn't convey.
Input schemas describe structure but not intent. Descriptions should explain 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 ('converts one source-code file to another programming language or framework') and scopes it to a single file, which distinguishes it from the repository- and codebase-level generation siblings like generate-repository-readme or generate-code-optimization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when the user supplies one source-code file for conversion' gives a clear triggering condition, and the schema's source_code description further routes local file uploads elsewhere. It does not explicitly name a sibling alternative or an exclusion case, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-repository-documentationGenerate Repository Documentation ToolAInspect
Use this when the user wants one markdown document generated from selected files in an imported repository. After authorization, this state-changing action consumes AI credits and creates a generation using numeric repository_id and selected_files, with optional Space saving that may make the output publicly accessible.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Optional generation history filename. Defaults to the selected repository documentation naming pattern. | |
| language | No | Optional human language for the generated repository documentation. Defaults to English. | |
| repository_id | Yes | Required numeric ID of an already connected/imported repository from the user repository records; do not pass a slug, URL, provider name, or Space repository-link ID. | |
| save_to_space | No | Optional destination Space page to create from the generated documentation after authorization. The authenticated user must manage the Space. | |
| selected_files | Yes | Required repository file paths already selected from the imported repository tree, such as app/Models/User.php or routes/api.php. Use browser guidance if the user still needs to choose files. | |
| additional_instructions | No | Optional customer instructions for documentation tone, scope, examples, framework focus, or project-specific emphasis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing that this is state-changing, requires authorization, consumes AI credits, and that optional Space saving 'may make the output publicly accessible' — a meaningful side-effect warning. This is consistent with readOnlyHint=false and adds genuine behavioral context the annotations cannot 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, front-loaded with the 'Use this when...' trigger, with no filler. Slightly dense in the second sentence but every clause (auth, credits, repo_id/selected_files, Space saving public exposure) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with six parameters (including a nested object) and no output schema, the description covers authorization, credit cost, side effects, and the public-accessibility caveat. It lacks any note on return/result format, but absent an output schema this omission is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters (including the nested save_to_space object) are already documented in the schema, including the 'numeric repository_id, not a slug/URL' constraint. The description reinforces 'numeric repository_id and selected_files' and the public-access risk of Space saving, but adds little beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (generate) and resource (one markdown document from selected files in an imported repository), which is concretely scoped. It implicitly distinguishes itself from full-tree/codebase siblings via 'from selected files,' but never names or contrasts an alternative, so it falls short of the sibling-differentiation needed for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening 'Use this when the user wants one markdown document generated from selected files in an imported repository' gives explicit, actionable usage context. However, in a crowded space of generate-* siblings (codebase, full-tree, readme, release-notes), it offers no exclusions or guidance on when to pick a different generator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-repository-readmeGenerate Repository Readme ToolAInspect
Use this when the user asks to generate or refresh a README for an imported repository. After authorization, this state-changing action consumes AI credits, creates a generation, and can save it to a Space, where it may be publicly accessible; it requires the numeric repository_id.
| Name | Required | Description | Default |
|---|---|---|---|
| license | No | Optional license value for the README; required when sections includes License. | |
| filename | No | Optional generation history filename. Defaults to README.md plus the repository name. | |
| language | No | Optional human language for the generated README. Defaults to English. | |
| sections | No | Optional README sections to include, such as Introduction, Features, Requirements, Installation, Usage, Configuration, Contributing, or License. | |
| repository_id | Yes | Required numeric ID of an already connected/imported repository from the user repository records; do not pass a slug, URL, provider name, or Space repository-link ID. | |
| save_to_space | No | Optional destination Space page to create from the generated README after authorization. The authenticated user must manage the Space. | |
| additional_instructions | No | Optional customer instructions for README tone, scope, installation focus, examples, or project-specific emphasis. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=true; the description adds substantial context beyond that — that it is a state-changing action, consumes AI credits, creates a generation, requires prior authorization, and can publish to a Space where it may be publicly accessible. These are exactly the side effects an agent needs to warn a user about.
Agents need to know what a tool does to the 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 dense sentence, front-loaded with the trigger and followed by prerequisites and side effects. Every clause carries information, though the packed semicolon structure is slightly heavy 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?
No output schema exists, and the description covers the authorization requirement, credit consumption, generation creation, and the public-visibility risk of save_to_space — the key facts an agent needs before invoking a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter burden is already carried by the structured fields; the description's note that repository_id must be numeric and not a slug/URL/provider name is a restatement of the schema's own description. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: generate or refresh a README for an imported repository. It is clear what the tool produces, but among the many generate-* siblings (generate-repository-documentation, generate-repository-release-notes, generate-and-add-documentation) it never names which artifact distinguishes it beyond the word README.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 trigger: 'Use this when the user asks to generate or refresh a README for an imported repository.' That is a clear context for invocation, but there are no exclusions or pointers to alternatives for overlapping documentation-generation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-repository-release-notesGenerate Repository Release Notes ToolAInspect
Use this when the user wants release notes from two branches of a connected provider repository. After authorization, this state-changing action compares base_branch with compare_branch, consumes AI credits, creates a generation, and can save it to a Space.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | No | Optional generation history filename. Defaults to release notes plus the repository name and base branch. | |
| provider | Yes | Required connected Git provider key or display name: github, gitlab, bitbucket, azure, or Azure DevOps. Provider authorization must already be complete. | |
| base_branch | Yes | Required base branch to compare from, such as main or production. Must be different from compare_branch. | |
| save_to_space | No | Optional destination Space page to create from the generated release notes after authorization. The authenticated user must manage the Space. | |
| compare_branch | Yes | Required compare branch to compare into the base branch, such as develop, release/1.2, or feature branch name. | |
| repository_identifier | Yes | Required provider repository identifier such as owner/repo for GitHub, GitLab, or Bitbucket, or organization/project/repository for Azure DevOps. | |
| additional_instructions | No | Optional customer instructions for release note tone, audience, format, breaking-change emphasis, or product area focus. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and openWorldHint=true, so the mutation/open-world profile is partly covered. The description adds real value beyond that: it requires prior authorization, consumes AI credits, creates a generation, and can optionally save to a Space — cost and side-effect context an agent cannot get from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences: the first front-loads the trigger, the second enumerates the behavioral chain (auth → compare → credit cost → generation → optional save). No filler, no repetition of the 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?
With 100% schema coverage, annotations, and no output schema, the definition covers trigger, authorization, cost, and side effects adequately for a 7-param nested tool. It omits what the resulting generation contains or how it is later retrieved (e.g., get-generation), a minor gap given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 7 parameters including the nested save_to_space object. The description only names base_branch and compare_branch as the comparison pair, adding no format or constraint detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (generate) and resource (repository release notes) and scopes it precisely: release notes from two branches of a connected provider repo. This clearly distinguishes it from the many sibling generate-* tools (generate-repository-documentation, generate-repository-readme, generate-code-comments).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this when the user wants release notes from two branches of a connected provider repository" gives a clear triggering condition. It stops short of naming alternatives or stating when-not to use it (e.g., versus generate-repository-documentation or generate-repository-readme), so it is not fully explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-swagger-apiGenerate OpenAPI From Source CodeAInspect
Use this when the user supplies API source code and asks for an OpenAPI or Swagger specification. After authorization, this state-changing action consumes AI credits, creates a generation, and returns OpenAPI JSON; it accepts one source_code file or multiple files entries and can save the result to a Space, where it may be publicly accessible.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional generation history name for the generated OpenAPI output. Defaults to the supplied filename or comma-separated filenames. | |
| files | No | Multiple supplied file contents for one OpenAPI spec. Use this when the customer pasted or supplied several files directly; use browser guidance for local uploads. | |
| filename | No | Filename for source_code in the single-file path. Omit when using files[]. | |
| source_code | No | Source code to analyze for a single supplied file. Provide filename too. Omit when using files[]. | |
| save_to_space | No | Optional destination Space item. | |
| additional_instructions | No | Optional generation instructions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description adds meaningful context beyond these: it consumes AI credits, creates a generation, requires authorization, and warns that saved results in a Space may be publicly accessible. That is substantive disclosure, though it doesn't cover reversibility 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?
Two sentences, with the usage condition front-loaded before the behavioral/payload details. Dense but wastes little; the only mild looseness is packing the input-path and Space caveats into the second clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, the description correctly states the return (OpenAPI JSON) and notes auth, credit consumption, and public Space exposure. Given full schema coverage and nested objects, this is essentially complete, though save_to_space semantics and the parent_id option aren't clarified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents all 6 parameters (including the nested files[] path). The description notes the single-file vs. multiple-files paths and the Space-save option, but this largely restates what the schema already explains, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (generate), resource (OpenAPI/Swagger specification), and input (API source code). It clearly distinguishes itself from siblings like generate-code-documentation or generate-repository-documentation by naming the exact output type, so an agent can select it 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?
The opening sentence gives an explicit trigger condition: use when the user supplies API source code and asks for an OpenAPI/Swagger spec. It clarifies usage context well but does not name a sibling alternative or state when NOT to use this tool, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate-uml-diagramGenerate Uml Diagram ToolAInspect
Use this when the user supplies source code and asks for UML, Mermaid, sequence, class, component, or architecture diagrams. After authorization, this state-changing generation consumes AI credits, creates a generation, and can save markdown to a Space. Public Spaces expose saved diagrams. Use browser guidance for local uploads or full-repository diagrams.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional generation name. | |
| filename | Yes | Filename for the source code. | |
| source_code | Yes | Source code to analyze. | |
| diagram_type | Yes | Class Diagrams, Sequence Diagrams, Use Case Diagrams, Activity Diagrams, Component Diagrams, State Diagrams, or Object Diagrams. | |
| save_to_space | No | Optional destination Space item. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses critical behavioral traits: it is state-changing, consumes AI credits, creates a generation, can save markdown to a Space, and notes that public Spaces expose saved diagrams. It also mentions authorization is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the primary use case, then behavioral context, then save behavior, then alternative guidance. Every sentence contributes necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage, side effects, cost, and save behavior well. However, it does not mention what the tool returns (e.g., a generation ID or URL) which would help an agent know how to access the result, given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description reinforces the diagram types but adds no new parameter-level meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain 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 the verb 'generate' and the resource 'UML diagram', and lists supported diagram types (UML, Mermaid, sequence, class, component, architecture). This clearly distinguishes it from sibling generate-* tools that produce documentation, tests, or comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use: 'when the user supplies source code and asks for UML... diagrams.' It also provides a when-not/alternative: 'Use browser guidance for local uploads or full-repository diagrams,' covering edge cases where this tool is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-ai-preferencesGet Ai Preferences ToolARead-onlyInspect
Use this when the user wants to view current AI writing guidelines, templates, strict mode, generator scope, or team-enforced generation preferences. Read-only: returns effective personal/team preferences and whether they are editable without changing settings.
| 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 safety is covered. The description still adds real value beyond them by disclosing what is returned ('effective personal/team preferences') and that editability is reported without mutating settings.
Agents need to know what a tool does to the 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 waste, with the trigger condition front-loaded ahead of the read-only/return behavior. 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 zero-parameter read with no output schema, the description adequately covers both when to call it and what comes back, including the personal-vs-team resolution and editability flag. It could go slightly further on return shape, but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. The description does not need to compensate for any schema gap here.
Input schemas describe structure but not intent. Descriptions should explain 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 ('view') and resource ('AI writing guidelines, templates, strict mode, generator scope, team-enforced generation preferences'), enumerating exactly what is returned. The read-only framing implicitly separates it from the sibling update-ai-preferences, so an agent can route correctly without opening 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?
'Use this when the user wants to view...' gives a clear, explicit trigger condition tied to user intent. It stops short of naming update-ai-preferences as the mutation alternative or stating when-not to use it, so it is strong context rather than full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-documentation-update-statusGet documentation update statusARead-onlyInspect
Use this when the user wants progress or results from a documentation update review in an existing Space. Read-only: returns the latest run or a specific run_id without polling providers or starting work. Change decisions, resume and end remain browser flows.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | No | Optional numeric documentation-update run ID belonging to this Space; omit for the latest run. | |
| space_id | Yes | Required numeric ID of the existing documentation Space. Resolve unknown IDs with list-spaces. |
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 safety is covered; the description still adds useful behavior — that it performs no provider polling, starts no work, and that state-changing steps are browser-only. It stops short of describing the returned status payload or how long runs may take to appear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero padding: trigger first, read-only/no-side-effect guarantee second, scope exclusions third. Every clause carries information an agent would otherwise have to guess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, the description must convey what a caller receives; it says only 'returns the latest run or a specific run_id' without describing the status/progress fields or what a not-yet-started run looks like. Input side is fully covered, so the gap is on the return-value side only.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including run_id being optional and space_id requiring list-spaces resolution. The description reinforces run_id's meaning ('latest run or a specific run_id') but adds no format, range, or ownership details beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — retrieving progress or results of a documentation update review in an existing Space — and explicitly bounds what it is not ('without polling providers or starting work'). An agent can separate it from start-documentation-update and inspect-documentation-update 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?
It gives a concrete trigger ('Use this when the user wants progress or results') and rules out adjacent flows ('Change decisions, resume and end remain browser flows'). It does not name the closest sibling tools (start-documentation-update, inspect-documentation-update) by name, so the routing is inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-full-tree-documentation-previewGet Full Tree Documentation Preview ToolARead-onlyInspect
Use this when the user wants to inspect an existing full-tree documentation preview before creating a Space. Read-only: returns repository details, tree titles, page counts, source-file counts, credit impact, and an acceptance hash for the numeric repository_id.
| Name | Required | Description | Default |
|---|---|---|---|
| repository_id | Yes | Required numeric ID of the imported repository that already has a generated full-tree documentation preview. Do not pass a Space ID, repository slug, provider URL, or Autopilot repository-link ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered; the description nonetheless adds substantive behavioral context by enumerating the return payload, including a credit impact figure and an acceptance hash — non-obvious details an agent would otherwise not anticipate. 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?
Two sentences: the first front-loads the trigger condition, the second lists the return surface. No filler or restated title. It could be tightened slightly by naming the sibling tool, but 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?
There is no output schema, so the description compensates well by enumerating the returned fields. For a one-parameter read tool with full annotation coverage, the only real gap is the absent pointer to the generate-* counterpart for the pre-preview state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single repository_id parameter, and the schema itself already warns against passing a Space ID, slug, provider URL, or repository-link ID. The description reinforces 'numeric repository_id' and ties the acceptance hash to it, but adds little beyond what the schema states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb/resource pairing — inspecting an existing full-tree documentation preview — and enumerates exactly what it returns (repository details, tree titles, page counts, source-file counts, credit impact, acceptance hash). It is clearly a read counterpart to generate-full-tree-documentation, but it never names that sibling, so the differentiation is inferable rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 opening clause gives a concrete trigger: 'when the user wants to inspect an existing full-tree documentation preview before creating a Space.' That is a real usage condition tied to a workflow step. However, it stops short of naming the alternative (generate-full-tree-documentation) or stating what to do if no preview exists yet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-generationGet Generation ToolARead-onlyInspect
Use this when the user wants to read a specific generated output/result, inspect version metadata, see generated markdown, or choose a version for later actions. Read-only: returns the generation by numeric generation_id without changing it.
| Name | Required | Description | Default |
|---|---|---|---|
| generation_id | Yes | The numeric generation ID. Call list-generations first. | |
| include_source | No | Include the original source code/content. Defaults to false. |
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 description's 'Read-only... without changing it' largely restates structured data. It adds only the fact that lookup is by numeric generation_id, which is already implied by the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence pairs the trigger condition with the safety note; nothing is wasted. It is slightly list-dense but appropriately sized for a two-parameter read 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 single-record fetch with fully documented params and no output schema, the description covers when to use it and what it returns (markdown, version metadata). Missing pagination/return-structure notes are minor at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both generation_id and include_source are already documented in the schema, including the 'Call list-generations first' prerequisite. The description adds no parameter-level detail beyond that, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) plus concrete resources (generated output/result, version metadata, generated markdown), which is materially more informative than the name alone. It does not explicitly contrast itself with the closest siblings (list-generations, update-generation), 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?
The opening 'Use this when the user wants to...' gives clear trigger conditions, including the distinct case of picking a version for later actions. It never names an alternative tool or an exclusion, so it stays below the explicit when/when-not bar of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-space-activity-logGet Space Activity Log ToolARead-onlyInspect
Use this when the user asks what changed in a Space, who changed settings, sync events, document actions, or recent activity. Read-only Enterprise feature: returns the Space activity/audit log newest first. Requires numeric space_id and Enterprise access.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of entries to return (default 50, max 500). | |
| since | No | ISO 8601 datetime. Only return entries created after this timestamp. | |
| space_id | Yes | The numeric ID of the space to read the audit log for. Call list-spaces first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds non-obvious context on top: it is an Enterprise-gated feature, results are ordered newest first, and access is required. It still doesn't disclose pagination/truncation behavior at the 500-entry cap, which is the one behavioral gap.
Agents need to know what a tool does to the 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 first is a usage trigger, the second packs the read-only guarantee, ordering, and prerequisites. Front-loaded with the decision-relevant 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 3-param read tool with no output schema, the description covers purpose, trigger conditions, ordering, and the Enterprise gate; the safety profile is carried by annotations. Only the return shape and cap behavior are left implicit, a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – limit, since, and space_id are all documented in the schema, including the 'call list-spaces first' hint. The description only restates that space_id must be numeric and Enterprise-gated, adding no syntax or format meaning beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('returns the Space activity/audit log') plus its ordering ('newest first'), which cleanly separates it from neighbors like list-webhook-logs and get-space-document. An agent can identify the tool from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the triggering user intents: 'what changed in a Space, who changed settings, sync events, document actions, or recent activity.' It also states the Enterprise prerequisite. It does not name an alternative tool or a when-not condition, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-space-documentGet Space Document ToolARead-onlyInspect
Use this when the user wants to read the full markdown content of a specific Space document/page after search or listing. Read-only: returns the selected document without changing content. Requires the document ID from list-space-documents, search-space-documents, or global-search.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | The numeric ID of the space containing the document. Call list-spaces first. | |
| document_id | Yes | The numeric ID of the document to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the 'read-only, does not change content' sentence is partly redundant. However, the description adds real value by naming the return payload ('full markdown content') and the upstream prerequisite chain for the document ID. It does not discuss size limits or pagination for large documents.
Agents need to know what a tool does to the 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 with zero filler, and the use case is front-loaded before the prerequisite. 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 two-parameter read tool with no output schema and full annotation coverage, the definition covers trigger, safety, return content type, and prerequisites. The only gap is behavior for very large documents or missing/invalid IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema (including the space_id note to call list-spaces first). The description adds only provenance for document_id, and never mentions space_id at all, so it does not exceed the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: read the full markdown content of a specific Space document/page. It also distinguishes itself from the discovery siblings (list-space-documents, search-space-documents, global-search), which only locate documents rather than returning content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the triggering condition ('after search or listing') and names the three tools that supply the required document ID. An agent knows exactly when to reach for this tool and what must happen before it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-user-infoGet Account Generation StatusARead-onlyInspect
Use this when the user asks which DocuWriter.ai account is connected or whether it can run a generator. Read-only: returns the account name and a can_generate boolean without changing account data.
| 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 and destructiveHint=false, so safety is covered; the description reinforces this ('Read-only... without changing account data'). More valuably, with no output schema it discloses the return shape (account name plus can_generate boolean), which the agent could not otherwise know.
Agents need to know what a tool does to the 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: the first front-loads the usage trigger, the second states the behavior and return. Every clause earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, read-only tool with no output schema and rich annotations, the description covers the essential usage trigger and the return fields. It is complete enough to call correctly, though it could note there is no pagination or filtering to worry about.
Complex tools with many parameters or behaviors need more documentation. 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. The description correctly implies no input is required and adds nothing misleading about arguments.
Input schemas describe structure but not intent. Descriptions should explain 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 outcome: it returns the account name and a can_generate boolean, which bridges the mismatch between the tool name (get-user-info) and its title (Get Account Generation Status). It is clear what the tool does, though it does not explicitly differentiate itself from look-alike siblings like list-generators or get-ai-preferences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 explicit trigger conditions: 'Use this when the user asks which DocuWriter.ai account is connected or whether it can run a generator.' That is a concrete when-to-use, but it names no alternatives or exclusions, so the routing is clear without being fully disambiguated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
global-searchSearch All Space DocumentsARead-onlyInspect
Use this when the user wants to search documents across every accessible Space rather than one known Space. Read-only: returns matching titles, snippets, Space details, and URLs for a query without changing content.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (minimum 2 characters) | |
| per_page | No | Number of results to return (default 20, max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is largely covered. The description adds useful context by specifying what is returned (matching titles, snippets, Space details, URLs), which matters because there is no output schema. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the usage condition, followed by the read-only guarantee and return contents. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter search tool with annotations covering safety and no output schema, the description is largely complete: it explains scope, read-only behavior, and return fields. It does not discuss pagination or result limits, but the schema covers per_page, so this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (query, per_page), so the schema already documents required input and limits. The description adds no syntax, format, or constraint details beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (search) and resource (documents across every accessible Space), and explicitly contrasts its scope with searching 'one known Space,' which distinguishes it from the sibling search-space-documents tool. It also names the return contents (titles, snippets, Space details, URLs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a clear when-to-use condition ('when the user wants to search documents across every accessible Space') and an implicit when-not ('rather than one known Space'). However, it does not name the alternative tool (search-space-documents) explicitly, leaving the agent to infer which sibling to use for a single Space.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect-documentation-updateInspect documentation updateARead-onlyInspect
Use this when the user wants to check an existing Space for repository documentation updates. Read-only: returns readiness, credit impact and a review_quote for optional selected pages; it starts no review. Change decisions, resume and end remain browser flows.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | Required numeric ID of the existing documentation Space. Resolve unknown IDs with list-spaces. | |
| selected_page_ids | No | Optional numeric generation-page IDs from this Space to include in the review; omit to inspect the available scope. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, non-destructive, open-world behavior. The description adds useful context by naming the returned readiness, credit impact, and review_quote fields, and by clarifying that no review is started and follow-up actions remain browser-based.
Agents need to know what a tool does to the 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 tight sentences with the usage trigger front-loaded and no redundant restatement of the name or title. Every sentence contributes either selection guidance, behavioral boundaries, or return-value 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 read-only inspection tool with no output schema, the description names the key return values and clarifies what the tool does not do. The exact structure of readiness and credit impact is not detailed, but the schema covers the inputs and annotations cover safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already well documented in the schema. The description reinforces that selected pages are optional and ties them to review_quote, but it adds no syntax or format detail 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 states a specific verb and resource: inspect an existing Space for repository documentation updates. It distinguishes itself from start-documentation-update by explicitly saying it starts no review, but it does not clarify how it differs from the sibling get-documentation-update-status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage condition: use when the user wants to check an existing Space for repository documentation updates. It also sets boundaries by saying change decisions, resume, and end remain browser flows, though it does not name the closest sibling alternative for status checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invite-team-memberInvite Team Member ToolAInspect
Use this when the user wants to invite a teammate by email with an editor or viewer role. After authorization, this state-changing external action creates a pending invitation and sends one email; invitation acceptance occurs in the browser.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | Configured team role to grant, usually editor or viewer. Use list-team-members first to inspect available_roles. | |
| Yes | Email address to invite to the current team. Use list-team-members first if the user refers to an existing pending invitation or teammate by name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that this is a state-changing external action, that it occurs after authorization, that it creates a pending invitation, that exactly one email is sent, and that acceptance happens in the browser. These are valuable behavioral details for an agent invoking a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the usage condition, and moves directly into important behavioral context. Every sentence contributes 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 two-parameter mutation tool with annotations and no output schema, the description covers the trigger, side effects, authorization context, and invitation acceptance flow. An agent has enough information to invoke it correctly without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already well documented in the schema. The description reinforces the email and role inputs but does not add syntax, format, or constraints beyond what the schema provides; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: invite a teammate by email with an editor or viewer role. The intended action is clear and distinguishable from most siblings, but it does not explicitly contrast with related tools like cancel-team-invitation or update-team-member-role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a clear triggering condition: use when the user wants to invite a teammate by email with an editor or viewer role. It does not list exclusions or explicitly name alternative tools to use instead, but the context is sufficient for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-generationsList Generations ToolARead-onlyInspect
Use this when the user asks to find generated outputs, generation history, previous results, archived items, or IDs for later generation actions. Read-only: lists visible personal/team generations and can include previews or full content without changing anything.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. Defaults to 1. | |
| type | No | Optional generation type filter. Accepts numeric enum values or names like documentation, tests, swagger_api_docs, git_full_tree_documentation. | |
| archived | No | Whether to show archived generations. Defaults to false. | |
| per_page | No | Results per page, 1-100. Defaults to 20. | |
| include_content | No | Include full generated content instead of a preview. |
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's 'without changing anything' largely restates it. Genuine additions are the visibility scope (personal/team generations) and the archived-items note, but preview-vs-full-content merely mirrors the include_content 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?
Two sentences, with the use-case triggers front-loaded and the read-only constraint second. No filler, though the second sentence spends words on read-only behavior the annotations already declare.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 list tool with no output schema, the description plus full schema coverage give an agent enough to call it correctly: triggers, scope of visibility, and archive/preview options. It is slightly thin on how results are paged and what the listing returns, but the parameters carry that load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five optional parameters (page, type, archived, per_page, include_content) are already documented in the schema. The description adds no format, enum, or pagination detail beyond that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (lists generations) and scopes it to visible personal/team generations, so an agent can distinguish it from write siblings like archive-generation or restore-generation. It stops short of explicitly contrasting with the two closest siblings, get-generation (single item) and list-generators (generators rather than outputs).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 opening clause gives concrete triggers — find generated outputs, generation history, previous results, archived items, IDs for later generation actions — which is clear contextual guidance. It never states when to prefer get-generation or list-generators instead, so it stops at clear context rather than full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-generatorsList Generators ToolARead-onlyInspect
Use this when the user asks which DocuWriter.ai generators are available or what inputs a generator requires. Read-only: returns generator identifiers, required inputs, credit behavior, Space output behavior, and browser-only setup boundaries without running a generator.
| 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 and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: it enumerates what is returned (identifiers, required inputs, credit behavior, Space output behavior, browser-only boundaries) and confirms nothing is executed.
Agents need to know what a tool does to the 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 waste. The usage trigger is front-loaded and the read-only return summary follows, so the agent gets the essential facts in reading order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe the return payload, and it does so by listing the categories of information returned. That is enough to call the tool correctly; only the exact response shape/format is left unspecified, a minor gap for a parameterless 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 clarify beyond the empty schema. Baseline 4 applies; no parameter-level detail is expected or needed.
Input schemas describe structure but not intent. Descriptions should explain 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 ('list' generators) and immediately scopes it against the many generate-* siblings with 'without running a generator.' An agent can distinguish this discovery tool from the generation tools without opening any 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?
Gives a clear trigger ('when the user asks which generators are available or what inputs a generator requires') and an implicit exclusion (it does not run a generator). It stops short of naming a specific alternative tool for the opposite case, so it is strong context rather than full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-provider-connectionsList Provider Connections ToolARead-onlyInspect
Use this when the user asks whether GitHub, GitLab, Bitbucket, or Azure DevOps is connected, or asks which imported repository records already exist. Read-only: returns provider status and browser-only connect/reconnect guidance without exposing credentials. Use repository-link tools for Space Autopilot links.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | No | Optional provider guidance filter: github, gitlab, bitbucket, or azure. | |
| include_guidance | No | Include browser-only connection guidance. Defaults to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, and openWorldHint=false. The description adds meaningful context beyond that: it returns provider status plus browser-only connect/reconnect guidance, and explicitly notes that credentials are not exposed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no waste, front-loaded with the usage trigger before the behavioral and disambiguation notes. 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 read-only, zero-required-parameter listing tool with a fully documented schema and existing annotations, nothing needed to invoke it correctly is missing; no output schema exists, so return-value explanation is unnecessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both the provider filter and include_guidance. The description echoes the browser-only guidance concept but adds no syntax or default details beyond what the schema supplies, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (list provider connections) and enumerates the exact providers covered (GitHub, GitLab, Bitbucket, Azure DevOps), so an agent immediately knows what is being enumerated. It also distinguishes itself from the repository-link tools, avoiding confusion with list-space-repository-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?
Gives concrete trigger conditions ('when the user asks whether X is connected') and names an alternative ('Use repository-link tools for Space Autopilot links'). It does not, however, clearly distinguish itself from the closest sibling list-provider-repositories, which also concerns imported repositories.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-provider-repositoriesList Provider Repositories ToolARead-onlyInspect
Use this when the user wants to choose a repository from a connected GitHub, GitLab, Bitbucket, or Azure DevOps provider before creating an Autopilot link. Read-only external-provider lookup: fetches repository choices or returns reauthorization/browser guidance. Requires provider and space_id.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | github, gitlab, bitbucket, or azure. | |
| space_id | Yes | Numeric Space ID where the user is choosing a repository for Autopilot setup. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds real value by disclosing that the call may return reauthorization/browser guidance rather than data — an out-of-band outcome an agent otherwise would not expect. It stops short of describing pagination or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the trigger condition, then the read-only framing, then prerequisites. Dense but every clause carries information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, the description compensates by telling the agent what comes back (repository choices or reauthorization/browser guidance). Combined with full parameter coverage and read-only annotations, an agent has enough to call this correctly; only pagination/emptiness 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?
Schema coverage is 100% and both parameters are fully documented in the schema, so the baseline of 3 applies. The description only restates that provider and space_id are required, adding no format or constraint detail beyond the schema's own enum listing.
Input schemas describe structure but not intent. Descriptions should explain 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 ('fetches repository choices') scoped to connected external providers, and situates it in the Autopilot setup flow. It implicitly distinguishes itself from list-provider-connections and list-space-repository-links, though it never names those siblings 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?
'Use this when the user wants to choose a repository from a connected provider before creating an Autopilot link' gives a concrete triggering condition. There is no explicit when-not or named alternative, so the agent must infer that existing links are handled elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-space-documentsList Space Documents ToolARead-onlyInspect
Use this when the user wants to browse a Space tree, list pages/docs/documents/folders, find numeric document or item IDs, or inspect structure before editing. Read-only: returns documents and folders for one numeric space_id without changing content.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | The numeric ID of the space to list documents from. Call list-spaces first. |
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 reinforces this ('Read-only... without changing content') and clarifies the scope is one space, but adds little beyond what annotations provide and says nothing about pagination or result volume.
Agents need to know what a tool does to the 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, front-loaded with the 'Use this when...' trigger clause and followed by the read-only scoping caveat. No filler, though the read-only statement is mildly redundant with the 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 one-parameter, read-only listing tool with no output schema, the description covers trigger, scope, and side-effect profile adequately. The only gap is the absence of routing guidance against search-space-documents, which would help an agent choose 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 100% and the single parameter is already documented, including the 'Call list-spaces first' prerequisite. The description only restates that it is one numeric space_id, adding no format or constraint detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('list/browse') and resource ('documents and folders in a Space tree'), and scopes it to a single numeric space_id. It does not name the closest siblings (search-space-documents, get-space-document) to sharpen the boundary, but the intent 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?
It states clear trigger conditions: browsing a Space tree, listing pages/docs/folders, finding numeric IDs, or inspecting structure before editing. It stops short of naming alternatives (e.g. use search-space-documents for keyword lookup) or stating when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-space-repository-linksList Space Repository Links ToolARead-onlyInspect
Use this when the user asks which repositories are linked to a Space for Autopilot, repo sync, suggestion generation, trigger events, or recent sync activity. Read-only: returns configured repository links plus bounded sync status/activity without exposing raw provider payloads.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | Numeric Space ID whose Autopilot repository links should be listed. | |
| activity_limit | No | Maximum recent sync events per link. Defaults to 5, max 20. | |
| include_activity | No | Include recent repository sync status/activity. Defaults to true. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, and closed-world behavior. The description reinforces this and adds useful context that activity is bounded and raw provider payloads are not exposed, though it does not discuss permissions or detailed response shape.
Agents need to know what a tool does to the 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 focused sentences with no wasted text. The usage condition is front-loaded and the read-only return behavior follows 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?
Given the read-only annotations and fully described schema, the description is nearly complete. It explains what is returned at a high level and notes the bounded activity/raw-payload constraint, though it could say more about link fields or response structure since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents space_id, activity_limit, and include_activity thoroughly. The description adds a little context about bounded sync activity, but parameter meaning is primarily carried by the schema, making 3 the appropriate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: listing repository links for a Space. It also frames the purpose around Autopilot, repo sync, suggestion generation, trigger events, and sync activity, though it does not explicitly contrast itself with sibling tools like update-space-repository-link or delete-space-repository-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 when-to-use scenarios: when the user asks which repositories are linked to a Space for Autopilot, repo sync, suggestions, triggers, or recent activity. It stops short of naming exclusions or alternatives, but the intended context is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-spacesList Spaces ToolARead-onlyInspect
Use this when the user asks to see, choose, or look up their documentation Spaces, especially before using tools that need a numeric space_id. Read-only: returns accessible Spaces and does not change settings or documents.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint=false, and the description largely restates them ('read-only... does not change settings or documents'). It adds one genuinely new fact — the returned set is limited to 'accessible' Spaces — but says nothing about ordering, format, or 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?
Two sentences, no filler, with the primary use case front-loaded and the read-only caveat second. 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 parameterless read-only lookup with no output schema, the description covers purpose, trigger, and the key behavioral fact (accessible Spaces). Slightly incomplete in that it does not hint at what each Space entry contains, but nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is no parameter semantics to convey; baseline is 4. The description does not introduce phantom parameters, which is correct.
Input schemas describe structure but not intent. Descriptions should explain 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/look up) and resource (documentation Spaces), and distinguishes itself from siblings like list-space-documents by scoping to Spaces themselves. An agent can tell this apart from the many 'list-space-*' tools without opening a 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?
Explicit trigger: 'when the user asks to see, choose, or look up their documentation Spaces,' plus a sequencing hint about needing a numeric space_id first. No when-not guidance or named alternative, but the context is clear enough to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-space-suggestionsList Space Suggestions ToolARead-onlyInspect
Use this when the user wants to review pending, snoozed, done, high-confidence, or filtered Autopilot/repository-sync documentation suggestions for a Space. Read-only: returns suggestion inbox items and IDs for later apply/discard/snooze tools without changing documents.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of suggestions to return (default 50, max 200). | |
| status | No | Filter by suggestion status. Accepted values: pending (default), applied, discarded. | |
| batch_id | No | Optional. Scope results to a single numeric batch ID. | |
| space_id | Yes | The numeric ID of the space whose suggestions you want to list. Call list-spaces first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/destructiveHint=false, and the description reinforces this while adding real value beyond them: it states that the return is 'suggestion inbox items and IDs for later apply/discard/snooze tools without changing documents.' That tells the agent what it gets and that it is a safe, non-mutating read, which is more than the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the usage condition and followed by the behavioral note. Nothing is wasted, though the status enumeration is slightly overlong for the value it adds.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 output schema, the description correctly steps in to say it returns inbox items and IDs, which is what an agent needs to chain into apply/discard/snooze. Pagination/limit behavior is left to the schema, which is fine since it is documented there.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents limit, status, batch_id, and space_id (including the 'call list-spaces first' hint). The description adds no parameter-level detail and its status examples actually conflict with the schema enum, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('list ... documentation suggestions for a Space') and distinguishes itself from mutation siblings like apply/discard/snooze by framing it as a review operation. The status list ('pending, snoozed, done, high-confidence') does not match the schema's accepted values (pending, applied, discarded), which slightly muddies what it actually returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when the user wants to review ... suggestions' gives a clear triggering context, and it explicitly positions itself as the read step preceding apply/discard/snooze. It never names count-space-suggestions or bulk-manage-space-suggestions as alternatives, so the routing is helpful but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-team-membersList Team Members ToolARead-onlyInspect
Use this when the user asks who is on their team, which teammates or seats exist, what roles are available, whether pending team invitations exist, or what team-member actions they can perform. Read-only: returns the current team roster, pending invitations, available roles, capabilities, and invitation-acceptance guidance without changing state.
| 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 and destructiveHint=false, so the 'read-only ... without changing state' clause adds little new. The valuable addition is the disclosure of return content (roster, pending invitations, roles, capabilities, invitation-acceptance guidance), which is useful context since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the 'Use this when...' trigger ahead of the read-only/return detail, and every clause maps to a concrete use case. The long enumeration is slightly list-heavy but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, zero-parameter read tool with no output schema, the description covers usage triggers, the read-only safety posture, and what gets returned. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to clarify beyond confirming it requires no input. Baseline 4 applies for a parameterless 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?
States a specific verb+resource (list team members) and enumerates the exact scope it covers: current roster, pending invitations, available roles, and capabilities. Read-only framing cleanly separates it from the write siblings (invite-team-member, remove-team-member, update-team-member-role), so an agent can identify it 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?
Provides explicit trigger scenarios (user asks who is on their team, which seats exist, what roles are available, whether pending invitations exist), which is stronger than implied usage. However, it names no alternative tool and gives no when-not-to-use guidance, so it falls short of the 5 bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-webhook-eventsList Webhook Events ToolARead-onlyInspect
Use this when the user asks what webhook events, event names, or callback triggers are available before creating or editing a webhook subscription. Read-only: returns supported event keys and labels without changing subscriptions.
| 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 reinforces this and adds that it returns event keys and labels without altering subscriptions. This extra return-content context is useful beyond the annotations, though the read-only claim partly restates the hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, front-loaded with the triggering user intent followed by the read-only guarantee. Nothing is padded or repeated unnecessarily.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 enumeration tool with no output schema, the description supplies both the trigger condition and the shape of the result (event keys and labels). Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate and the schema is trivially complete. Baseline for a no-parameter 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?
States a specific verb and resource: it lists the available webhook events, event names, and callback triggers, returning supported event keys and labels. This is clearly distinguishable from list-webhook-subscriptions and list-webhook-logs, which enumerate different resources, so an agent can select it without 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?
Gives explicit when-to-use context: 'when the user asks what webhook events... are available before creating or editing a webhook subscription,' which anchors it relative to the create/update subscription siblings. It does not explicitly name an alternative or a when-not-to-use case, 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.
list-webhook-logsList Webhook Logs ToolARead-onlyInspect
Use this when the user asks whether webhooks delivered, failed, retried, or what payload event logs exist for their webhook subscriptions. Read-only: returns bounded delivery log summaries for owned subscriptions. Use list-webhook-subscriptions first when a subscription ID is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return, 1-50. Defaults to 25. | |
| success | No | Optional success/failure filter. | |
| event_type | No | Optional webhook event key filter. | |
| subscription_id | No | Optional webhook subscription ID filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false and openWorldHint=false, so safety is covered; the description reinforces read-only and adds two useful facts not in the annotations: results are bounded and limited to subscriptions the caller owns (an authorization/scope constraint). It stops short of describing ordering or pagination behavior beyond the bound.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler, front-loading the usage trigger before the behavioral and prerequisite notes. Every clause carries information an agent needs to select and call 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 read-only list tool with a fully documented schema, the description covers when to use it, its scope, and the shape of the return ('delivery log summaries'). With no output schema, a sentence on ordering or how logs are identified would round it out, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all four filters (limit, success, event_type, subscription_id) are documented in the schema itself. The description adds no syntax, format, or filtering semantics beyond what the schema already states, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (webhook delivery logs), with scope qualifiers ('bounded delivery log summaries for owned subscriptions') that let an agent separate it from list-webhook-subscriptions. It does not, however, distinguish itself from the sibling list-webhook-events, and the phrase 'payload event logs' arguably overlaps that tool's territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with a concrete trigger phrased in user intent ('when the user asks whether webhooks delivered, failed, retried'), which maps directly onto the success/failure/retry semantics of the tool. It also names the prerequisite alternative explicitly: use list-webhook-subscriptions first when a subscription ID is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-webhook-subscriptionsList Webhook Subscriptions ToolARead-onlyInspect
Use this when the user asks which webhooks, callback URLs, integration subscriptions, or event endpoints are configured. Read-only: returns owned webhook subscriptions without changing them. Use list-webhook-events to discover valid event keys.
| 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 and destructiveHint=false, so the safety profile is covered; the description reinforces this and adds scope ('owned' subscriptions) and the no-mutation guarantee. It stops short of describing return shape or count/pagination behavior, which for a list tool with no output schema would have been useful, but with annotations carrying safety this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the trigger condition, then the read-only guarantee, then the sibling redirect. Every sentence adds distinct value with no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only list tool with no output schema, the description covers purpose, trigger, and the nearest alternative tool. The only missing piece is any hint about the returned collection (size, pagination, fields), which is a minor gap given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. There is nothing for the description to disambiguate and it makes no misleading claims about inputs; it simply omits any mention of parameterization, which is appropriate for a no-arg listing call.
Input schemas describe structure but not intent. Descriptions should explain 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 webhook subscriptions) and anticipates the user's vocabulary with concrete synonyms (callback URLs, integration subscriptions, event endpoints). It differentiates from the closely named sibling by pointing to list-webhook-events for event keys, so an agent can pick it apart from the other webhook 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?
Opens with an explicit trigger ('Use this when the user asks which webhooks... are configured') and names the alternative tool (list-webhook-events) for the distinct job of discovering valid event keys. Nothing is left to inference for when to select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move-space-itemMove Space Item ToolAInspect
Use this when the user wants to move, nest, unnest, reorder, or reposition a Space page/document, folder, or external link. State-changing: updates item location/order after authorization, which can alter content visibility in a public Space. Requires numeric space_id and item_id; parent_id and order are optional values from list-space-documents.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Optional order value. | |
| item_id | Yes | Numeric Space item ID for the page, folder, or external link to move. | |
| space_id | Yes | Numeric Space ID containing the item to move or reorder. | |
| parent_id | No | Destination folder ID, or null for root. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the description needn't re-declare the write nature. It adds genuine value beyond those: 'updates item location/order after authorization, which can alter content visibility in a public Space' discloses an authorization requirement and a downstream visibility consequence the annotations do not capture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the trigger and then the behavioral and parameter facts; no filler. The synonym list is slightly long but each term adds a genuinely distinct use case, so it stays close to efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4-parameter mutation tool with full schema coverage and annotations, this covers the essentials: trigger, state-changing behavior, and parameter requirements. Return values are not described, but no output schema exists and the checks it performs are adequately disclosed; only explicit sibling routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes further by stating that space_id/item_id are required and that parent_id and order are 'optional values from list-space-documents', which adds provenance semantics the schema's terse 'Optional order value' does not provide.
Input schemas describe structure but not intent. Descriptions should explain 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 set (move, nest, unnest, reorder, reposition) applied to a precise resource (Space page/document, folder, external link). The synonyms clarify the scope of the operation and implicitly distinguish it from metadata-oriented siblings like update-space-item, so an agent can identify the right tool without opening a 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?
It opens with an explicit trigger ('Use this when the user wants to move, nest, unnest, reorder...'), which is strong positive guidance. However, it names no alternatives or exclusions (e.g., copy-space-item for duplicating, update-space-item for non-location changes), so it stops short of full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove-team-memberRemove Team Member ToolADestructiveInspect
Use this when the user explicitly wants to remove an existing teammate and revoke their access to team Spaces. After authorization, this destructive action removes the specified member_id from the team; owners and the acting user cannot be removed.
| Name | Required | Description | Default |
|---|---|---|---|
| member_id | Yes | Numeric user/member ID to remove from the current team. Use list-team-members first when the user gives a name or email. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known. The description adds genuine context beyond that: the action revokes team Space access, requires prior authorization, and silently fails/is blocked for owners and the acting user. What is missing is any note on irreversibility or how the removal is confirmed.
Agents need to know what a tool does to the 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: the when-to-use condition leads, the destructive mechanics and the exclusion rule follow. No filler 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 single-parameter destructive tool with annotation coverage and no output schema, the description covers trigger, side effect, authorization requirement and blocked cases. Only irreversibility or post-removal behavior is unaddressed, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the parameter already documents that it takes a numeric member ID and that list-team-members should be used first for names/emails. The description only restates 'the specified member_id', adding no format or resolution detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (remove), a specific resource (existing teammate), and the resulting scope change (revokes access to team Spaces). The word 'existing' implicitly separates it from cancel-team-invitation, but no sibling is named explicitly, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a clear trigger ('when the user explicitly wants to remove an existing teammate') and states real exclusions (owners and the acting user cannot be removed). It does not point at alternatives such as update-team-member-role or cancel-team-invitation, so routing among siblings is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report-feedbackSubmit Product FeedbackADestructiveInspect
Use this when the user explicitly asks to submit DocuWriter.ai or MCP feedback. After authorization, this state-changing action records feedback for review; submission failures may send a feedback preview and account context to the external error-monitoring service. Do not include secrets or source code in feedback.
| Name | Required | Description | Default |
|---|---|---|---|
| feedback | Yes | The user feedback text (minimum 10 characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a state-changing, open-world, destructive action; the description goes further by adding the authorization prerequisite and a concrete failure-path disclosure (feedback preview plus account context sent to an external error-monitoring service) plus a content restriction on secrets/source code. That is real behavioral context beyond the structured fields, not a restatement of them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the trigger condition, then effect, then a safety constraint. No filler and each sentence carries distinct information (when to call, what happens, what side effects occur).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, no-output-schema tool this is complete: trigger, auth requirement, mutation semantics, external data transmission on failure, and content restrictions are all covered. An agent has everything needed to decide whether and how 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?
With one parameter at 100% schema coverage, the baseline is 3. The description adds meaning the schema does not carry: what must not be placed in the feedback field (secrets, source code), which materially shapes how the agent should populate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (records/submits feedback for review) and pins the trigger precisely: the user explicitly asking for DocuWriter.ai or MCP feedback. No sibling tool in the list is competing for this action, so differentiation 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?
"Use this when the user explicitly asks" gives a clear, restrictive invocation condition that doubles as an implicit when-not (don't submit unsolicited). No alternative tool is named, but none exists in the sibling set, so nothing is left ambiguous for practical purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore-generationRestore Generation ToolAInspect
Use this when the user wants to unarchive, restore, or show an archived generation again in the active generation list. State-changing: restores the visible archived generation after authorization. Requires generation_id from list-generations with archived=true.
| Name | Required | Description | Default |
|---|---|---|---|
| generation_id | Yes | Generation ID to restore. Call list-generations with archived=true first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false; the description reinforces this with "State-changing" and adds the authorization requirement, which annotations do not cover. It does not describe the result of the restore, but with annotations carrying the safety profile this is a solid addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero waste: trigger condition front-loaded, then state-changing behavior, then the prerequisite. 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 single-parameter action tool with annotations and no output schema, the description covers when to use it, the prerequisite, and the state-changing/authorization nature. It omits what the restore returns, but no output schema exists to lean on, so this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole parameter's schema description already says to call list-generations with archived=true first. The description merely repeats that prerequisite, adding no syntax or format detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (restore/unarchive) and resource (generation), and the framing as the inverse of archiving makes the contrast with the sibling archive-generation obvious. An agent can identify the operation 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?
"Use this when the user wants to unarchive, restore, or show an archived generation again in the active generation list" gives a clear trigger condition. It also routes the agent to list-generations with archived=true for the ID. No explicit when-not guidance, so it stops short of 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke-provider-connectionRevoke Provider Connection ToolADestructiveInspect
Use this when the user explicitly asks to disconnect GitHub, GitLab, Bitbucket, or Azure DevOps. After authorization, this destructive action revokes the selected provider connection; it requires a provider key from the connection list.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | Provider to revoke: github, gitlab, bitbucket, or azure. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, but the description adds context beyond them: the action runs "after authorization" and requires a provider key sourced from the connection list. That prerequisite and auth note are genuinely additive, though reversibility and downstream effects are not covered.
Agents need to know what a tool does to the 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 usage condition leads, the destructive nature and prerequisite follow, and every clause carries actionable 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 single-parameter destructive tool with annotations carrying the safety profile and no output schema, the description covers trigger, authorization, and parameter sourcing. Only minor gaps remain (no note on what happens to linked repositories/state after revocation).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema baseline is 3. The description adds meaning by telling the agent the provider value must come from the connection list (i.e., obtain it via list-provider-connections first), which is real workflow semantics not 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?
States a specific verb+resource ("revokes the selected provider connection") and names the exact scope (GitHub, GitLab, Bitbucket, Azure DevOps). An agent can distinguish it from list-provider-connections and the many space/webhook siblings without opening any 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?
Gives an explicit trigger condition: "Use this when the user explicitly asks to disconnect...", which is a clear when-to-use with an intent guard. It does not name a sibling alternative or a when-not-to-use, 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.
search-documentation-mentionsFind documentation to mentionARead-onlyInspect
Use this when the desktop composer needs documentation pages for the user to mention in a prompt. Read-only: matches page titles and Space names in readable Spaces, returning up to 20 authenticated resource references without document bodies. Requires query, which may be empty for recently updated pages. Use global-search for semantic content questions instead.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Page title or Space name to match, up to 200 characters after trimming; use an empty string for recently updated readable pages. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile, and the description adds genuinely new behavioral detail: results are limited to 20, are authenticated resource references with no document bodies, and matching is restricted to readable Spaces. This is exactly the extra context annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences: purpose/consumer first, then read-only behavior and output shape, then the parameter caveat, then the alternative. No filler and nothing repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only search with an output schema present, the description covers purpose, scope, result shape, and the alternative tool. An agent needs nothing more to select and call 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 100% and the single 'query' parameter is fully documented in the schema, including the empty-string case. The description's note that query may be empty for recently updated pages restates the schema rather than adding new semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (find documentation pages to mention) and its exact consumer (desktop composer), and distinguishes its matching behavior (page titles and Space names) from the semantic search 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?
Explicitly names when to use it (composer mention flow) and routes semantic content questions to global-search. It does not, however, differentiate against the closely related sibling search-space-documents, which an agent could reasonably confuse it with.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-docuwriter-platform-docsSearch DocuWriter documentationARead-onlyInspect
Use this when the user asks how DocuWriter.ai works or requests its published product, API, or CLI instructions. Read-only: searches the first-party public documentation site across its linked Spaces and returns relevant page excerpts with canonical URLs. It does not search the user's Spaces or private documentation, and it cannot change documentation.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A 2-500 character question or topic about DocuWriter.ai, such as linked Spaces, Full Tree Documentation, Autopilot, API authentication, or CLI Markdown imports. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, destructiveHint=false, openWorldHint=false), and the description adds real context beyond them: it searches across linked Spaces and returns page excerpts with canonical URLs, and cannot modify documentation. The return shape is disclosed; pagination/result-limit behavior is not.
Agents need to know what a tool does to the 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 tightly packed sentences, front-loaded with the trigger condition, followed by scope and return behavior. No filler or 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?
With no output schema, the description usefully explains that results are page excerpts with canonical URLs, and it disambiguates scope against private/space search. Only result limits or ranking behavior are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single query parameter and the schema itself already lists example topics (linked Spaces, Full Tree Documentation, Autopilot, API authentication, CLI imports). The description adds no syntax or constraint detail beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (searches first-party public DocuWriter documentation) and scopes it explicitly against the user's private Spaces. This cleanly separates it from siblings like search-space-documents, global-search, and search-documentation-mentions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 trigger ('when the user asks how DocuWriter.ai works or requests published product, API, or CLI instructions') and an explicit exclusion ('does not search the user's Spaces or private documentation'). It stops short of naming the sibling to route to instead, which would be needed for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-space-documentsSearch Space Documents ToolARead-onlyInspect
Use this when the user wants to find pages, docs, documents, or content inside one specific Space. Read-only: searches the selected Space and returns matching document snippets without changing content. Requires numeric space_id from list-spaces.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| query | Yes | Search query (minimum 2 characters) | |
| per_page | No | Number of results per page | |
| space_id | Yes | The numeric ID of the space to search in. Call list-spaces first. | |
| highlight | No | Whether to highlight search terms in results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint=false, and openWorldHint=false, so description contributes the return behavior ('returns matching document snippets without changing content') and the prerequisite dependency. It doesn't describe result ordering or pagination behavior, but the additions are meaningful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the use case, then the read-only guarantee, then the prerequisite. No sentence is wasteful and each carries distinct 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 read-only scoped search with full schema coverage and no output schema, the description covers purpose, safety, return shape, and prerequisite. An agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are documented in the schema itself. The description only reinforces that space_id must come from list-spaces, which the schema already states, adding no new syntax or semantic detail.
Input schemas describe structure but not intent. Descriptions should explain 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 ('find') with concrete resources ('pages, docs, documents, or content') and an explicit scope constraint ('inside one specific Space'). This distinguishes it from the global search sibling without needing to name 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?
Provides clear usage context ('when the user wants to find pages, docs, documents, or content inside one specific Space') and a prerequisite (numeric space_id from list-spaces). It does not explicitly name the alternative global-search tool or state when to prefer it over this scoped search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set-generation-definitive-versionSet Generation Current VersionAInspect
Use this when the user wants a specific version to become the current content of an existing generation. After authorization, this state-changing action applies version_number to the specified generation_id.
| Name | Required | Description | Default |
|---|---|---|---|
| generation_id | Yes | Generation ID to update. Call get-generation first to inspect available versions. | |
| version_number | Yes | Existing version number to mark as definitive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, and the description adds genuinely new context: it is a 'state-changing action' and requires 'authorization' first. It stops short of saying what happens to the previously current version or whether the change is reversible, which would matter for a mutation.
Agents need to know what a tool does to the 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 when-to-use trigger front-loaded before the mechanics. 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 two-parameter mutation with no output schema, the description covers trigger, mutation semantics, and auth. It omits error/edge behavior (invalid version, prior-version fate), but annotations already carry the safety profile, so the gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already fully documented, including the pointer to call get-generation first. The prose restates that version_number is applied to generation_id without adding format, range, or constraint details beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (make a specific version the current/definitive content) on a specific resource (an existing generation), which is clearer than the vaguer sibling 'update-generation'. It does not explicitly distinguish itself from siblings like restore-generation or update-generation, 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?
'Use this when the user wants a specific version to become the current content of an existing generation' gives a clear triggering condition and implies the generation must already exist. It offers no explicit exclusions or named alternatives (e.g., vs. update-generation), so it is solid but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snooze-space-suggestionSnooze Space Suggestion ToolAInspect
Use this when the user wants to postpone, remind later, or snooze one Autopilot/repository-sync documentation suggestion. State-changing: hides the pending suggestion until the specified date/time after authorization. Requires suggestion_id from list-space-suggestions and an until timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
| until | Yes | Future date/time parseable by the platform. | |
| suggestion_id | Yes | Numeric Autopilot suggestion ID to snooze. Use list-space-suggestions first when needed. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not destructive, and the description adds useful context: it is state-changing, it hides the pending suggestion until the specified date/time, and it requires authorization. It does not explain what happens after that date or whether the action is reversible, so it falls short of full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the use case and followed by behavioral context and prerequisites. Every sentence earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter state-changing tool with full schema coverage, no output schema, and annotations covering safety, the description provides the essential when-to-use and behavioral information. It could be slightly more complete by noting the post-snooze behavior, but nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description restates that suggestion_id should come from list-space-suggestions and that until is a timestamp, but adds no format or usage detail beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (snooze/postpone) and resource (one Autopilot/repository-sync documentation suggestion), and it distinguishes the operation from related actions by clarifying that it hides the pending suggestion until a specified date/time rather than applying or discarding 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?
It explicitly states when to use the tool: when the user wants to postpone, remind later, or snooze a suggestion. It also names the prerequisite for obtaining the required suggestion_id, but it does not explicitly mention alternative tools such as apply-space-suggestion or discard-space-suggestion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start-documentation-updateStart documentation updateAInspect
Use this when the user explicitly asks to start a documentation update review after inspecting its quote and credit impact. After authorization, this state-changing action starts the quoted review; it does not accept changes. Change decisions, resume and end remain browser flows.
| Name | Required | Description | Default |
|---|---|---|---|
| space_id | Yes | Required numeric ID of the existing documentation Space. Resolve unknown IDs with list-spaces. | |
| review_quote | Yes | Required opaque review_quote returned by inspect-documentation-update for the exact Space and selected pages. Submit only after explicit approval of its scope and credit impact. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false and openWorldHint=true; the description goes further by labeling the action 'state-changing', requiring prior authorization, and tying invocation to credit impact — context the annotations do not carry. It stops short of saying what happens to the quote after consumption or whether retries are safe, 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?
Three short sentences, front-loaded with the trigger condition, followed by the behavioral constraint and the boundary of the tool's scope. Nothing is redundant 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?
The prerequisite chain (inspect → approve → start) and the browser-only follow-ups cover most of what an agent needs. With no output schema, a note on how to observe progress afterwards (get-documentation-update-status exists as a sibling) would have closed the remaining loop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters already document their source (space_id via list-spaces, review_quote from inspect-documentation-update). The description's 'after authorization' and 'quoted review' reinforce the approval gate but add no new parameter-level detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('starts the quoted review' of a documentation update) and explicitly separates itself from inspect-documentation-update, which must run first. An agent can select this over the many generate-* siblings because the description names the quote-and-credit prerequisite that no other tool shares.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 trigger ('when the user explicitly asks to start... after inspecting its quote and credit impact'), an explicit exclusion ('does not accept changes'), and names where the excluded actions live ('change decisions, resume and end remain browser flows'). The alternative path is inspect-documentation-update, implied by the wording 'after inspecting its quote'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-ai-preferencesUpdate Ai Preferences ToolADestructiveInspect
Use this when the user wants to change AI writing guidelines, templates, strict mode, generator scope, or team enforcement. After authorization, this state-changing action updates personal or owner-managed team preferences; team-enforced settings can prevent member edits.
| Name | Required | Description | Default |
|---|---|---|---|
| template_text | No | Markdown template, max 12000 characters. | |
| guidelines_text | No | Text guidelines, max 4000 characters. | |
| strict_template | No | Strict template mode. | |
| enforce_for_team | No | Team-owner-only enforcement flag. | |
| use_team_settings | No | Preference scope to update: personal or team. Team scope requires owner authorization. | |
| apply_to_generators | No | GenerationType integer values. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description meaningfully adds to that: authorization is required, the action is state-changing, it touches personal or owner-managed team preferences, and team enforcement can prevent member edits. These are real behavioral facts beyond the annotation flags, though reversibility and partial-update semantics are unstated.
Agents need to know what a tool does to the 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 dense sentences with no filler. The triggering condition is front-loaded and the authorization/constraint caveat follows immediately, so an agent gets the essentials in the first read.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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, and with annotations covering the safety profile plus a fully documented schema, the remaining need is behavioral context — which the description supplies (authorization, scope, team enforcement). It is nearly complete; only update semantics such as what happens to unset fields are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each of the six parameters is already documented in the schema. The description echoes the parameter domains (templates, guidelines, strict mode, generator scope, enforcement) but adds no syntax, format, or interaction detail beyond them — the correct baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (update) and resource (AI preferences) and enumerates the mutable surface: guidelines, templates, strict mode, generator scope, team enforcement. It clearly distinguishes itself from read-oriented siblings, though it never names the obvious counterpart get-ai-preferences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this when the user wants to change...' gives a clear triggering condition, and it notes that team-enforced settings can block member edits. It stops short of explicitly routing the agent to get-ai-preferences for reads or stating 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.
update-generationRename GenerationAInspect
Use this when the user wants to rename an existing generated result. After authorization, this state-changing action updates the filename for the specified generation_id.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | New generation filename, up to 255 characters. | |
| generation_id | Yes | Generation ID to update. Call list-generations first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context: the action is state-changing and requires authorization first, and it scopes the mutation to the filename only — consistent with the non-destructive hint. It does not cover failure modes such as filename collisions or reversibility, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the usage trigger followed by the behavioral note. Nothing is wasted, though "this state-changing action updates the filename" is mildly redundant phrasing for what is simply a rename.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 rename with full schema coverage and no output schema, the description supplies what an agent needs: the trigger, the authorization prerequisite, and the exact field being changed. It omits any note on error or conflict behavior, which is the only 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?
Schema description coverage is 100%, so both parameters (generation_id, filename) are already fully documented in the schema, including the 255-character limit and the instruction to call list-generations first. The description adds no format, validation, or constraint detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it renames an existing generated result by updating the filename for a generation_id. That cleanly separates it from get-generation, archive-generation, restore-generation, and set-generation-definitive-version. It stops short of explicitly naming a sibling to contrast against, so it lands at a solid 4 rather than 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?
"Use this when the user wants to rename an existing generated result" gives an explicit triggering condition, which is more than implied usage. It provides no when-not guidance (e.g., use archive-generation to retire a result) and no mention of alternatives among the many sibling generation tools, so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-spaceUpdate Space ToolADestructiveInspect
Use this when the user wants to rename a Space, edit its description, make it public/private, publish/unpublish it, or change its public slug. State-changing: updates manageable Space settings after authorization; changing visibility can expose or remove its contents from public access. Requires numeric space_id from list-spaces.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New Space name when the user wants to rename the Space. | |
| slug | No | Public slug to use when the Space is published or made public. | |
| space_id | Yes | Numeric Space ID to update. Use list-spaces first when the user gives a Space name. | |
| is_public | No | Public visibility flag. | |
| description | No | New Space description. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the safety profile is known. The description adds real value beyond that by labeling it state-changing, requiring authorization, and spelling out the concrete consequence that a visibility change "can expose or remove its contents from public access." It stops short of reversibility or partial-update 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?
Front-loaded with the trigger condition, then the behavioral warning, then the prerequisite. No filler sentences, though the long enumeration in the first clause is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 state-changing tool with no output schema but full annotations, the description covers trigger, prerequisite, and the destructive consequence of visibility changes. An agent could call it correctly; only edge details like reversibility or partial-update semantics are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes further by mapping parameters to user intents (rename → name, edit description → description, public/private → is_public, slug) and by telling the agent where space_id comes from, which the schema only partly conveys.
Input schemas describe structure but not intent. Descriptions should explain 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 (update) and resource (Space) and enumerates exactly which settings are mutable: rename, description, public/private, publish/unpublish, slug. This clearly separates it from siblings like create-space, delete-space, update-space-document, and update-space-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?
It gives an explicit trigger ("Use this when the user wants to rename a Space, edit its description...") plus a prerequisite ("Requires numeric space_id from list-spaces"). However, it never names alternatives or exclusion conditions, e.g. that document/item edits belong to update-space-document or update-space-item.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-space-documentUpdate Space Document ToolADestructiveIdempotentInspect
Use this when the user wants to replace or update the markdown content/title of an existing Space document. State-changing and content-destructive: writes the new document content directly after authorization, including in a public Space where the result is publicly accessible. Read the document first when preserving existing content matters.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | The type of content being provided (blank or markdown) | |
| title | No | The new title of the document | |
| content | No | The new content of the document (markdown or plain text) | |
| space_id | Yes | The numeric ID of the space containing the document. Call list-spaces first. | |
| parent_id | No | The numeric ID of the parent folder (null to move to root) | |
| document_id | Yes | The numeric ID of the document to update |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false, but the description adds genuinely new context: writes happen directly after authorization, updates to a public Space become publicly visible, and full replacement means existing content is overwritten unless read first. It does not address partial-update behavior (e.g., what happens to content if only title is supplied) or failure modes, keeping it out of the top band.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct information: trigger, risk profile, and prerequisite. The destructive warning is front-loaded right after the purpose statement, and there is no redundant restatement of the 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 destructive mutation with no output schema, the description supplies the essentials an agent needs: it is a full replacement, it is publicly visible in public Spaces, and reading first is advised. The only meaningful gap is whether omitting content/title leaves those fields untouched or clears them, which affects how the agent constructs a safe call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including parent_id and type is already documented in structured form. The description only reinforces the title/content semantics and adds nothing about type, parent_id, or the move-to-root behavior, so it matches the baseline for fully-covered schemas.
Input schemas describe structure but not intent. Descriptions should explain 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 pair (replace/update) and resource (existing Space document) plus the affected fields (markdown content/title). This clearly separates it from create-space-document and update-space-item without requiring the agent 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?
"Use this when the user wants to replace or update..." gives a clear trigger condition, and "Read the document first when preserving existing content matters" points at the correct prerequisite (get-space-document). No explicit when-not or named alternative is given for cases like creating a new document, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-space-itemUpdate Space Item ToolADestructiveInspect
Use this when the user wants to rename or edit a Space page/document, folder, or external link, including markdown, URL, or parent folder. Destructive state-changing action: overwrites selected fields after the MCP client authorizes the call; content may appear in a public Space. Requires numeric space_id and item_id from list-space-documents.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | New title when the user wants to rename the Space item. | |
| content | No | New markdown content for page items. | |
| item_id | Yes | Numeric Space item ID for the page, folder, or external link to update. | |
| space_id | Yes | Numeric Space ID containing the item to update. Use list-spaces/list-space-documents first when needed. | |
| parent_id | No | New parent folder ID. | |
| external_url | No | New URL for external links. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true/openWorldHint=true, and the description adds genuinely new behavioral context: it is a field-selective overwrite ("overwrites selected fields"), it depends on MCP client authorization, and edited content "may appear in a public Space." The public-visibility warning is the kind of consequence annotations cannot express. It stops short of saying what happens to unprovided fields versus null-valued fields, which matters for a partial-update tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the trigger, then the risk and prerequisite. Every clause carries information: scope, destructive/overwrite semantics, auth dependency, public exposure, required IDs. 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 mutation tool with no output schema and full annotation coverage, the description supplies trigger, risk, visibility consequence, and ID provenance. What remains thin is update-idempotency/behavior on omitted or null fields, which is relevant given several nullable parameters, but the annotation-plus-description pair is close to sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all six parameters including the list-spaces/list-space-documents provenance note. The description's "Requires numeric space_id and item_id from list-space-documents" largely restates that schema text, so it adds little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb-plus-resource: "rename or edit a Space page/document, folder, or external link," and it enumerates the mutable surfaces (markdown, URL, parent folder). It is clear what the tool does, but it never distinguishes itself from the very similar sibling `update-space-document` or from `move-space-item` (which the parent_folder scope overlaps).
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a rough trigger ("when the user wants to rename or edit") and a prerequisite (IDs come from list-space-documents), which is real usage guidance. However, with ~15 space-mutation siblings in the list and a near-duplicate `update-space-document`, the absence of any when-not or alternative-selection rule leaves the agent to guess between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-space-repository-linkUpdate Space Repository Link ToolADestructiveInspect
Use this when the user wants to change an existing Space Autopilot repository link. After authorization, this state-changing external action updates its branch, triggers, path filters, AI context, notifications, or auto-apply settings and requires Enterprise access.
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | Repository branch name that Autopilot should monitor after the update. | |
| link_id | Yes | Numeric repository link ID to update. Use list-space-repository-links first when needed. | |
| space_id | Yes | Numeric Space ID containing the Autopilot repository link to update. | |
| path_filters | No | Optional path filters. | |
| trigger_events | No | push and/or pr_merge. | |
| auto_apply_enabled | No | Enterprise auto-apply flag. | |
| ai_context_instructions | No | Optional AI instructions. | |
| auto_apply_threshold_pct | No | Auto-apply threshold percent from 95 to 100. | |
| notify_on_new_suggestions | No | Email notification flag. | |
| notification_channels_input | No | Notification channel settings. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered; the description adds real value on top by flagging that authorization is required and that the action needs Enterprise access. It does not, however, disclose what a destructive update can overwrite or whether unspecified fields are preserved, which is the one behavioral fact an agent still needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the when-to-use trigger front-loaded and the behavioral caveats second. The second sentence is dense but each clause (authorization, state-changing, field scope, Enterprise gating) carries information an agent would otherwise have to infer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 10-parameter, destructive, nested-object mutation with no output schema, the description covers trigger, auth, and field scope but omits partial-vs-full update semantics and the effect on existing settings. Since annotations carry the safety signal and the schema fully documents parameters, 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 100% and each of the 10 parameters is documented in-schema, so the baseline is 3. The description's field list largely restates the schema (branch, triggers, path filters, notifications, auto-apply) and adds no format, range, or default detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('change an existing Space Autopilot repository link') and enumerates the mutable fields (branch, triggers, path filters, AI context, notifications, auto-apply). The word 'existing' plus 'change' cleanly separates it from create-space-repository-link, delete-space-repository-link, enable-space-repository-link, and disable-space-repository-link without needing the 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?
'Use this when the user wants to change an existing Space Autopilot repository link' is an explicit trigger condition, and the Enterprise-access note acts as a prerequisite gate. It stops short of naming alternatives (e.g. use create- for new links, list-space-repository-links to resolve link_id), so it is clear context rather than full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-team-member-roleUpdate Team Member Role ToolADestructiveInspect
Use this when the user wants to change an existing teammate between configured editor and viewer roles. Destructive state-changing action: after authorization, updates the specified member_id and may revoke that teammate's editing permissions; the team owner role cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | Configured destination role key, usually editor or viewer. Use list-team-members first to inspect available_roles. | |
| member_id | Yes | Numeric user/member ID whose role should change. Use list-team-members first when the user gives a name or email. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the destructiveHint=true annotation by disclosing the authorization prerequisite, the concrete consequence ('may revoke that teammate's editing permissions'), and the owner-role immutability constraint. It does not cover reversibility or error/partial-failure behavior, but the added context is substantive.
Agents need to know what a tool does to the 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 primary use case front-loaded and the destructive/constraint caveats following immediately. Every clause carries distinct 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 mutation with no output schema, the description covers purpose, when-to-use, authorization, consequences, and the key constraint. The remaining minor gap is what a successful response returns, which is acceptable given no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are documented in-schema, giving a baseline of 3. The description adds value beyond the schema with the 'team owner role cannot be changed' constraint, which qualifies valid member_id/role combinations, though it adds nothing about member_id format or resolution.
Input schemas describe structure but not intent. Descriptions should explain 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 (change) and resource (an existing teammate's role), with the concrete value space (editor/viewer). This clearly distinguishes it from sibling tools like invite-team-member, remove-team-member, and list-team-members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says when to use it: 'when the user wants to change an existing teammate between configured editor and viewer roles.' The 'existing teammate' framing implicitly excludes invitations and removals, but no alternative tool is named as a routing fallback (e.g., for adding or removing members).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update-webhook-subscriptionUpdate Webhook Subscription ToolADestructiveInspect
Use this when the user wants to change a webhook endpoint URL, subscribed events, active/inactive status, or metadata. State-changing external action: updates the owned webhook subscription after authorization. Requires subscription_id from list-webhook-subscriptions; use list-webhook-events for valid keys.
| Name | Required | Description | Default |
|---|---|---|---|
| events | No | Event keys from list-webhook-events. | |
| metadata | No | Optional metadata object to replace or store with the webhook subscription. | |
| is_active | No | Whether the subscription is active. | |
| webhook_url | No | HTTP/HTTPS webhook endpoint. | |
| subscription_id | Yes | Webhook subscription ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is partly covered, but the description adds real value by flagging an authorization requirement and that only the "owned" subscription is affected. It does not explain consequences for fields omitted from a call, which is the main remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences with the trigger condition front-loaded and no filler. Slightly dense/telegraphic at the end ("use list-webhook-events for valid keys"), but every sentence 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 5-parameter mutation tool with no output schema, the description covers trigger, prerequisites, authorization, and external side effects. Given annotations carry the destructive/open-world profile, what remains missing (merge-vs-replace semantics for nested metadata, error behavior) is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3; the description goes beyond it by telling the agent where parameter values must be sourced (subscription_id from list-webhook-subscriptions, events from list-webhook-events). It restates the field list rather than adding format detail, so it stops short of a 5.
Input schemas describe structure but not intent. Descriptions should explain 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 (updates) and resource (owned webhook subscription) and enumerates exactly what can be changed: endpoint URL, subscribed events, active status, metadata. It is clearly distinguishable from create-/delete-/list-webhook-subscription siblings, though it never explicitly states what it is not for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger condition ("Use this when the user wants to change...") and names prerequisites, stating subscription_id must come from list-webhook-subscriptions and event keys from list-webhook-events. No explicit when-not guidance, but the context is clear enough to route correctly.
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.
3 tool updates
- Added
get-documentation-update-status - Added
inspect-documentation-update - Added
start-documentation-update
1 tool update
- Changed
search-docuwriter-platform-docs1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"A 2-500 character question or topic about using the DocuWriter.ai platform, such as Spaces, Full Tree Documentation, or Autopilot."New value: +"A 2-500 character question or topic about DocuWriter.ai, such as linked Spaces, Full Tree Documentation, Autopilot, API authentication, or CLI Markdown imports."
3 tool updates
- Removed
get-workspace-suggestion - Removed
open-documentation-workspace - Added
search-documentation-mentions
2 tool updates
- Added
get-workspace-suggestion - Added
open-documentation-workspace
2 tool updates
- Changed
generate-code-documentation1 field changed- changed
Input schema / properties / documentation_type / descriptionPrevious value: -"Free-text style hint for this single document, e.g. 'API Reference', 'Tutorial', 'General Documentation' (the default). This is NOT a Space's full-tree documentation audience — any string is accepted and passed to the prompt as-is."New value: +"Free-text style hint for this single document, e.g. 'API Reference', 'Tutorial', 'General Documentation' (the default). This is not a Space's full-tree documentation audience; the hint is included in the generation instructions."
- Added
search-docuwriter-platform-docs
57 tool updates
- Added
add-generation-to-space - Added
apply-space-suggestion - Added
archive-generation - Added
bulk-manage-space-suggestions - Added
cancel-team-invitation - Added
copy-space-item - Added
count-space-suggestions - Added
create-generation-share-link - Added
create-space-document - Added
create-space-item - Added
create-space-item-share-link - Added
create-space-repository-link - Added
create-webhook-subscription - Added
delete-space-document - Added
delete-space-items - Added
delete-space-repository-link - Added
delete-webhook-subscription - Added
disable-space-repository-link - Added
discard-space-suggestion - Added
enable-space-repository-link - Added
export-space-items-markdown - Added
generate-and-add-documentation - Added
generate-codebase-documentation - Added
generate-full-tree-documentation - Added
generate-repository-documentation - Added
generate-repository-readme - Added
generate-repository-release-notes - Added
get-ai-preferences - Added
get-full-tree-documentation-preview - Added
get-generation - Added
get-space-activity-log - Added
get-space-document - Added
invite-team-member - Added
list-generations - Added
list-generators - Added
list-provider-connections - Added
list-provider-repositories - Added
list-space-repository-links - Added
list-space-suggestions - Added
list-team-members - Added
list-webhook-events - Added
list-webhook-logs - Added
list-webhook-subscriptions - Added
move-space-item - Added
remove-team-member - Added
report-feedback - Added
restore-generation - Added
revoke-provider-connection - Added
set-generation-definitive-version - Added
snooze-space-suggestion - Added
update-ai-preferences - Added
update-generation - Added
update-space-document - Added
update-space-item - Added
update-space-repository-link - Added
update-team-member-role - Added
update-webhook-subscription
15 tool updates
- First observed
create-space - First observed
delete-space - First observed
generate-code-comments - First observed
generate-code-documentation - First observed
generate-code-optimization - First observed
generate-code-tests - First observed
generate-language-conversion - First observed
generate-swagger-api - First observed
generate-uml-diagram - First observed
get-user-info - First observed
global-search - First observed
list-space-documents - First observed
list-spaces - First observed
search-space-documents - First observed
update-space
Publisher details
- Operator
- DocuWriter.ai
- Operator website
- https://www.docuwriter.ai/
- Vendor relationship
- Not applicable
- Trust center
- https://trust.docuwriter.ai/
- Restrictions
- Not applicable
Related MCP Connectors
Audit and repair any public GitHub repo. Free survey; paid source, unified diffs and a pull request.
30+ deterministic dev and delivery tools: linting, metrics, diagrams, model advice, AI-text checks.
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Related MCP Servers
- AlicenseAqualityBmaintenanceGenerates professional documentation for multi-language codebases with deep AST-based code analysis, supporting Docusaurus, MkDocs, and Sphinx frameworks. Includes API documentation generation, PDF export, OpenAPI spec generation, and sales-ready documentation for code marketplaces.9MIT
- AlicenseAqualityBmaintenanceGenerates professional documentation for multi-language projects with deep code analysis, supporting frameworks like Docusaurus, MkDocs, and Sphinx, including API docs, PDF export, and OpenAPI specifications.9MIT
- AlicenseNot gradedqualityDmaintenanceAnalyzes codebases to automatically generate README, API docs, architecture diagrams, and CHANGELOG.10 npmMIT
- AlicenseNot gradedqualityDmaintenanceGenerates comprehensive documentation (architecture overview, dependency graph, API surface, and README) for any codebase locally without external APIs.8 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.