Handover
Server Details
Shared, versioned context that humans and AI agents can publish, review, annotate, and continue.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- 44-pixels/handover-mcp
- GitHub Stars
- 0
TDQS
Scored across 17 tools
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.
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.
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.
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 toolshandover.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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Actionable annotation body in plain text or Markdown. | |
| target | Yes | Immutable artifact location to anchor this annotation. | |
| handoverId | Yes | Handover containing the artifact being annotated. | |
| mentionPrincipalIds | No | Collaborator principal IDs to mention and notify. |
TDQS
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.
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.
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.
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.
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.
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 annotationsARead-onlyIdempotentInspect
Read revision-anchored file comments, selected text, status, authorship, and resolution metadata. Use status=open to find feedback that still needs action.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | ||
| artifactId | No | ||
| handoverId | Yes | Handover whose annotation threads should be read. | |
| revisionId | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| handoverId | Yes | Handover whose open assignments will be replaced. | |
| principalIds | Yes | Complete replacement list of assigned collaborator principal IDs. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Comment body in plain text or Markdown. | |
| handoverId | Yes | Handover discussion to append the comment to. | |
| mentionPrincipalIds | No | Collaborator principal IDs to mention and notify. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | What changed or what the next collaborator should know. | |
| brief | No | Updated structured continuation brief. | |
| artifacts | No | New or replacement files; omitted files remain inherited. | |
| handoverId | Yes | Handover to continue after reading its current snapshot. | |
| expectedRevisionId | Yes | Current revision ID returned by handover.get; prevents lost updates. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Free-form continuation note recorded in the initial revision. | |
| brief | No | Structured continuation brief for humans and agents. | |
| title | Yes | Short, specific name for the durable context. | |
| summary | No | Concise explanation of what this handover contains. | |
| artifacts | No | Files attached to the initial immutable revision. |
TDQS
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.
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.
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.
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.
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.
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 handoverARead-onlyIdempotentInspect
Read a handover snapshot, continuation brief, artifact metadata, and revision history. Omit revisionId for the current snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| handoverId | Yes | Handover identifier returned by handover.search or handover.create. | |
| revisionId | No | Optional immutable revision; omit to inspect the current revision. |
TDQS
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.
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.
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.
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.
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.
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 OKFBRead-onlyIdempotentInspect
Export a handover revision as an Open Knowledge Format bundle for another human or agent system.
| Name | Required | Description | Default |
|---|---|---|---|
| handoverId | Yes | Handover to export. | |
| revisionId | No | Immutable revision to export; defaults to the current revision. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Merge bundle files with inherited artifacts or replace them. | merge |
| files | Yes | Files from an Open Knowledge Format bundle. | |
| handoverId | Yes | Existing handover that will receive the imported bundle. | |
| expectedRevisionId | No | Current revision ID used to prevent conflicting imports. |
TDQS
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.
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.
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.
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.
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.
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 reportARead-onlyIdempotentInspect
Read the stable report URL, entry file, access mode, and selected revision for a handover.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Stable published report slug. | |
| handoverId | No | Handover whose publication should be inspected. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Stable URL slug; generated from the title when omitted. | |
| access | No | Who can open the report URL. | |
| entryPath | No | Artifact path opened first when readers visit the report. | |
| handoverId | Yes | Handover to project as a stable report. | |
| revisionId | No | Revision to pin; used when revisionMode is pinned. | |
| revisionMode | No | Follow new revisions automatically or keep one revision pinned. |
TDQS
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.
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.
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.
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.
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.
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 reportBRead-onlyIdempotentInspect
Return the selected files of a published report with paths, hashes, media types, and UTF-8 or base64 content.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Stable published report slug. | |
| files | No | Optional relative paths to return; omit for every file. | |
| includeBinary | No | Return binary files as base64 when true. |
TDQS
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.
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.
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.
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.
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.
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 artifactARead-onlyIdempotentInspect
Read bounded artifact content after inspecting a handover. Text is returned as UTF-8 and binary content as base64; truncated results report that explicitly.
| Name | Required | Description | Default |
|---|---|---|---|
| maxBytes | No | Maximum decoded bytes to return before reporting truncation. | |
| artifactId | Yes | Artifact identifier returned by handover.get. |
TDQS
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.
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.
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.
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.
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.
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 handoversARead-onlyIdempotentInspect
Find current shared context with hybrid, semantic, or lexical retrieval across metadata and artifact content. Use an empty query to list recent handovers.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | hybrid | |
| limit | No | ||
| query | No | ||
| cursor | No | ||
| status | No | active |
TDQS
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.
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.
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.
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.
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.
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 discussionARead-onlyIdempotentInspect
Read comments, explicit mentions, assignments, and eligible collaborators without changing revision history.
| Name | Required | Description | Default |
|---|---|---|---|
| handoverId | Yes | Handover whose discussion and assignments should be read. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Replacement comment body; omit to preserve the current body. | |
| status | No | Open, resolve, or reopen the feedback thread. | |
| target | No | Replacement annotation target, or null to remove the anchor. | |
| commentId | Yes | Comment or annotation to edit, resolve, or reopen. | |
| handoverId | Yes | Handover containing the comment. | |
| resolvedRevisionId | No | Revision that addressed the feedback, or null when reopening. | |
| mentionPrincipalIds | No | Replacement collaborator mentions. |
TDQS
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.
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.
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.
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.
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.
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 identityARead-onlyIdempotentInspect
Return the authenticated person or service agent, organization, workspace, role, and granted scopes. Call this before reading or publishing to confirm attribution and tenancy.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, 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.
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.
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.
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.
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.
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.
38 tool updates
- Removed
add_to_backlog - Removed
create_product - Removed
delete_backlog_item - Removed
delete_context - Removed
delete_product - Removed
delete_product_file - Removed
deploy_context - Removed
export_okf - Removed
find_assets - Removed
get_context - Removed
get_context_health - Removed
get_context_history - Removed
get_context_index - Removed
get_product - Removed
get_product_health - Removed
get_product_history - Removed
get_product_index - Removed
handover.destination.create - Removed
handover.export - Removed
handover.exports - Removed
handover.folders - Removed
handover.imports - Removed
handover.requests - Removed
handover.resources - Removed
handover.source.create - Removed
handover.source.run - Removed
handover.spaces - Removed
import_okf - Removed
list_backlog - Removed
list_contexts - Removed
list_products - Removed
manage_folders - Removed
process_backlog - Removed
pull_context - Removed
read_product_file - Removed
update_context - Removed
update_product_knowledge - Removed
upload_product_files
52 tool updates
- Changed
add_to_backlog14 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - added
Input schema / properties / content / descriptionAdded value: +"Request description; the first line becomes its title." - added
Input schema / properties / content / minLengthAdded value: +1 - added
Input schema / properties / content / typeAdded value: +"string" - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - added
Input schema / properties / priorityAdded value: +{ + "default": "normal", + "description": "Requested execution priority.", + "enum": [ + "low", + "normal", + "high", + "urgent" + ], + "type": "string" +} - added
Input schema / properties / product_slug / descriptionAdded value: +"Optional product Space slug; defaults to the active workspace." - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "content" +]
- Changed
create_product13 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - added
Input schema / properties / descriptionAdded value: +{ + "description": "Optional explanation of the product Space scope.", + "type": "string" +} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / nameAdded value: +{ + "description": "Human-readable product Space name.", + "minLength": 1, + "type": "string" +} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Optional stable URL-safe slug; generated from name when omitted." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "name" +]
- Changed
delete_backlog_item12 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - added
Input schema / properties / id / descriptionAdded value: +"Request identifier returned by list_backlog." - added
Input schema / properties / id / patternAdded value: +"^req_" - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "id" +]
- Changed
delete_context11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug to unpublish and trash." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
delete_product11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Slug of the empty product Space to delete." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
delete_product_file11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / path / descriptionAdded value: +"Exact relative file path returned by get_product or get_product_index." - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Product Space slug returned by list_products." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug", + "path" +]
- Changed
deploy_context13 fields changed- added
Input schema / properties / access / descriptionAdded value: +"Who can open the report." - added
Input schema / properties / content / descriptionAdded value: +"Single UTF-8 report file when files is not used." - added
Input schema / properties / content_filename / descriptionAdded value: +"Path assigned to content; defaults to index.html." - added
Input schema / properties / description / descriptionAdded value: +"Concise report summary." - added
Input schema / properties / entry_file / descriptionAdded value: +"File opened first when readers visit the report." - added
Input schema / properties / files / descriptionAdded value: +"Complete set of files in the report." - added
Input schema / properties / files / items / properties / content / descriptionAdded value: +"UTF-8 text, or base64 when encoding is base64." - added
Input schema / properties / files / items / properties / content_type / descriptionAdded value: +"IANA media type; inferred from path when omitted." - added
Input schema / properties / files / items / properties / encoding / defaultAdded value: +"utf-8" - added
Input schema / properties / files / items / properties / encoding / descriptionAdded value: +"How content is encoded in this request." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Relative file path inside the published report." - added
Input schema / properties / name / descriptionAdded value: +"Published report title." - added
Input schema / properties / slug / descriptionAdded value: +"Stable URL slug; generated from name when omitted."
- Changed
export_okf2 fields changed- added
Input schema / properties / revision_id / descriptionAdded value: +"Immutable revision to export; defaults to the publication revision." - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug."
- Changed
find_assets13 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / limitAdded value: +{ + "default": 20, + "description": "Maximum number of matching assets to return.", + "maximum": 100, + "minimum": 1, + "type": "integer" +} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - added
Input schema / properties / queryAdded value: +{ + "description": "Optional case-insensitive path, title, or description query.", + "type": "string" +} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Product Space slug returned by list_products." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
get_context1 field changed- added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug from list_contexts."
- Changed
get_context_health11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug from list_contexts." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
get_context_history11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug from list_contexts." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
get_context_index11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug from list_contexts." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
get_product11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Product Space slug returned by list_products." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
get_product_health11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Product Space slug returned by list_products." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
get_product_history11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Product Space slug returned by list_products." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
get_product_index11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Product Space slug returned by list_products." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug" +]
- Changed
handover.annotate12 fields changed- added
Input schema / properties / body / descriptionAdded value: +"Actionable annotation body in plain text or Markdown." - added
Input schema / properties / handoverId / descriptionAdded value: +"Handover containing the artifact being annotated." - added
Input schema / properties / mentionPrincipalIds / descriptionAdded value: +"Collaborator principal IDs to mention and notify." - added
Input schema / properties / target / descriptionAdded value: +"Immutable artifact location to anchor this annotation." - added
Input schema / properties / target / properties / artifactId / descriptionAdded value: +"Artifact containing the selected text or code." - added
Input schema / properties / target / properties / revisionId / descriptionAdded value: +"Immutable revision containing the annotated artifact." - added
Input schema / properties / target / properties / selector / descriptionAdded value: +"Exact quote plus optional position and surrounding context." - added
Input schema / properties / target / properties / selector / properties / endLine / descriptionAdded value: +"Zero-based line where the selection ends." - added
Input schema / properties / target / properties / selector / properties / endOffset / descriptionAdded value: +"Zero-based character offset immediately after the selection." - added
Input schema / properties / target / properties / selector / properties / startLine / descriptionAdded value: +"Zero-based line where the selection starts." - added
Input schema / properties / target / properties / selector / properties / startOffset / descriptionAdded value: +"Zero-based character offset where the selection starts." - added
Input schema / properties / target / properties / targetKind / descriptionAdded value: +"Rendering context used to relocate and display the annotation."
- Changed
handover.annotations1 field changed- added
Input schema / properties / handoverId / descriptionAdded value: +"Handover whose annotation threads should be read."
- Changed
handover.assign2 fields changed- added
Input schema / properties / handoverId / descriptionAdded value: +"Handover whose open assignments will be replaced." - added
Input schema / properties / principalIds / descriptionAdded value: +"Complete replacement list of assigned collaborator principal IDs."
- Changed
handover.comment3 fields changed- added
Input schema / properties / body / descriptionAdded value: +"Comment body in plain text or Markdown." - added
Input schema / properties / handoverId / descriptionAdded value: +"Handover discussion to append the comment to." - added
Input schema / properties / mentionPrincipalIds / descriptionAdded value: +"Collaborator principal IDs to mention and notify."
- Changed
handover.continue13 fields changed- added
Input schema / properties / artifacts / descriptionAdded value: +"New or replacement files; omitted files remain inherited." - added
Input schema / properties / brief / descriptionAdded value: +"Updated structured continuation brief." - added
Input schema / properties / brief / properties / currentState / descriptionAdded value: +"Verified state at the moment this revision is published." - added
Input schema / properties / brief / properties / decisions / descriptionAdded value: +"Decisions already made that successors should preserve." - added
Input schema / properties / brief / properties / nextSteps / descriptionAdded value: +"Concrete continuation steps for the receiving actor." - added
Input schema / properties / brief / properties / nextSteps / items / properties / id / descriptionAdded value: +"Optional stable identifier for this step." - added
Input schema / properties / brief / properties / nextSteps / items / properties / status / descriptionAdded value: +"Whether the step still needs action." - added
Input schema / properties / brief / properties / nextSteps / items / properties / text / descriptionAdded value: +"One actionable continuation step." - added
Input schema / properties / brief / properties / objective / descriptionAdded value: +"The outcome the next human or agent should continue toward." - added
Input schema / properties / brief / properties / openQuestions / descriptionAdded value: +"Unresolved questions that still require evidence or judgment." - added
Input schema / properties / expectedRevisionId / descriptionAdded value: +"Current revision ID returned by handover.get; prevents lost updates." - added
Input schema / properties / handoverId / descriptionAdded value: +"Handover to continue after reading its current snapshot." - added
Input schema / properties / note / descriptionAdded value: +"What changed or what the next collaborator should know."
- Changed
handover.create13 fields changed- added
Input schema / properties / artifacts / descriptionAdded value: +"Files attached to the initial immutable revision." - added
Input schema / properties / brief / descriptionAdded value: +"Structured continuation brief for humans and agents." - added
Input schema / properties / brief / properties / currentState / descriptionAdded value: +"Verified state at the moment this revision is published." - added
Input schema / properties / brief / properties / decisions / descriptionAdded value: +"Decisions already made that successors should preserve." - added
Input schema / properties / brief / properties / nextSteps / descriptionAdded value: +"Concrete continuation steps for the receiving actor." - added
Input schema / properties / brief / properties / nextSteps / items / properties / id / descriptionAdded value: +"Optional stable identifier for this step." - added
Input schema / properties / brief / properties / nextSteps / items / properties / status / descriptionAdded value: +"Whether the step still needs action." - added
Input schema / properties / brief / properties / nextSteps / items / properties / text / descriptionAdded value: +"One actionable continuation step." - added
Input schema / properties / brief / properties / objective / descriptionAdded value: +"The outcome the next human or agent should continue toward." - added
Input schema / properties / brief / properties / openQuestions / descriptionAdded value: +"Unresolved questions that still require evidence or judgment." - added
Input schema / properties / note / descriptionAdded value: +"Free-form continuation note recorded in the initial revision." - added
Input schema / properties / summary / descriptionAdded value: +"Concise explanation of what this handover contains." - added
Input schema / properties / title / descriptionAdded value: +"Short, specific name for the durable context."
- Changed
handover.destination.create9 fields changed- added
Input schema / properties / basePath / descriptionAdded value: +"Repository folder under which exported handovers are written." - added
Input schema / properties / branch / descriptionAdded value: +"Git branch that receives exported revisions." - added
Input schema / properties / displayName / descriptionAdded value: +"Human-readable destination name shown to company owners." - added
Input schema / properties / owner / descriptionAdded value: +"GitHub repository owner; required when provider is github." - added
Input schema / properties / provider / descriptionAdded value: +"External delivery type." - added
Input schema / properties / repository / descriptionAdded value: +"GitHub repository name; required when provider is github." - added
Input schema / properties / secretEnv / descriptionAdded value: +"Runtime variable containing the webhook signing secret; the secret value is never tool input." - added
Input schema / properties / url / descriptionAdded value: +"HTTPS webhook URL; required when provider is http." - added
Input schema / properties / workspaceId / descriptionAdded value: +"Workspace allowed to use this destination; omit for the active workspace."
- Changed
handover.export3 fields changed- added
Input schema / properties / destinationId / descriptionAdded value: +"Configured GitHub or webhook destination." - added
Input schema / properties / handoverId / descriptionAdded value: +"Handover to export." - added
Input schema / properties / revisionId / descriptionAdded value: +"Immutable revision to export; defaults to the current revision."
- Changed
handover.exports1 field changed- added
Input schema / properties / handoverId / descriptionAdded value: +"Handover whose configured destinations and delivery jobs should be inspected."
- Changed
handover.folders6 fields changed- added
Input schema / properties / action / descriptionAdded value: +"Folder operation to perform." - added
Input schema / properties / description / descriptionAdded value: +"Optional folder purpose for create or update." - added
Input schema / properties / handoverId / descriptionAdded value: +"Single handover to remove from the folder." - added
Input schema / properties / handoverIds / descriptionAdded value: +"Handovers to add to the folder." - added
Input schema / properties / name / descriptionAdded value: +"Human-readable folder name for create or update." - added
Input schema / properties / slug / descriptionAdded value: +"Stable folder slug used by get, update, delete, add, and remove."
- Changed
handover.get2 fields changed- added
Input schema / properties / handoverId / descriptionAdded value: +"Handover identifier returned by handover.search or handover.create." - added
Input schema / properties / revisionId / descriptionAdded value: +"Optional immutable revision; omit to inspect the current revision."
- Changed
handover.okf.export2 fields changed- added
Input schema / properties / handoverId / descriptionAdded value: +"Handover to export." - added
Input schema / properties / revisionId / descriptionAdded value: +"Immutable revision to export; defaults to the current revision."
- Changed
handover.okf.import8 fields changed- added
Input schema / properties / expectedRevisionId / descriptionAdded value: +"Current revision ID used to prevent conflicting imports." - added
Input schema / properties / files / descriptionAdded value: +"Files from an Open Knowledge Format bundle." - added
Input schema / properties / files / items / properties / content / descriptionAdded value: +"UTF-8 text, or base64 when encoding is base64." - added
Input schema / properties / files / items / properties / encoding / descriptionAdded value: +"How content is encoded in this request." - added
Input schema / properties / files / items / properties / mediaType / descriptionAdded value: +"IANA media type; inferred from path when omitted." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Relative path of this file inside the OKF bundle." - added
Input schema / properties / handoverId / descriptionAdded value: +"Existing handover that will receive the imported bundle." - added
Input schema / properties / mode / descriptionAdded value: +"Merge bundle files with inherited artifacts or replace them."
- Changed
handover.publication2 fields changed- added
Input schema / properties / handoverId / descriptionAdded value: +"Handover whose publication should be inspected." - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug."
- Changed
handover.publish6 fields changed- added
Input schema / properties / access / descriptionAdded value: +"Who can open the report URL." - added
Input schema / properties / entryPath / descriptionAdded value: +"Artifact path opened first when readers visit the report." - added
Input schema / properties / handoverId / descriptionAdded value: +"Handover to project as a stable report." - added
Input schema / properties / revisionId / descriptionAdded value: +"Revision to pin; used when revisionMode is pinned." - added
Input schema / properties / revisionMode / descriptionAdded value: +"Follow new revisions automatically or keep one revision pinned." - added
Input schema / properties / slug / descriptionAdded value: +"Stable URL slug; generated from the title when omitted."
- Changed
handover.pull3 fields changed- added
Input schema / properties / files / descriptionAdded value: +"Optional relative paths to return; omit for every file." - added
Input schema / properties / includeBinary / descriptionAdded value: +"Return binary files as base64 when true." - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug."
- Changed
handover.read_artifact2 fields changed- added
Input schema / properties / artifactId / descriptionAdded value: +"Artifact identifier returned by handover.get." - added
Input schema / properties / maxBytes / descriptionAdded value: +"Maximum decoded bytes to return before reporting truncation."
- Changed
handover.requests14 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - added
Input schema / properties / action / descriptionAdded value: +"Space request operation to perform." - added
Input schema / properties / assigneePrincipalIdAdded value: +{ + "description": "Human or agent principal assigned to the request.", + "pattern": "^prn_", + "type": "string" +} - added
Input schema / properties / descriptionAdded value: +{ + "description": "Request details and acceptance context.", + "maxLength": 10000, + "type": "string" +} - added
Input schema / properties / id / descriptionAdded value: +"Request ID used by update or delete." - added
Input schema / properties / id / patternAdded value: +"^req_" - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - added
Input schema / properties / priorityAdded value: +{ + "description": "Request priority.", + "enum": [ + "low", + "normal", + "high", + "urgent" + ], + "type": "string" +} - removed
Input schema / properties / slugRemoved value: -{ - "type": "string" -} - added
Input schema / properties / sourceHandoverIdAdded value: +{ + "description": "Handover that originated the request.", + "pattern": "^hov_", + "type": "string" +} - added
Input schema / properties / space / descriptionAdded value: +"Space ID or slug containing the request." - added
Input schema / properties / statusAdded value: +{ + "description": "Request state used by list filtering or update.", + "enum": [ + "open", + "in_progress", + "completed", + "cancelled" + ], + "type": "string" +} - added
Input schema / properties / titleAdded value: +{ + "description": "Actionable request title.", + "maxLength": 200, + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "action" -]New value: +[ + "action", + "space" +]
- Changed
handover.resources16 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - added
Input schema / properties / action / descriptionAdded value: +"Maintained resource operation to perform." - added
Input schema / properties / contentAdded value: +{ + "description": "UTF-8 text, or base64 when encoding is base64.", + "type": "string" +} - added
Input schema / properties / descriptionAdded value: +{ + "description": "Optional resource purpose or provenance.", + "type": "string" +} - added
Input schema / properties / encodingAdded value: +{ + "default": "utf8", + "description": "How content is encoded in this request.", + "enum": [ + "utf8", + "base64" + ], + "type": "string" +} - added
Input schema / properties / expectedVersionIdAdded value: +{ + "description": "Current resource version ID used to prevent lost updates.", + "type": "string" +} - added
Input schema / properties / id / descriptionAdded value: +"Resource ID used by get, update, or delete." - added
Input schema / properties / kindAdded value: +{ + "description": "Resource kind for filtering or writing.", + "enum": [ + "document", + "asset", + "dataset", + "configuration", + "link", + "other" + ], + "type": "string" +} - added
Input schema / properties / mediaTypeAdded value: +{ + "description": "IANA media type; defaults to text/markdown.", + "type": "string" +} - added
Input schema / properties / noteAdded value: +{ + "description": "Version note explaining the change.", + "type": "string" +} - added
Input schema / properties / path / descriptionAdded value: +"Stable resource path; also accepted as a resource reference." - added
Input schema / properties / queryAdded value: +{ + "description": "Text filter used by list.", + "type": "string" +} - removed
Input schema / properties / slugRemoved value: -{ - "type": "string" -} - added
Input schema / properties / space / descriptionAdded value: +"Space ID or slug containing the resource." - added
Input schema / properties / titleAdded value: +{ + "description": "Human-readable resource title.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "action" -]New value: +[ + "action", + "space" +]
- Changed
handover.source.create8 fields changed- added
Input schema / properties / branch / descriptionAdded value: +"Git branch to import." - added
Input schema / properties / displayName / descriptionAdded value: +"Human-readable source name shown to company owners." - added
Input schema / properties / owner / descriptionAdded value: +"GitHub repository owner; required when provider is github." - added
Input schema / properties / path / descriptionAdded value: +"Optional repository folder to import instead of the repository root." - added
Input schema / properties / provider / descriptionAdded value: +"External source type. GitHub is pulled on demand; HTTP accepts signed pushes." - added
Input schema / properties / repository / descriptionAdded value: +"GitHub repository name; required when provider is github." - added
Input schema / properties / secretEnv / descriptionAdded value: +"Runtime variable containing the HTTP signing secret; the secret value is never tool input." - added
Input schema / properties / workspaceId / descriptionAdded value: +"Destination workspace; omit to use the active workspace."
- Changed
handover.source.run1 field changed- added
Input schema / properties / sourceId / descriptionAdded value: +"Owner-configured GitHub source returned by handover.imports."
- Changed
handover.spaces11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - added
Input schema / properties / accessAdded value: +{ + "description": "Organization-wide or explicit-member access.", + "enum": [ + "organization", + "restricted" + ], + "type": "string" +} - added
Input schema / properties / action / descriptionAdded value: +"Space operation to perform." - added
Input schema / properties / descriptionAdded value: +{ + "description": "Optional purpose of the space.", + "maxLength": 2000, + "type": "string" +} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / kindAdded value: +{ + "description": "Logical kind of company area.", + "enum": [ + "product", + "department", + "customer", + "project", + "initiative", + "custom" + ], + "type": "string" +} - added
Input schema / properties / nameAdded value: +{ + "description": "Human-readable space name for create or update.", + "maxLength": 120, + "type": "string" +} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Stable slug for create, or an alternative space reference." - added
Input schema / properties / space / descriptionAdded value: +"Space ID or slug used by get, update, delete, and health." - added
Input schema / properties / statusAdded value: +{ + "description": "Lifecycle state used by update.", + "enum": [ + "active", + "archived" + ], + "type": "string" +}
- Changed
handover.thread1 field changed- added
Input schema / properties / handoverId / descriptionAdded value: +"Handover whose discussion and assignments should be read."
- Changed
handover.update_comment8 fields changed- added
Input schema / properties / body / descriptionAdded value: +"Replacement comment body; omit to preserve the current body." - added
Input schema / properties / commentId / descriptionAdded value: +"Comment or annotation to edit, resolve, or reopen." - added
Input schema / properties / handoverId / descriptionAdded value: +"Handover containing the comment." - added
Input schema / properties / mentionPrincipalIds / descriptionAdded value: +"Replacement collaborator mentions." - added
Input schema / properties / resolvedRevisionId / descriptionAdded value: +"Revision that addressed the feedback, or null when reopening." - added
Input schema / properties / status / descriptionAdded value: +"Open, resolve, or reopen the feedback thread." - changed
Input schema / properties / target / anyOfPrevious 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" + } +] - added
Input schema / properties / target / descriptionAdded value: +"Replacement annotation target, or null to remove the anchor."
- Changed
import_okf8 fields changed- added
Input schema / properties / expected_revision_id / descriptionAdded value: +"Current revision ID used to prevent conflicting imports." - added
Input schema / properties / files / descriptionAdded value: +"Files from an Open Knowledge Format bundle." - added
Input schema / properties / files / items / properties / content / descriptionAdded value: +"UTF-8 text, or base64 when encoding is base64." - added
Input schema / properties / files / items / properties / encoding / descriptionAdded value: +"How content is encoded in this request." - added
Input schema / properties / files / items / properties / mediaType / descriptionAdded value: +"IANA media type; inferred from path when omitted." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Relative path of this file inside the OKF bundle." - added
Input schema / properties / mode / descriptionAdded value: +"Merge bundle files with inherited artifacts or replace them." - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug."
- Changed
list_backlog11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - added
Input schema / properties / product_slug / descriptionAdded value: +"Optional product Space slug; omit to list authorized requests across Spaces." - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / slugRemoved value: -{ - "type": "string" -} - added
Input schema / properties / status / descriptionAdded value: +"Optional request lifecycle filter." - added
Input schema / properties / status / enumAdded value: +[ + "open", + "in_progress", + "completed", + "cancelled" +]
- Changed
list_contexts5 fields changed- added
Input schema / properties / agent_id / descriptionAdded value: +"Legacy Reporter agent identifier filter." - added
Input schema / properties / limit / descriptionAdded value: +"Maximum number of contexts to return." - added
Input schema / properties / offset / descriptionAdded value: +"Number of matching contexts to skip." - added
Input schema / properties / owner / descriptionAdded value: +"Legacy owner filter; use me for the authenticated principal." - added
Input schema / properties / search / descriptionAdded value: +"Text query matched against published report metadata."
- Changed
list_products10 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - added
Input schema / properties / search / descriptionAdded value: +"Optional case-insensitive product name or description filter." - removed
Input schema / properties / slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -}
- Changed
manage_folders6 fields changed- added
Input schema / properties / action / descriptionAdded value: +"Legacy folder operation to perform." - added
Input schema / properties / description / descriptionAdded value: +"Optional folder purpose." - added
Input schema / properties / name / descriptionAdded value: +"Human-readable folder name." - added
Input schema / properties / report_slug / descriptionAdded value: +"Published report slug to remove from the folder." - added
Input schema / properties / report_slugs / descriptionAdded value: +"Published report slugs to add to the folder." - added
Input schema / properties / slug / descriptionAdded value: +"Stable folder slug."
- Changed
process_backlog12 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - added
Input schema / properties / dry_run / defaultAdded value: +false - added
Input schema / properties / dry_run / descriptionAdded value: +"When true, return the selected requests without changing their status." - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / limitAdded value: +{ + "default": 20, + "description": "Maximum number of open requests to select.", + "maximum": 100, + "minimum": 1, + "type": "integer" +} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - added
Input schema / properties / product_slug / descriptionAdded value: +"Optional product Space slug; omit to process authorized open requests across Spaces." - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -}
- Changed
pull_context3 fields changed- added
Input schema / properties / files / descriptionAdded value: +"Optional relative paths to return; omit for every file." - added
Input schema / properties / include_binary / descriptionAdded value: +"Return binary files as base64 when true." - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug."
- Changed
read_product_file11 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / path / descriptionAdded value: +"Exact relative file path returned by get_product or get_product_index." - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Product Space slug returned by list_products." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug", + "path" +]
- Changed
update_context13 fields changed- added
Input schema / properties / access / descriptionAdded value: +"Who can open the report." - added
Input schema / properties / content / descriptionAdded value: +"Single UTF-8 report file when files is not used." - added
Input schema / properties / content_filename / descriptionAdded value: +"Path assigned to content." - added
Input schema / properties / description / descriptionAdded value: +"Replacement report summary." - added
Input schema / properties / entry_file / descriptionAdded value: +"File opened first when readers visit the report." - added
Input schema / properties / files / descriptionAdded value: +"Complete replacement set of report files." - added
Input schema / properties / files / items / properties / content / descriptionAdded value: +"UTF-8 text, or base64 when encoding is base64." - added
Input schema / properties / files / items / properties / content_type / descriptionAdded value: +"IANA media type; inferred from path when omitted." - added
Input schema / properties / files / items / properties / encoding / defaultAdded value: +"utf-8" - added
Input schema / properties / files / items / properties / encoding / descriptionAdded value: +"How content is encoded in this request." - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Relative file path inside the published report." - added
Input schema / properties / name / descriptionAdded value: +"Replacement report title." - added
Input schema / properties / slug / descriptionAdded value: +"Stable published report slug to update."
- Changed
update_product_knowledge14 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - added
Input schema / properties / content / descriptionAdded value: +"UTF-8 text, a JSON value, or base64 text when encoding is base64." - added
Input schema / properties / content_typeAdded value: +{ + "description": "IANA media type; inferred from path when omitted.", + "type": "string" +} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - added
Input schema / properties / encodingAdded value: +{ + "default": "utf8", + "description": "How string content is encoded.", + "enum": [ + "utf8", + "base64" + ], + "type": "string" +} - removed
Input schema / properties / filesRemoved 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" -} - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - added
Input schema / properties / path / descriptionAdded value: +"Relative path to create or version." - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Product Space slug returned by list_products." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / properties / updated_byAdded value: +{ + "description": "Optional legacy note only; authenticated identity remains authoritative.", + "type": "string" +} - added
Input schema / requiredAdded value: +[ + "slug", + "path", + "content" +]
- Changed
upload_product_files18 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - removed
Input schema / properties / contentRemoved value: -{} - removed
Input schema / properties / dry_runRemoved value: -{ - "type": "boolean" -} - added
Input schema / properties / files / descriptionAdded value: +"Complete batch of product files to create or version." - added
Input schema / properties / files / items / properties / content / descriptionAdded value: +"UTF-8 text, or base64 when encoding is base64." - added
Input schema / properties / files / items / properties / content_type / descriptionAdded value: +"IANA media type; inferred from path when omitted." - added
Input schema / properties / files / items / properties / encoding / defaultAdded value: +"utf8" - added
Input schema / properties / files / items / properties / encoding / descriptionAdded value: +"How content is encoded in this request." - changed
Input schema / properties / files / items / properties / encoding / enumPrevious value: -[ - "utf-8", - "base64" -]New value: +[ + "utf8", + "base64" +] - added
Input schema / properties / files / items / properties / path / descriptionAdded value: +"Relative path of the maintained product file." - added
Input schema / properties / files / minItemsAdded value: +1 - removed
Input schema / properties / idRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / pathRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / product_slugRemoved value: -{ - "type": "string" -} - removed
Input schema / properties / searchRemoved value: -{ - "type": "string" -} - added
Input schema / properties / slug / descriptionAdded value: +"Product Space slug returned by list_products." - removed
Input schema / properties / statusRemoved value: -{ - "type": "string" -} - added
Input schema / requiredAdded value: +[ + "slug", + "files" +]
55 tool updates
- First observed
add_to_backlog - First observed
create_product - First observed
delete_backlog_item - First observed
delete_context - First observed
delete_product - First observed
delete_product_file - First observed
deploy_context - First observed
export_okf - First observed
find_assets - First observed
get_context - First observed
get_context_health - First observed
get_context_history - First observed
get_context_index - First observed
get_product - First observed
get_product_health - First observed
get_product_history - First observed
get_product_index - First observed
handover.annotate - First observed
handover.annotations - First observed
handover.assign - First observed
handover.comment - First observed
handover.continue - First observed
handover.create - First observed
handover.destination.create - First observed
handover.export - First observed
handover.exports - First observed
handover.folders - First observed
handover.get - First observed
handover.imports - First observed
handover.okf.export - First observed
handover.okf.import - First observed
handover.publication - First observed
handover.publish - First observed
handover.pull - First observed
handover.read_artifact - First observed
handover.requests - First observed
handover.resources - First observed
handover.search - First observed
handover.source.create - First observed
handover.source.run - First observed
handover.spaces - First observed
handover.thread - First observed
handover.update_comment - First observed
handover.whoami - First observed
import_okf - First observed
list_backlog - First observed
list_contexts - First observed
list_products - First observed
manage_folders - First observed
process_backlog - First observed
pull_context - First observed
read_product_file - First observed
update_context - First observed
update_product_knowledge - First observed
upload_product_files
Related MCP Connectors
- OneLoreOAuthai.onelore
Shared project context for AI agents and teams: docs, tasks, and messages that stay current.
Shared, permission-aware company context for AI agents, with provenance, approvals and audit.
Your portable context layer — load it into any AI.
Versioned artifact review for people and AI agents, with contextual comments and human control.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables teams to share structured, git-synced context among AI coding agents working on the same repository, including living plans, task declarations, handoff briefs, file-provenance history, and conflict detection.12876 npm2MIT
- AlicenseNot gradedqualityDmaintenanceShared memory hub for LLMs to persist and share project context, enabling seamless handoffs between different AI agents.5 npm1MIT
- AlicenseBqualityBmaintenanceProvides a shared context layer for AI agent teams to improve token efficiency through context deduplication and incremental state sharing. It enables multiple agents to coordinate tasks, share real-time discoveries, and manage dependencies while significantly reducing redundant data transmission.1507MIT
- AlicenseAqualityAmaintenanceShared memory and handoff hub for AI agents, enabling seamless context transfer between sessions with token-budgeted resumes and automatic handoffs.104 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.