Skip to main content
Glama

Server Details

Shared, versioned context that humans and AI agents can publish, review, annotate, and continue.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
44-pixels/handover-mcp
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 17 tools

Disambiguation3/5

Most tools are clearly scoped to distinct resources, but the comment/annotation family creates real overlap: annotate versus comment for writing feedback, and annotations versus thread for reading discussion state. The descriptions help, but an agent could still easily select the wrong tool in those workflows.

Naming Consistency4/5

All tools share a consistent handover.* prefix and snake_case style, with strong verb-led names like create, continue, publish, and search. A few noun-led read tools such as annotations, publication, and thread, plus the okf.* submodule, break the otherwise uniform pattern.

Tool Count4/5

With 17 tools, this is on the higher end, but the scope is broad: revision lifecycle, artifact reading, comment and annotation workflows, publication, search, and OKF interchange. Each tool has a recognizable role, so the count feels slightly over the ideal range rather than bloated.

Completeness5/5

The surface covers the full durable-handover lifecycle: create, continue, read, export, import, publish, search, and collaborate through comments and assignments. The immutability of revisions makes explicit update/delete tools unnecessary, and the continuation mechanism addresses evolution without creating gaps.

Available Tools

17 tools
handover.annotateAnnotate a handover artifactAInspect

Add a durable comment anchored to selected text or lines in an immutable artifact revision. Read the artifact first and preserve the exact quote and surrounding context.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesActionable annotation body in plain text or Markdown.
targetYesImmutable artifact location to anchor this annotation.
handoverIdYesHandover containing the artifact being annotated.
mentionPrincipalIdsNoCollaborator principal IDs to mention and notify.

TDQS

A4.4/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations by stating the comment is 'durable' and the revision is 'immutable', implying persistence and anchoring stability. It also instructs to preserve exact quote and context. Annotations are all false and do not contradict the description.

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

Conciseness5/5

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

Two sentences, front-loaded with the action, and no wasted words. It states the action and the key prerequisite in a compact format.

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

Completeness4/5

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

The tool has a complex nested target object, but the description gives essential guidance (read first, exact quote). It does not cover return values or error cases, but with no output schema and high schema coverage, that is not a significant gap.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds valuable meaning by saying to 'preserve the exact quote and surrounding context', which directly informs how to populate the target.selector fields. This goes beyond the schema's basic description.

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

Purpose5/5

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

The description uses a specific verb ('Add') and resource ('durable comment anchored to selected text or lines in an immutable artifact revision'). It clearly distinguishes from siblings like handover.comment by emphasizing the anchored/selected-text nature.

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

Usage Guidelines4/5

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

The instruction 'Read the artifact first' provides a clear prerequisite and context for use. However, it does not explicitly mention alternatives or when not to use this tool, 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.

handover.annotationsRead artifact annotationsA
Read-onlyIdempotent
Inspect

Read revision-anchored file comments, selected text, status, authorship, and resolution metadata. Use status=open to find feedback that still needs action.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo
artifactIdNo
handoverIdYesHandover whose annotation threads should be read.
revisionIdNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds useful context about what is read (revision-anchored metadata, authorship, resolution) and the semantics of the 'status=open' filter. No contradictions with annotations.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the core action and resource, and includes a practical tip. Every sentence earns its place with no redundancy or fluff.

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

Completeness4/5

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

Given the tool's moderate complexity (4 parameters, no output schema) and strong annotations, the description adequately covers purpose and provides a key usage scenario. It could mention more about what the response contains, but since no output schema exists, the description's current level is sufficient.

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

Parameters4/5

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

Schema coverage is only 25% (only handoverId has a description). The description compensates by explaining the use of 'status=open' and mentioning 'revision-anchored' which clarifies the revisionId parameter. 'File comments' and 'selected text' hint at the artifactId's role, adding meaningful parameter semantics.

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

Purpose5/5

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

The description uses a specific verb ('Read') and clearly defines the resource: 'revision-anchored file comments, selected text, status, authorship, and resolution metadata.' This distinguishes it from sibling tools like handover.read_artifact (likely reads artifact content) and handover.thread (likely reads thread context).

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

Usage Guidelines4/5

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

The description provides a concrete usage example: 'Use status=open to find feedback that still needs action.' This gives clear context for when to use the tool, but it does not explicitly mention alternative tools or when not to use it, stopping 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.

handover.assignSet handover ownersAInspect

Replace the open assignments with the supplied collaborator identities. This changes collaboration state, not the immutable handover revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
handoverIdYesHandover whose open assignments will be replaced.
principalIdsYesComplete replacement list of assigned collaborator principal IDs.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds transparency by stating that the action replaces assignments and affects only collaboration state, not the revision itself. This helps the agent understand the scope of side effects, which is valuable beyond the annotations.

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

Conciseness5/5

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

Two concise sentences, with the key action and object placed first. Every word adds value: the first sentence states the operation, the second clarifies the non-destructive scope. No filler or repetition.

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

Completeness5/5

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

For a tool with only two parameters and no output schema, the description fully captures the purpose, behavior, and scope. It answers the likely questions: what does it change, and what does it not change. No additional context is needed given the simplicity and the rich schema.

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

Parameters3/5

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

The input schema already has 100% description coverage: 'handoverId' and 'principalIds' are clearly explained with patterns and constraints. The description reinforces the replacement semantics but does not add new details about parameters 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.

Purpose5/5

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

The description uses the specific verb 'Replace' and clearly identifies the resource: 'the open assignments' with 'supplied collaborator identities.' It also establishes what the tool does NOT do ('not the immutable handover revision'), making its scope unambiguous and distinguishing it from other handover-related tools.

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

Usage Guidelines4/5

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

The description conveys the tool's effect and implies its use case: to set or update handover owners. It does not explicitly name alternative tools or exclusion criteria, but the distinction between the mutable collaboration state and the immutable revision provides practical guidance. A clear 'when to use' statement with sibling comparisons would elevate it to a 5.

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

handover.commentComment on a handoverAInspect

Append a discussion comment and optionally notify explicitly mentioned collaborators.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesComment body in plain text or Markdown.
handoverIdYesHandover discussion to append the comment to.
mentionPrincipalIdsNoCollaborator principal IDs to mention and notify.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, which aligns with the 'Append' action. The description adds the behavioral detail that it can optionally notify mentioned collaborators, which is not captured by annotations. However, it doesn't disclose other aspects like permission requirements, whether comments are immediately visible, 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.

Conciseness5/5

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

The description is a single concise sentence that front-loads the core action ('Append a discussion comment') and includes the optional mention behavior. There is no wasted text or redundancy.

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

Completeness4/5

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

Given the simplicity of the tool, the description, schema (100% coverage), and annotations provide adequate context. It states the primary action and the optional side effect. However, it does not describe the return value or success behavior, and there's no mention of whether the comment requires publication to appear.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (handoverId, body, mentionPrincipalIds) having a meaningful description. The tool description itself adds no additional parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Append' and identifies the resource as 'a discussion comment', which clearly distinguishes it from sibling tools like handover.update_comment (edit) and handover.annotate (annotate). It also mentions the optional notification behavior, making the purpose precise.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that handover.update_comment should be used for editing existing comments or that handover.thread retrieves the discussion. There are no explicit exclusions or contextual cues beyond the inherent meaning of 'append'.

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

handover.continueContinue a handoverAInspect

Append an immutable revision after reading the current snapshot. expectedRevisionId is mandatory to prevent overwriting another collaborator's work. Omitted artifacts are inherited; matching names are replaced.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoWhat changed or what the next collaborator should know.
briefNoUpdated structured continuation brief.
artifactsNoNew or replacement files; omitted files remain inherited.
handoverIdYesHandover to continue after reading its current snapshot.
expectedRevisionIdYesCurrent revision ID returned by handover.get; prevents lost updates.

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only indicate non-read-only and non-idempotent, which is thin. The description adds crucial behavioral details: revisions are immutable, expectedRevisionId prevents overwriting, and artifact semantics are inherited/replaced. This goes well beyond what annotations provide.

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

Conciseness5/5

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

Three focused sentences with no filler. The first sentence gives the core action, the second explains the critical guard, and the third clarifies artifact inheritance.

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

Completeness5/5

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

For a 5-param mutating tool with nested objects, the description covers the essential semantics: append, concurrency, artifact behavior. The schema handles parameter details, and no output schema exists, so return values aren't required. This is sufficient for correct selection and invocation.

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

Parameters4/5

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

Schema covers all parameters, so baseline 3. The description adds rationale for expectedRevisionId and explains artifact merging behavior, which enriches the schema's technical descriptions.

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

Purpose5/5

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

The description clearly states the action (append), the resource (immutable revision to a handover), and the required prerequisite (reading the current snapshot). It distinguishes itself from sibling tools like handover.create by emphasizing continuation and concurrency protection.

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

Usage Guidelines4/5

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

It explicitly instructs that the tool is used after reading the current snapshot, and explains the purpose of expectedRevisionId as a lock against lost updates. While it doesn't name alternative tools, the workflow is clear enough for an agent to choose it appropriately.

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

handover.createCreate a handoverAInspect

Create durable shared context with an initial immutable revision. Authorship comes from the authenticated Handover identity.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoFree-form continuation note recorded in the initial revision.
briefNoStructured continuation brief for humans and agents.
titleYesShort, specific name for the durable context.
summaryNoConcise explanation of what this handover contains.
artifactsNoFiles attached to the initial immutable revision.

TDQS

A3.9/5.0
Behavior4/5

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

The annotations are all false, providing little positive safety info. The description adds useful behavioral context: the initial revision is immutable, and authorship comes from the authenticated Handover identity, which is not captured in annotations. It does not mention failure modes, but covers key behavioral traits beyond 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.

Conciseness5/5

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

The description is two dense sentences, front-loaded with the action. Every word contributes meaning; no redundancy or filler.

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

Completeness3/5

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

The schema is complex with nested objects and anyOf conditions, but the description is brief. It does not mention the return value (no output schema), the requirement to provide note/brief/artifacts, or how this tool relates to other handover operations. While adequate, it leaves gaps in an otherwise complex tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters in detail. The tool description does not add extra parameter guidance, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (Create) and resource (durable shared context), and adds the distinctive 'initial immutable revision' aspect, which differentiates it from sibling tools like handover.continue or handover.publish.

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

Usage Guidelines3/5

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

The description implies you should use this tool to create a new handover context, but it does not explicitly say when to use it versus alternatives such as handover.continue or handover.publish. It also lacks exclusion criteria or alternative recommendations.

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

handover.getInspect a handoverA
Read-onlyIdempotent
Inspect

Read a handover snapshot, continuation brief, artifact metadata, and revision history. Omit revisionId for the current snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
handoverIdYesHandover identifier returned by handover.search or handover.create.
revisionIdNoOptional immutable revision; omit to inspect the current revision.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds value by specifying exactly what data is read (snapshot, continuation brief, artifact metadata, revision history), which is meaningful behavioral context beyond the annotations.

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

Conciseness5/5

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

The description is a single, focused sentence that front-loads the core action ('Read a handover snapshot...') and provides a necessary usage hint. Every word earns its place, with no fluff or repetition.

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

Completeness4/5

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

With only two parameters and no output schema, the description is quite complete by listing the four returned components (snapshot, continuation brief, artifact metadata, revision history). It could be improved by explaining what a 'continuation brief' is, but for a simple get operation this is sufficient.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters having clear descriptions. The description's instruction to omit revisionId for the current snapshot largely repeats the schema's 'omit to inspect the current revision.' Thus, the description adds minimal semantic value beyond the schema.

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

Purpose5/5

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

The description uses a specific verb 'Read' and lists concrete resources: snapshot, continuation brief, artifact metadata, and revision history. This clearly distinguishes it from sibling tools like handover.search (searching) and handover.read_artifact (reading a specific artifact).

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

Usage Guidelines3/5

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

The description implies the tool is for inspecting handover details but does not explicitly contrast with alternatives like handover.search or handover.read_artifact. It gives a practical tip about omitting revisionId, which helps with parameter usage but not tool selection.

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

handover.okf.exportExport a handover as OKFB
Read-onlyIdempotent
Inspect

Export a handover revision as an Open Knowledge Format bundle for another human or agent system.

ParametersJSON Schema
NameRequiredDescriptionDefault
handoverIdYesHandover to export.
revisionIdNoImmutable revision to export; defaults to the current revision.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description needs less safety disclosure. It adds minimal behavioral context about the output format and recipient but does not contradict annotations. No mention of side effects or return behavior, but annotations cover the critical operational safety.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently communicates the verb, resource, and output format. No extra words or redundant details are present.

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

Completeness4/5

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

Given the low complexity and rich annotations, the description is mostly complete. The main gap is that with no output schema, it doesn't clarify what the returned bundle looks like or how it is delivered to the caller, though the name 'OKF bundle' gives a basic indication.

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

Parameters3/5

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

Schema coverage is 100% with both parameters (`handoverId` and `revisionId`) having descriptions, including the default behavior for `revisionId`. The tool description adds no additional parameter-level information, 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.

Purpose4/5

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

The description clearly states the tool exports a handover revision as an Open Knowledge Format bundle, giving a specific verb and resource. However, it does not differentiate from the sibling `handover.export`, so it misses the higher distinction bar.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like `handover.export` or `export_okf`. The description only indicates the action and recipient, lacking any contextual comparison or exclusion.

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

handover.okf.importImport an OKF bundleBInspect

Import Open Knowledge Format files into a new immutable Handover revision. Replaying the same bundle is idempotent.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoMerge bundle files with inherited artifacts or replace them.merge
filesYesFiles from an Open Knowledge Format bundle.
handoverIdYesExisting handover that will receive the imported bundle.
expectedRevisionIdNoCurrent revision ID used to prevent conflicting imports.

TDQS

B3/5.0
Behavior1/5

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

The description claims 'Replaying the same bundle is idempotent,' but the annotations declare idempotentHint=false. This is a direct contradiction. No additional behavioral context about permissions, error handling, or side effects is provided.

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

Conciseness5/5

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

Two concise sentences with no unnecessary words. Information is front-loaded and easy to parse.

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

Completeness2/5

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

Although the schema is complete, the tool is a mutation with no output schema and the description omits usage guidance, potential errors, and conflict-handling behavior. The idempotency contradiction further reduces completeness and trustworthiness.

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

Parameters3/5

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

The schema provides 100% coverage with detailed parameter descriptions, so the baseline is 3. The description adds minimal value beyond schema, only linking handoverId to the concept of an immutable revision.

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

Purpose5/5

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

The description clearly states the verb (Import), the resource (Open Knowledge Format files), and the destination (a new immutable Handover revision). It distinguishes from sibling tools like export_okf and handover.okf.export by focusing on import into Handover.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as import_okf or handover.okf.export. The description lacks any context about prerequisites, exclusions, or typical scenarios.

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

handover.publicationInspect a published reportA
Read-onlyIdempotent
Inspect

Read the stable report URL, entry file, access mode, and selected revision for a handover.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoStable published report slug.
handoverIdNoHandover whose publication should be inspected.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds value by listing the specific publication attributes returned (stable report URL, entry file, access mode, selected revision), which goes beyond what annotations convey. No contradiction exists.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that uses the active verb 'Read' and enumerates concrete items. There is no filler or redundancy; every word contributes meaning.

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

Completeness5/5

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

Despite having no output schema, the description enumerates the return values. Annotations cover operational safety, and the schema covers parameter requirements. For a simple read tool, this is complete and self-contained.

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

Parameters3/5

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

Schema description coverage is 100% for both parameters, so the schema fully explains slug and handoverId. The description does not add further parameter-level meaning beyond what the schema already states, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Read' and explicitly names the resource ('publication') and the data items (stable report URL, entry file, access mode, selected revision). This clearly distinguishes it from sibling tools like handover.get (general handover info) or handover.publish (creating a publication).

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

Usage Guidelines4/5

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

The description provides clear context by stating what the tool reads, making it obvious it is for inspecting publication details. However, it does not explicitly name alternatives or exclusion criteria, so it falls short of a 5. The context is sufficient for an agent to infer when to use it.

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

handover.publishPublish a handover as a reportAInspect

Create or update a stable /r/{slug}/ report projection of a Handover revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoStable URL slug; generated from the title when omitted.
accessNoWho can open the report URL.
entryPathNoArtifact path opened first when readers visit the report.
handoverIdYesHandover to project as a stable report.
revisionIdNoRevision to pin; used when revisionMode is pinned.
revisionModeNoFollow new revisions automatically or keep one revision pinned.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description adds only modest behavioral context: 'Create or update' signals upsert semantics, and 'stable /r/{slug}/' suggests a persistent URL. However, it does not disclose details like authorization requirements, side effects on existing content, or behavior when called repeatedly, beyond what annotations imply.

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

Conciseness5/5

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

The description is a single, well-structured sentence that leads with the primary action and resource. It is concise with no filler or repetition, effectively conveying the tool's essence without wasting words.

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

Completeness4/5

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

Given the tool complexity (6 parameters, 2 with enums) and the absence of an output schema, the description provides the core business context but relies heavily on the schema to fill in parameter interactions. It explains the purpose and URL structure sufficiently, and the schema covers parameter semantics, so no critical gaps exist for a tool of this scope. A slightly richer description (e.g., typical use case) would earn a 5.

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

Parameters3/5

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

The input schema has 100% coverage with descriptive parameter explanations (e.g., slug, revisionMode, access). The description adds the URL pattern /r/{slug}/ which complements the slug parameter, but overall it does not materially add meaning beyond the schema. It meets the baseline for high schema coverage without going further.

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

Purpose5/5

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

The description clearly states the action: 'Create or update a stable /r/{slug}/ report projection of a Handover revision.' It identifies the resource (Handover revision), the output (stable report projection), and the URL format. This distinguishes it from sibling tools like handover.export or handover.publication by focusing on creating/updating a persistent report view.

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

Usage Guidelines3/5

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

The description implicitly conveys that this tool is for publishing a handover as a report but provides no explicit when-to-use or when-not-to-use guidance, nor does it name alternatives. For example, it does not compare this to handover.export or other publication-related tools. The usage context is inferred rather than stated.

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

handover.pullPull a published reportB
Read-onlyIdempotent
Inspect

Return the selected files of a published report with paths, hashes, media types, and UTF-8 or base64 content.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesStable published report slug.
filesNoOptional relative paths to return; omit for every file.
includeBinaryNoReturn binary files as base64 when true.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful output details (paths, hashes, media types, UTF-8/base64 content), but it does not disclose behavior such as what happens with binary files when includeBinary is false, or any limits. It is consistent with annotations, but not rich in behavioral context.

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

Conciseness5/5

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

The description is one concise sentence that front-loads the primary action and return content. Every word adds value, and there is no fluff or repetition of schema details. It is appropriately sized for the tool's simplicity.

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

Completeness4/5

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

Given the tool's low complexity, strong annotations, and full schema coverage, the description is largely complete. It explains return contents but does not explicitly state that omitting files returns all files or that binary content requires includeBinary=true; however, the schema provides these details. Sibling tools that might overlap are not addressed, so slightly incomplete for full context.

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

Parameters3/5

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

Schema description coverage is 100%, with detailed descriptions for slug, files, and includeBinary. The description adds little beyond the schema, merely mentioning 'selected files' and 'UTF-8 or base64' which already appear in the schema. Baseline 3 is appropriate because the schema carries the semantic load.

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

Purpose4/5

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

The description clearly states the tool returns selected files from a published report, including paths, hashes, media types, and content. It uses a specific verb (return) and resource (published report). However, it does not explicitly distinguish itself from sibling tools like handover.get or handover.read_artifact, so it lacks direct sibling differentiation.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or alternative tools. The usage context is only implied by the verb 'pull' and the resource 'published report', so an agent has no clear decision boundary.

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

handover.read_artifactRead a handover artifactA
Read-onlyIdempotent
Inspect

Read bounded artifact content after inspecting a handover. Text is returned as UTF-8 and binary content as base64; truncated results report that explicitly.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxBytesNoMaximum decoded bytes to return before reporting truncation.
artifactIdYesArtifact identifier returned by handover.get.

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide read-only, idempotent, non-destructive hints. The description adds valuable behavioral context: UTF-8 vs base64 encoding and explicit truncation reporting, going beyond what annotations and schema convey.

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

Conciseness5/5

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

Two concise sentences, front-loaded with purpose and immediately useful output details. No filler or redundancy.

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

Completeness4/5

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

For a simple read operation with robust annotations and complete schema, the description adequately covers output formats and truncation behavior. It lacks an output schema but partially compensates by describing returns, making it nearly complete.

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

Parameters3/5

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

Schema coverage is 100%, and both parameters are well-documented. The description adds minimal parameter-specific meaning; 'bounded' and 'truncated' indirectly reference maxBytes but do not elaborate on artifactId usage.

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

Purpose4/5

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

The description clearly states the action (read) and resource (bounded artifact content) with specific output details. It distinguishes itself from siblings like handover.get by focusing on content reading, though it does not explicitly name alternatives.

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

Usage Guidelines4/5

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

It gives clear sequencing guidance ('after inspecting a handover') and explains how text/binary content is handled. No explicit exclusions or alternative tool references, but the context is sufficient for basic use.

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

handover.searchSearch handoversA
Read-onlyIdempotent
Inspect

Find current shared context with hybrid, semantic, or lexical retrieval across metadata and artifact content. Use an empty query to list recent handovers.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNohybrid
limitNo
queryNo
cursorNo
statusNoactive

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully covering the safety profile for a search/read operation. The description adds the retrieval-mode behavior (hybrid/semantic/lexical across metadata and artifact content) which is useful. No mention of result ordering, pagination behavior, or status filtering, but with strong annotations the burden is lower. Description aligns with annotations; no contradiction.

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

Conciseness4/5

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

Two sentences, both substantive. The first defines scope, the second gives a concrete usage tip. No filler or redundancy. Front-loaded with the core purpose. Could arguably mention pagination or result format but remains efficient.

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

Completeness3/5

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

For a search tool with no output schema and 5 parameters at 0% schema coverage, the description provides the core purpose and one usage pattern but doesn't explain cursor-based pagination, status semantics, or result ordering/format. A read-only search tool with idempotent hints is relatively low-risk, so the gaps are moderate rather than severe. Adequate but with room to explain parameter behavior.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the full burden for parameter meaning. The description explains mode behavior somewhat ('hybrid, semantic, or lexical retrieval') and implies query usage via the empty-query note, but doesn't explain what 'active/archived/trashed' status means, how limit behaves, or what cursor pagination returns. The enum values for mode are inherently self-explanatory, partially compensating. Marginal value added beyond the schema; 3 is baseline despite low coverage.

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

Purpose4/5

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

Description states a specific verb ('find') and resource ('current shared context') with clear scope: retrieval across metadata and artifact content, supporting hybrid/semantic/lexical modes. It distinguishes itself somewhat from handover.get (which fetches a specific handover) but doesn't explicitly name the alternative. The 'empty query to list recent handovers' clarifies a key behavior.

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

Usage Guidelines4/5

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

The description clarifies that an empty query lists recent handovers, giving concrete guidance on a common usage pattern. It implies when to use search (when you need to find/relevance-rank context) vs get (exact ID), but doesn't explicitly state when NOT to use it or name sibling alternatives. Reasonable context provided, no exclusions.

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

handover.threadRead a handover discussionA
Read-onlyIdempotent
Inspect

Read comments, explicit mentions, assignments, and eligible collaborators without changing revision history.

ParametersJSON Schema
NameRequiredDescriptionDefault
handoverIdYesHandover whose discussion and assignments should be read.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds contextual value by noting 'without changing revision history,' which clarifies a specific side-effect the tool avoids. However, it does not disclose other behaviors like pagination, error handling, or access requirements, so some transparency gap remains.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the action ('Read') and lists the objects being read. Every word earns its place, with no redundant fluff. It is appropriately sized for the tool's simplicity.

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

Completeness4/5

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

While there is no output schema, the description clearly enumerates what will be returned (comments, explicit mentions, assignments, eligible collaborators). Given the low complexity, complete schema, and strong annotations, this is nearly sufficient. However, it lacks details on output structure (e.g., whether it's a list, ordering) and has a slightly ambiguous term 'eligible collaborators,' leaving a small completeness gap.

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

Parameters3/5

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

The schema provides 100% coverage with a clear description for the single parameter 'handoverId' (including a pattern). The tool description adds no additional parameter meaning, but the schema already fully documents the parameter. Baseline for high schema coverage is 3, and the description does not enhance it further.

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

Purpose5/5

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

The description starts with the verb 'Read' and specifies the exact content: comments, explicit mentions, assignments, and eligible collaborators. This clearly distinguishes it from sibling tools like handover.comment (which likely writes) and handover.get (which may return handover metadata). The qualifier 'without changing revision history' reinforces its read-only nature.

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

Usage Guidelines3/5

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

The description implies its usage by stating what it reads, but it does not explicitly say when to use this over alternatives such as handover.get or handover.search. There is no mention of exclusions or prerequisites, so the usage context is implied rather than clearly guided.

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

handover.update_commentEdit or resolve a commentAInspect

Edit an authored comment, or resolve/reopen an annotation. Set resolvedRevisionId when a new handover revision addressed the feedback.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoReplacement comment body; omit to preserve the current body.
statusNoOpen, resolve, or reopen the feedback thread.
targetNoReplacement annotation target, or null to remove the anchor.
commentIdYesComment or annotation to edit, resolve, or reopen.
handoverIdYesHandover containing the comment.
resolvedRevisionIdNoRevision that addressed the feedback, or null when reopening.
mentionPrincipalIdsNoReplacement collaborator mentions.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already convey readOnly=false and destructiveHint=false. The description adds meaningful context beyond annotations by mentioning the two actions (edit vs resolve/reopen) and the resolvedRevisionId condition, which clarifies the effect of the operation without contradicting the annotations.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the primary purpose, and the second sentence adds a targeted usage hint. No extra words or redundant information.

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

Completeness4/5

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

The tool is moderately complex with 7 parameters, but the schema provides comprehensive detail. The description covers the core scenarios (edit and resolve/reopen) and the resolvedRevisionId behavior, which is sufficient given the rich schema. It does not mention all parameters, but they are well-documented in the schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description only repeats the resolvedRevisionId guidance already present in the schema, providing no additional parameter meaning beyond what the schema already documents.

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

Purpose5/5

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

The description uses specific verbs ('Edit', 'resolve/reopen') and clearly names the resource ('authored comment', 'annotation'), distinguishing it from siblings like handover.comment and handover.annotate. It also mentions the condition for setting resolvedRevisionId, providing a clear scope.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: editing an authored comment or resolving/reopening an annotation. It does not explicitly name sibling alternatives or exclusions, but the restriction to 'authored' comments and the specific actions imply appropriate usage.

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

handover.whoamiVerify the active identityA
Read-onlyIdempotent
Inspect

Return the authenticated person or service agent, organization, workspace, role, and granted scopes. Call this before reading or publishing to confirm attribution and tenancy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds value by disclosing what the tool exposes (auth details, tenancy info) and explaining that it confirms attribution and tenancy, going beyond the hint annotations. It doesn't describe auth failure behavior, but for a whoami read tool that's acceptable.

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

Conciseness5/5

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

Two sentences, zero filler. The first sentence enumerates the exact returned data, the second gives the actionable use case. Every word earns its place with no redundancy.

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

Completeness5/5

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

For a zero-parameter, no-output-schema read tool with strong annotations (readOnly, idempotent, non-destructive), this description is complete. It fully covers what the tool returns and when to call it. There's nothing meaningful missing for an agent to confidently select and invoke it.

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

Parameters4/5

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

Tool has 0 parameters, meeting the baseline of 4 for zero-parameter tools. There's no parameter burden to carry, and the description fully explains what the returned data represents, so no compensation for unknown params is needed.

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

Purpose5/5

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

Description uses a specific verb ('Return') with clear resource scope: 'authenticated person or service agent, organization, workspace, role, and granted scopes.' The tool name 'handover.whoami' is distinctive and unrelated to any sibling, and the description clearly establishes it as an identity/auth verification tool, separating it from the surrounding data-management siblings.

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

Usage Guidelines5/5

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

Description gives explicit when-to-use guidance: 'Call this before reading or publishing to confirm attribution and tenancy.' This provides clear actionable direction for the agent on when this tool should be invoked in a workflow, which is strong contextual framing.

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.

  1. 38 tool updates
    • Removedadd_to_backlog
    • Removedcreate_product
    • Removeddelete_backlog_item
    • Removeddelete_context
    • Removeddelete_product
    • Removeddelete_product_file
    • Removeddeploy_context
    • Removedexport_okf
    • Removedfind_assets
    • Removedget_context
    • Removedget_context_health
    • Removedget_context_history
    • Removedget_context_index
    • Removedget_product
    • Removedget_product_health
    • Removedget_product_history
    • Removedget_product_index
    • Removedhandover.destination.create
    • Removedhandover.export
    • Removedhandover.exports
    • Removedhandover.folders
    • Removedhandover.imports
    • Removedhandover.requests
    • Removedhandover.resources
    • Removedhandover.source.create
    • Removedhandover.source.run
    • Removedhandover.spaces
    • Removedimport_okf
    • Removedlist_backlog
    • Removedlist_contexts
    • Removedlist_products
    • Removedmanage_folders
    • Removedprocess_backlog
    • Removedpull_context
    • Removedread_product_file
    • Removedupdate_context
    • Removedupdate_product_knowledge
    • Removedupload_product_files
  2. 52 tool updates
    • Changedadd_to_backlog14 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / properties / content / description
        Added value: +"Request description; the first line becomes its title."
      • addedInput schema / properties / content / minLength
        Added value: +1
      • addedInput schema / properties / content / type
        Added value: +"string"
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / priority
        Added value: +{
        +  "default": "normal",
        +  "description": "Requested execution priority.",
        +  "enum": [
        +    "low",
        +    "normal",
        +    "high",
        +    "urgent"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / product_slug / description
        Added value: +"Optional product Space slug; defaults to the active workspace."
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "content"
        +]
    • Changedcreate_product13 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • addedInput schema / properties / description
        Added value: +{
        +  "description": "Optional explanation of the product Space scope.",
        +  "type": "string"
        +}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / name
        Added value: +{
        +  "description": "Human-readable product Space name.",
        +  "minLength": 1,
        +  "type": "string"
        +}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Optional stable URL-safe slug; generated from name when omitted."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "name"
        +]
    • Changeddelete_backlog_item12 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • addedInput schema / properties / id / description
        Added value: +"Request identifier returned by list_backlog."
      • addedInput schema / properties / id / pattern
        Added value: +"^req_"
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "id"
        +]
    • Changeddelete_context11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug to unpublish and trash."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changeddelete_product11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Slug of the empty product Space to delete."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changeddelete_product_file11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / path / description
        Added value: +"Exact relative file path returned by get_product or get_product_index."
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Product Space slug returned by list_products."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug",
        +  "path"
        +]
    • Changeddeploy_context13 fields changed
      • addedInput schema / properties / access / description
        Added value: +"Who can open the report."
      • addedInput schema / properties / content / description
        Added value: +"Single UTF-8 report file when files is not used."
      • addedInput schema / properties / content_filename / description
        Added value: +"Path assigned to content; defaults to index.html."
      • addedInput schema / properties / description / description
        Added value: +"Concise report summary."
      • addedInput schema / properties / entry_file / description
        Added value: +"File opened first when readers visit the report."
      • addedInput schema / properties / files / description
        Added value: +"Complete set of files in the report."
      • addedInput schema / properties / files / items / properties / content / description
        Added value: +"UTF-8 text, or base64 when encoding is base64."
      • addedInput schema / properties / files / items / properties / content_type / description
        Added value: +"IANA media type; inferred from path when omitted."
      • addedInput schema / properties / files / items / properties / encoding / default
        Added value: +"utf-8"
      • addedInput schema / properties / files / items / properties / encoding / description
        Added value: +"How content is encoded in this request."
      • addedInput schema / properties / files / items / properties / path / description
        Added value: +"Relative file path inside the published report."
      • addedInput schema / properties / name / description
        Added value: +"Published report title."
      • addedInput schema / properties / slug / description
        Added value: +"Stable URL slug; generated from name when omitted."
    • Changedexport_okf2 fields changed
      • addedInput schema / properties / revision_id / description
        Added value: +"Immutable revision to export; defaults to the publication revision."
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug."
    • Changedfind_assets13 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 20,
        +  "description": "Maximum number of matching assets to return.",
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Optional case-insensitive path, title, or description query.",
        +  "type": "string"
        +}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Product Space slug returned by list_products."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changedget_context1 field changed
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug from list_contexts."
    • Changedget_context_health11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug from list_contexts."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changedget_context_history11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug from list_contexts."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changedget_context_index11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug from list_contexts."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changedget_product11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Product Space slug returned by list_products."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changedget_product_health11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Product Space slug returned by list_products."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changedget_product_history11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Product Space slug returned by list_products."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changedget_product_index11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Product Space slug returned by list_products."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug"
        +]
    • Changedhandover.annotate12 fields changed
      • addedInput schema / properties / body / description
        Added value: +"Actionable annotation body in plain text or Markdown."
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover containing the artifact being annotated."
      • addedInput schema / properties / mentionPrincipalIds / description
        Added value: +"Collaborator principal IDs to mention and notify."
      • addedInput schema / properties / target / description
        Added value: +"Immutable artifact location to anchor this annotation."
      • addedInput schema / properties / target / properties / artifactId / description
        Added value: +"Artifact containing the selected text or code."
      • addedInput schema / properties / target / properties / revisionId / description
        Added value: +"Immutable revision containing the annotated artifact."
      • addedInput schema / properties / target / properties / selector / description
        Added value: +"Exact quote plus optional position and surrounding context."
      • addedInput schema / properties / target / properties / selector / properties / endLine / description
        Added value: +"Zero-based line where the selection ends."
      • addedInput schema / properties / target / properties / selector / properties / endOffset / description
        Added value: +"Zero-based character offset immediately after the selection."
      • addedInput schema / properties / target / properties / selector / properties / startLine / description
        Added value: +"Zero-based line where the selection starts."
      • addedInput schema / properties / target / properties / selector / properties / startOffset / description
        Added value: +"Zero-based character offset where the selection starts."
      • addedInput schema / properties / target / properties / targetKind / description
        Added value: +"Rendering context used to relocate and display the annotation."
    • Changedhandover.annotations1 field changed
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover whose annotation threads should be read."
    • Changedhandover.assign2 fields changed
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover whose open assignments will be replaced."
      • addedInput schema / properties / principalIds / description
        Added value: +"Complete replacement list of assigned collaborator principal IDs."
    • Changedhandover.comment3 fields changed
      • addedInput schema / properties / body / description
        Added value: +"Comment body in plain text or Markdown."
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover discussion to append the comment to."
      • addedInput schema / properties / mentionPrincipalIds / description
        Added value: +"Collaborator principal IDs to mention and notify."
    • Changedhandover.continue13 fields changed
      • addedInput schema / properties / artifacts / description
        Added value: +"New or replacement files; omitted files remain inherited."
      • addedInput schema / properties / brief / description
        Added value: +"Updated structured continuation brief."
      • addedInput schema / properties / brief / properties / currentState / description
        Added value: +"Verified state at the moment this revision is published."
      • addedInput schema / properties / brief / properties / decisions / description
        Added value: +"Decisions already made that successors should preserve."
      • addedInput schema / properties / brief / properties / nextSteps / description
        Added value: +"Concrete continuation steps for the receiving actor."
      • addedInput schema / properties / brief / properties / nextSteps / items / properties / id / description
        Added value: +"Optional stable identifier for this step."
      • addedInput schema / properties / brief / properties / nextSteps / items / properties / status / description
        Added value: +"Whether the step still needs action."
      • addedInput schema / properties / brief / properties / nextSteps / items / properties / text / description
        Added value: +"One actionable continuation step."
      • addedInput schema / properties / brief / properties / objective / description
        Added value: +"The outcome the next human or agent should continue toward."
      • addedInput schema / properties / brief / properties / openQuestions / description
        Added value: +"Unresolved questions that still require evidence or judgment."
      • addedInput schema / properties / expectedRevisionId / description
        Added value: +"Current revision ID returned by handover.get; prevents lost updates."
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover to continue after reading its current snapshot."
      • addedInput schema / properties / note / description
        Added value: +"What changed or what the next collaborator should know."
    • Changedhandover.create13 fields changed
      • addedInput schema / properties / artifacts / description
        Added value: +"Files attached to the initial immutable revision."
      • addedInput schema / properties / brief / description
        Added value: +"Structured continuation brief for humans and agents."
      • addedInput schema / properties / brief / properties / currentState / description
        Added value: +"Verified state at the moment this revision is published."
      • addedInput schema / properties / brief / properties / decisions / description
        Added value: +"Decisions already made that successors should preserve."
      • addedInput schema / properties / brief / properties / nextSteps / description
        Added value: +"Concrete continuation steps for the receiving actor."
      • addedInput schema / properties / brief / properties / nextSteps / items / properties / id / description
        Added value: +"Optional stable identifier for this step."
      • addedInput schema / properties / brief / properties / nextSteps / items / properties / status / description
        Added value: +"Whether the step still needs action."
      • addedInput schema / properties / brief / properties / nextSteps / items / properties / text / description
        Added value: +"One actionable continuation step."
      • addedInput schema / properties / brief / properties / objective / description
        Added value: +"The outcome the next human or agent should continue toward."
      • addedInput schema / properties / brief / properties / openQuestions / description
        Added value: +"Unresolved questions that still require evidence or judgment."
      • addedInput schema / properties / note / description
        Added value: +"Free-form continuation note recorded in the initial revision."
      • addedInput schema / properties / summary / description
        Added value: +"Concise explanation of what this handover contains."
      • addedInput schema / properties / title / description
        Added value: +"Short, specific name for the durable context."
    • Changedhandover.destination.create9 fields changed
      • addedInput schema / properties / basePath / description
        Added value: +"Repository folder under which exported handovers are written."
      • addedInput schema / properties / branch / description
        Added value: +"Git branch that receives exported revisions."
      • addedInput schema / properties / displayName / description
        Added value: +"Human-readable destination name shown to company owners."
      • addedInput schema / properties / owner / description
        Added value: +"GitHub repository owner; required when provider is github."
      • addedInput schema / properties / provider / description
        Added value: +"External delivery type."
      • addedInput schema / properties / repository / description
        Added value: +"GitHub repository name; required when provider is github."
      • addedInput schema / properties / secretEnv / description
        Added value: +"Runtime variable containing the webhook signing secret; the secret value is never tool input."
      • addedInput schema / properties / url / description
        Added value: +"HTTPS webhook URL; required when provider is http."
      • addedInput schema / properties / workspaceId / description
        Added value: +"Workspace allowed to use this destination; omit for the active workspace."
    • Changedhandover.export3 fields changed
      • addedInput schema / properties / destinationId / description
        Added value: +"Configured GitHub or webhook destination."
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover to export."
      • addedInput schema / properties / revisionId / description
        Added value: +"Immutable revision to export; defaults to the current revision."
    • Changedhandover.exports1 field changed
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover whose configured destinations and delivery jobs should be inspected."
    • Changedhandover.folders6 fields changed
      • addedInput schema / properties / action / description
        Added value: +"Folder operation to perform."
      • addedInput schema / properties / description / description
        Added value: +"Optional folder purpose for create or update."
      • addedInput schema / properties / handoverId / description
        Added value: +"Single handover to remove from the folder."
      • addedInput schema / properties / handoverIds / description
        Added value: +"Handovers to add to the folder."
      • addedInput schema / properties / name / description
        Added value: +"Human-readable folder name for create or update."
      • addedInput schema / properties / slug / description
        Added value: +"Stable folder slug used by get, update, delete, add, and remove."
    • Changedhandover.get2 fields changed
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover identifier returned by handover.search or handover.create."
      • addedInput schema / properties / revisionId / description
        Added value: +"Optional immutable revision; omit to inspect the current revision."
    • Changedhandover.okf.export2 fields changed
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover to export."
      • addedInput schema / properties / revisionId / description
        Added value: +"Immutable revision to export; defaults to the current revision."
    • Changedhandover.okf.import8 fields changed
      • addedInput schema / properties / expectedRevisionId / description
        Added value: +"Current revision ID used to prevent conflicting imports."
      • addedInput schema / properties / files / description
        Added value: +"Files from an Open Knowledge Format bundle."
      • addedInput schema / properties / files / items / properties / content / description
        Added value: +"UTF-8 text, or base64 when encoding is base64."
      • addedInput schema / properties / files / items / properties / encoding / description
        Added value: +"How content is encoded in this request."
      • addedInput schema / properties / files / items / properties / mediaType / description
        Added value: +"IANA media type; inferred from path when omitted."
      • addedInput schema / properties / files / items / properties / path / description
        Added value: +"Relative path of this file inside the OKF bundle."
      • addedInput schema / properties / handoverId / description
        Added value: +"Existing handover that will receive the imported bundle."
      • addedInput schema / properties / mode / description
        Added value: +"Merge bundle files with inherited artifacts or replace them."
    • Changedhandover.publication2 fields changed
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover whose publication should be inspected."
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug."
    • Changedhandover.publish6 fields changed
      • addedInput schema / properties / access / description
        Added value: +"Who can open the report URL."
      • addedInput schema / properties / entryPath / description
        Added value: +"Artifact path opened first when readers visit the report."
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover to project as a stable report."
      • addedInput schema / properties / revisionId / description
        Added value: +"Revision to pin; used when revisionMode is pinned."
      • addedInput schema / properties / revisionMode / description
        Added value: +"Follow new revisions automatically or keep one revision pinned."
      • addedInput schema / properties / slug / description
        Added value: +"Stable URL slug; generated from the title when omitted."
    • Changedhandover.pull3 fields changed
      • addedInput schema / properties / files / description
        Added value: +"Optional relative paths to return; omit for every file."
      • addedInput schema / properties / includeBinary / description
        Added value: +"Return binary files as base64 when true."
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug."
    • Changedhandover.read_artifact2 fields changed
      • addedInput schema / properties / artifactId / description
        Added value: +"Artifact identifier returned by handover.get."
      • addedInput schema / properties / maxBytes / description
        Added value: +"Maximum decoded bytes to return before reporting truncation."
    • Changedhandover.requests14 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / properties / action / description
        Added value: +"Space request operation to perform."
      • addedInput schema / properties / assigneePrincipalId
        Added value: +{
        +  "description": "Human or agent principal assigned to the request.",
        +  "pattern": "^prn_",
        +  "type": "string"
        +}
      • addedInput schema / properties / description
        Added value: +{
        +  "description": "Request details and acceptance context.",
        +  "maxLength": 10000,
        +  "type": "string"
        +}
      • addedInput schema / properties / id / description
        Added value: +"Request ID used by update or delete."
      • addedInput schema / properties / id / pattern
        Added value: +"^req_"
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / priority
        Added value: +{
        +  "description": "Request priority.",
        +  "enum": [
        +    "low",
        +    "normal",
        +    "high",
        +    "urgent"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / slug
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / sourceHandoverId
        Added value: +{
        +  "description": "Handover that originated the request.",
        +  "pattern": "^hov_",
        +  "type": "string"
        +}
      • addedInput schema / properties / space / description
        Added value: +"Space ID or slug containing the request."
      • addedInput schema / properties / status
        Added value: +{
        +  "description": "Request state used by list filtering or update.",
        +  "enum": [
        +    "open",
        +    "in_progress",
        +    "completed",
        +    "cancelled"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / title
        Added value: +{
        +  "description": "Actionable request title.",
        +  "maxLength": 200,
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "action"
        -]New value: +[
        +  "action",
        +  "space"
        +]
    • Changedhandover.resources16 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / properties / action / description
        Added value: +"Maintained resource operation to perform."
      • addedInput schema / properties / content
        Added value: +{
        +  "description": "UTF-8 text, or base64 when encoding is base64.",
        +  "type": "string"
        +}
      • addedInput schema / properties / description
        Added value: +{
        +  "description": "Optional resource purpose or provenance.",
        +  "type": "string"
        +}
      • addedInput schema / properties / encoding
        Added value: +{
        +  "default": "utf8",
        +  "description": "How content is encoded in this request.",
        +  "enum": [
        +    "utf8",
        +    "base64"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / expectedVersionId
        Added value: +{
        +  "description": "Current resource version ID used to prevent lost updates.",
        +  "type": "string"
        +}
      • addedInput schema / properties / id / description
        Added value: +"Resource ID used by get, update, or delete."
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "Resource kind for filtering or writing.",
        +  "enum": [
        +    "document",
        +    "asset",
        +    "dataset",
        +    "configuration",
        +    "link",
        +    "other"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / mediaType
        Added value: +{
        +  "description": "IANA media type; defaults to text/markdown.",
        +  "type": "string"
        +}
      • addedInput schema / properties / note
        Added value: +{
        +  "description": "Version note explaining the change.",
        +  "type": "string"
        +}
      • addedInput schema / properties / path / description
        Added value: +"Stable resource path; also accepted as a resource reference."
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Text filter used by list.",
        +  "type": "string"
        +}
      • removedInput schema / properties / slug
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / space / description
        Added value: +"Space ID or slug containing the resource."
      • addedInput schema / properties / title
        Added value: +{
        +  "description": "Human-readable resource title.",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "action"
        -]New value: +[
        +  "action",
        +  "space"
        +]
    • Changedhandover.source.create8 fields changed
      • addedInput schema / properties / branch / description
        Added value: +"Git branch to import."
      • addedInput schema / properties / displayName / description
        Added value: +"Human-readable source name shown to company owners."
      • addedInput schema / properties / owner / description
        Added value: +"GitHub repository owner; required when provider is github."
      • addedInput schema / properties / path / description
        Added value: +"Optional repository folder to import instead of the repository root."
      • addedInput schema / properties / provider / description
        Added value: +"External source type. GitHub is pulled on demand; HTTP accepts signed pushes."
      • addedInput schema / properties / repository / description
        Added value: +"GitHub repository name; required when provider is github."
      • addedInput schema / properties / secretEnv / description
        Added value: +"Runtime variable containing the HTTP signing secret; the secret value is never tool input."
      • addedInput schema / properties / workspaceId / description
        Added value: +"Destination workspace; omit to use the active workspace."
    • Changedhandover.source.run1 field changed
      • addedInput schema / properties / sourceId / description
        Added value: +"Owner-configured GitHub source returned by handover.imports."
    • Changedhandover.spaces11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / properties / access
        Added value: +{
        +  "description": "Organization-wide or explicit-member access.",
        +  "enum": [
        +    "organization",
        +    "restricted"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / action / description
        Added value: +"Space operation to perform."
      • addedInput schema / properties / description
        Added value: +{
        +  "description": "Optional purpose of the space.",
        +  "maxLength": 2000,
        +  "type": "string"
        +}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "Logical kind of company area.",
        +  "enum": [
        +    "product",
        +    "department",
        +    "customer",
        +    "project",
        +    "initiative",
        +    "custom"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / name
        Added value: +{
        +  "description": "Human-readable space name for create or update.",
        +  "maxLength": 120,
        +  "type": "string"
        +}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Stable slug for create, or an alternative space reference."
      • addedInput schema / properties / space / description
        Added value: +"Space ID or slug used by get, update, delete, and health."
      • addedInput schema / properties / status
        Added value: +{
        +  "description": "Lifecycle state used by update.",
        +  "enum": [
        +    "active",
        +    "archived"
        +  ],
        +  "type": "string"
        +}
    • Changedhandover.thread1 field changed
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover whose discussion and assignments should be read."
    • Changedhandover.update_comment8 fields changed
      • addedInput schema / properties / body / description
        Added value: +"Replacement comment body; omit to preserve the current body."
      • addedInput schema / properties / commentId / description
        Added value: +"Comment or annotation to edit, resolve, or reopen."
      • addedInput schema / properties / handoverId / description
        Added value: +"Handover containing the comment."
      • addedInput schema / properties / mentionPrincipalIds / description
        Added value: +"Replacement collaborator mentions."
      • addedInput schema / properties / resolvedRevisionId / description
        Added value: +"Revision that addressed the feedback, or null when reopening."
      • addedInput schema / properties / status / description
        Added value: +"Open, resolve, or reopen the feedback thread."
      • changedInput schema / properties / target / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "artifactId": {
        -        "pattern": "^art_",
        -        "type": "string"
        -      },
        -      "revisionId": {
        -        "pattern": "^rev_",
        -        "type": "string"
        -      },
        -      "selector": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "endLine": {
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "endOffset": {
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "exact": {
        -            "description": "The exact selected text.",
        -            "maxLength": 4000,
        -            "minLength": 1,
        -            "type": "string"
        -          },
        -          "prefix": {
        -            "description": "Text immediately before the selection.",
        -            "maxLength": 500,
        -            "type": "string"
        -          },
        -          "startLine": {
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "startOffset": {
        -            "minimum": 0,
        -            "type": "integer"
        -          },
        -          "suffix": {
        -            "description": "Text immediately after the selection.",
        -            "maxLength": 500,
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "exact"
        -        ],
        -        "type": "object"
        -      },
        -      "targetKind": {
        -        "enum": [
        -          "text",
        -          "code",
        -          "html"
        -        ],
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "revisionId",
        -      "artifactId",
        -      "targetKind",
        -      "selector"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "artifactId": {
        +        "description": "Artifact containing the selected text or code.",
        +        "pattern": "^art_",
        +        "type": "string"
        +      },
        +      "revisionId": {
        +        "description": "Immutable revision containing the annotated artifact.",
        +        "pattern": "^rev_",
        +        "type": "string"
        +      },
        +      "selector": {
        +        "additionalProperties": false,
        +        "description": "Exact quote plus optional position and surrounding context.",
        +        "properties": {
        +          "endLine": {
        +            "description": "Zero-based line where the selection ends.",
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "endOffset": {
        +            "description": "Zero-based character offset immediately after the selection.",
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "exact": {
        +            "description": "The exact selected text.",
        +            "maxLength": 4000,
        +            "minLength": 1,
        +            "type": "string"
        +          },
        +          "prefix": {
        +            "description": "Text immediately before the selection.",
        +            "maxLength": 500,
        +            "type": "string"
        +          },
        +          "startLine": {
        +            "description": "Zero-based line where the selection starts.",
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "startOffset": {
        +            "description": "Zero-based character offset where the selection starts.",
        +            "minimum": 0,
        +            "type": "integer"
        +          },
        +          "suffix": {
        +            "description": "Text immediately after the selection.",
        +            "maxLength": 500,
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "exact"
        +        ],
        +        "type": "object"
        +      },
        +      "targetKind": {
        +        "description": "Rendering context used to relocate and display the annotation.",
        +        "enum": [
        +          "text",
        +          "code",
        +          "html"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "revisionId",
        +      "artifactId",
        +      "targetKind",
        +      "selector"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / target / description
        Added value: +"Replacement annotation target, or null to remove the anchor."
    • Changedimport_okf8 fields changed
      • addedInput schema / properties / expected_revision_id / description
        Added value: +"Current revision ID used to prevent conflicting imports."
      • addedInput schema / properties / files / description
        Added value: +"Files from an Open Knowledge Format bundle."
      • addedInput schema / properties / files / items / properties / content / description
        Added value: +"UTF-8 text, or base64 when encoding is base64."
      • addedInput schema / properties / files / items / properties / encoding / description
        Added value: +"How content is encoded in this request."
      • addedInput schema / properties / files / items / properties / mediaType / description
        Added value: +"IANA media type; inferred from path when omitted."
      • addedInput schema / properties / files / items / properties / path / description
        Added value: +"Relative path of this file inside the OKF bundle."
      • addedInput schema / properties / mode / description
        Added value: +"Merge bundle files with inherited artifacts or replace them."
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug."
    • Changedlist_backlog11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / product_slug / description
        Added value: +"Optional product Space slug; omit to list authorized requests across Spaces."
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / slug
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / status / description
        Added value: +"Optional request lifecycle filter."
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "open",
        +  "in_progress",
        +  "completed",
        +  "cancelled"
        +]
    • Changedlist_contexts5 fields changed
      • addedInput schema / properties / agent_id / description
        Added value: +"Legacy Reporter agent identifier filter."
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of contexts to return."
      • addedInput schema / properties / offset / description
        Added value: +"Number of matching contexts to skip."
      • addedInput schema / properties / owner / description
        Added value: +"Legacy owner filter; use me for the authenticated principal."
      • addedInput schema / properties / search / description
        Added value: +"Text query matched against published report metadata."
    • Changedlist_products10 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / search / description
        Added value: +"Optional case-insensitive product name or description filter."
      • removedInput schema / properties / slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
    • Changedmanage_folders6 fields changed
      • addedInput schema / properties / action / description
        Added value: +"Legacy folder operation to perform."
      • addedInput schema / properties / description / description
        Added value: +"Optional folder purpose."
      • addedInput schema / properties / name / description
        Added value: +"Human-readable folder name."
      • addedInput schema / properties / report_slug / description
        Added value: +"Published report slug to remove from the folder."
      • addedInput schema / properties / report_slugs / description
        Added value: +"Published report slugs to add to the folder."
      • addedInput schema / properties / slug / description
        Added value: +"Stable folder slug."
    • Changedprocess_backlog12 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • addedInput schema / properties / dry_run / default
        Added value: +false
      • addedInput schema / properties / dry_run / description
        Added value: +"When true, return the selected requests without changing their status."
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 20,
        +  "description": "Maximum number of open requests to select.",
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / product_slug / description
        Added value: +"Optional product Space slug; omit to process authorized open requests across Spaces."
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
    • Changedpull_context3 fields changed
      • addedInput schema / properties / files / description
        Added value: +"Optional relative paths to return; omit for every file."
      • addedInput schema / properties / include_binary / description
        Added value: +"Return binary files as base64 when true."
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug."
    • Changedread_product_file11 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / path / description
        Added value: +"Exact relative file path returned by get_product or get_product_index."
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Product Space slug returned by list_products."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug",
        +  "path"
        +]
    • Changedupdate_context13 fields changed
      • addedInput schema / properties / access / description
        Added value: +"Who can open the report."
      • addedInput schema / properties / content / description
        Added value: +"Single UTF-8 report file when files is not used."
      • addedInput schema / properties / content_filename / description
        Added value: +"Path assigned to content."
      • addedInput schema / properties / description / description
        Added value: +"Replacement report summary."
      • addedInput schema / properties / entry_file / description
        Added value: +"File opened first when readers visit the report."
      • addedInput schema / properties / files / description
        Added value: +"Complete replacement set of report files."
      • addedInput schema / properties / files / items / properties / content / description
        Added value: +"UTF-8 text, or base64 when encoding is base64."
      • addedInput schema / properties / files / items / properties / content_type / description
        Added value: +"IANA media type; inferred from path when omitted."
      • addedInput schema / properties / files / items / properties / encoding / default
        Added value: +"utf-8"
      • addedInput schema / properties / files / items / properties / encoding / description
        Added value: +"How content is encoded in this request."
      • addedInput schema / properties / files / items / properties / path / description
        Added value: +"Relative file path inside the published report."
      • addedInput schema / properties / name / description
        Added value: +"Replacement report title."
      • addedInput schema / properties / slug / description
        Added value: +"Stable published report slug to update."
    • Changedupdate_product_knowledge14 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • addedInput schema / properties / content / description
        Added value: +"UTF-8 text, a JSON value, or base64 text when encoding is base64."
      • addedInput schema / properties / content_type
        Added value: +{
        +  "description": "IANA media type; inferred from path when omitted.",
        +  "type": "string"
        +}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedInput schema / properties / encoding
        Added value: +{
        +  "default": "utf8",
        +  "description": "How string content is encoded.",
        +  "enum": [
        +    "utf8",
        +    "base64"
        +  ],
        +  "type": "string"
        +}
      • removedInput schema / properties / files
        Removed value: -{
        -  "items": {
        -    "additionalProperties": false,
        -    "properties": {
        -      "content": {
        -        "type": "string"
        -      },
        -      "content_type": {
        -        "type": "string"
        -      },
        -      "encoding": {
        -        "enum": [
        -          "utf-8",
        -          "base64"
        -        ],
        -        "type": "string"
        -      },
        -      "path": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "path",
        -      "content"
        -    ],
        -    "type": "object"
        -  },
        -  "maxItems": 1000,
        -  "type": "array"
        -}
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / path / description
        Added value: +"Relative path to create or version."
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Product Space slug returned by list_products."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / updated_by
        Added value: +{
        +  "description": "Optional legacy note only; authenticated identity remains authoritative.",
        +  "type": "string"
        +}
      • addedInput schema / required
        Added value: +[
        +  "slug",
        +  "path",
        +  "content"
        +]
    • Changedupload_product_files18 fields changed
      • changedInput schema / additionalProperties
        Previous value: -trueNew value: +false
      • removedInput schema / properties / content
        Removed value: -{}
      • removedInput schema / properties / dry_run
        Removed value: -{
        -  "type": "boolean"
        -}
      • addedInput schema / properties / files / description
        Added value: +"Complete batch of product files to create or version."
      • addedInput schema / properties / files / items / properties / content / description
        Added value: +"UTF-8 text, or base64 when encoding is base64."
      • addedInput schema / properties / files / items / properties / content_type / description
        Added value: +"IANA media type; inferred from path when omitted."
      • addedInput schema / properties / files / items / properties / encoding / default
        Added value: +"utf8"
      • addedInput schema / properties / files / items / properties / encoding / description
        Added value: +"How content is encoded in this request."
      • changedInput schema / properties / files / items / properties / encoding / enum
        Previous value: -[
        -  "utf-8",
        -  "base64"
        -]New value: +[
        +  "utf8",
        +  "base64"
        +]
      • addedInput schema / properties / files / items / properties / path / description
        Added value: +"Relative path of the maintained product file."
      • addedInput schema / properties / files / minItems
        Added value: +1
      • removedInput schema / properties / id
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / path
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / product_slug
        Removed value: -{
        -  "type": "string"
        -}
      • removedInput schema / properties / search
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / properties / slug / description
        Added value: +"Product Space slug returned by list_products."
      • removedInput schema / properties / status
        Removed value: -{
        -  "type": "string"
        -}
      • addedInput schema / required
        Added value: +[
        +  "slug",
        +  "files"
        +]
  3. 55 tool updates
    • First observedadd_to_backlog
    • First observedcreate_product
    • First observeddelete_backlog_item
    • First observeddelete_context
    • First observeddelete_product
    • First observeddelete_product_file
    • First observeddeploy_context
    • First observedexport_okf
    • First observedfind_assets
    • First observedget_context
    • First observedget_context_health
    • First observedget_context_history
    • First observedget_context_index
    • First observedget_product
    • First observedget_product_health
    • First observedget_product_history
    • First observedget_product_index
    • First observedhandover.annotate
    • First observedhandover.annotations
    • First observedhandover.assign
    • First observedhandover.comment
    • First observedhandover.continue
    • First observedhandover.create
    • First observedhandover.destination.create
    • First observedhandover.export
    • First observedhandover.exports
    • First observedhandover.folders
    • First observedhandover.get
    • First observedhandover.imports
    • First observedhandover.okf.export
    • First observedhandover.okf.import
    • First observedhandover.publication
    • First observedhandover.publish
    • First observedhandover.pull
    • First observedhandover.read_artifact
    • First observedhandover.requests
    • First observedhandover.resources
    • First observedhandover.search
    • First observedhandover.source.create
    • First observedhandover.source.run
    • First observedhandover.spaces
    • First observedhandover.thread
    • First observedhandover.update_comment
    • First observedhandover.whoami
    • First observedimport_okf
    • First observedlist_backlog
    • First observedlist_contexts
    • First observedlist_products
    • First observedmanage_folders
    • First observedprocess_backlog
    • First observedpull_context
    • First observedread_product_file
    • First observedupdate_context
    • First observedupdate_product_knowledge
    • First observedupload_product_files

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.