Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,541Letters: 14Defects: 1,323counted 3 min ago
teppi

Server definition

Hash
sha256:6593bd57375c8f865852c7d3d2d10aa258fc99c34b4b8ba313b2abe81bb5ecf4
What it is
What a remote MCP server returned when asked what it offers: 17 tools

The blob, as servednamed by its sha256

{ "instructions": "Search before creating duplicate context. Read a handover and its artifacts before continuing it. Pass the current revision ID to handover.continue.", "tools": [ { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "body": { "description": "Actionable annotation body in plain text or Markdown.", "maxLength": 10000, "minLength": 1, "type": "string" }, "handoverId": { "description": "Handover containing the artifact being annotated.", "pattern": "^hov_", "type": "string" }, "mentionPrincipalIds": { "description": "Collaborator principal IDs to mention and notify.", "items": { "pattern": "^prn_", "type": "string" }, "maxItems": 20, "type": "array" }, "target": { "additionalProperties": false, "description": "Immutable artifact location to anchor this annotation.", "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" } }, "required": [ "handoverId", "body", "target" ], "type": "object" }, "name": "handover.annotate", "outputSchema": null }, { "description": "Read revision-anchored file comments, selected text, status, authorship, and resolution metadata. Use status=open to find feedback that still needs action.", "inputSchema": { "additionalProperties": false, "properties": { "artifactId": { "pattern": "^art_", "type": "string" }, "handoverId": { "description": "Handover whose annotation threads should be read.", "pattern": "^hov_", "type": "string" }, "revisionId": { "pattern": "^rev_", "type": "string" }, "status": { "enum": [ "open", "resolved", "stale" ], "type": "string" } }, "required": [ "handoverId" ], "type": "object" }, "name": "handover.annotations", "outputSchema": null }, { "description": "Replace the open assignments with the supplied collaborator identities. This changes collaboration state, not the immutable handover revision.", "inputSchema": { "additionalProperties": false, "properties": { "handoverId": { "description": "Handover whose open assignments will be replaced.", "pattern": "^hov_", "type": "string" }, "principalIds": { "description": "Complete replacement list of assigned collaborator principal IDs.", "items": { "pattern": "^prn_", "type": "string" }, "maxItems": 20, "type": "array" } }, "required": [ "handoverId", "principalIds" ], "type": "object" }, "name": "handover.assign", "outputSchema": null }, { "description": "Append a discussion comment and optionally notify explicitly mentioned collaborators.", "inputSchema": { "additionalProperties": false, "properties": { "body": { "description": "Comment body in plain text or Markdown.", "maxLength": 10000, "minLength": 1, "type": "string" }, "handoverId": { "description": "Handover discussion to append the comment to.", "pattern": "^hov_", "type": "string" }, "mentionPrincipalIds": { "description": "Collaborator principal IDs to mention and notify.", "items": { "pattern": "^prn_", "type": "string" }, "maxItems": 20, "type": "array" } }, "required": [ "handoverId", "body" ], "type": "object" }, "name": "handover.comment", "outputSchema": null }, { "description": "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.", "inputSchema": { "additionalProperties": false, "anyOf": [ { "required": [ "note" ] }, { "required": [ "brief" ] }, { "required": [ "artifacts" ] } ], "properties": { "artifacts": { "description": "New or replacement files; omitted files remain inherited.", "items": { "additionalProperties": false, "properties": { "content": { "description": "UTF-8 text, or base64 when encoding is base64.", "type": "string" }, "encoding": { "default": "utf-8", "enum": [ "utf-8", "base64" ], "type": "string" }, "mediaType": { "description": "IANA media type, such as text/markdown or text/x-sql.", "type": "string" }, "name": { "description": "Filename shown in Handover.", "type": "string" } }, "required": [ "name", "content" ], "type": "object" }, "maxItems": 50, "minItems": 1, "type": "array" }, "brief": { "additionalProperties": false, "description": "Updated structured continuation brief.", "minProperties": 1, "properties": { "currentState": { "description": "Verified state at the moment this revision is published.", "type": "string" }, "decisions": { "description": "Decisions already made that successors should preserve.", "items": { "type": "string" }, "maxItems": 50, "type": "array" }, "nextSteps": { "description": "Concrete continuation steps for the receiving actor.", "items": { "additionalProperties": false, "properties": { "id": { "description": "Optional stable identifier for this step.", "type": "string" }, "status": { "description": "Whether the step still needs action.", "enum": [ "open", "done" ], "type": "string" }, "text": { "description": "One actionable continuation step.", "type": "string" } }, "required": [ "text" ], "type": "object" }, "maxItems": 50, "type": "array" }, "objective": { "description": "The outcome the next human or agent should continue toward.", "type": "string" }, "openQuestions": { "description": "Unresolved questions that still require evidence or judgment.", "items": { "type": "string" }, "maxItems": 50, "type": "array" } }, "type": "object" }, "expectedRevisionId": { "description": "Current revision ID returned by handover.get; prevents lost updates.", "pattern": "^rev_", "type": "string" }, "handoverId": { "description": "Handover to continue after reading its current snapshot.", "pattern": "^hov_", "type": "string" }, "note": { "description": "What changed or what the next collaborator should know.", "minLength": 1, "type": "string" } }, "required": [ "handoverId", "expectedRevisionId" ], "type": "object" }, "name": "handover.continue", "outputSchema": null }, { "description": "Create durable shared context with an initial immutable revision. Authorship comes from the authenticated Handover identity.", "inputSchema": { "additionalProperties": false, "anyOf": [ { "required": [ "note" ] }, { "required": [ "brief" ] }, { "required": [ "artifacts" ] } ], "properties": { "artifacts": { "description": "Files attached to the initial immutable revision.", "items": { "additionalProperties": false, "properties": { "content": { "description": "UTF-8 text, or base64 when encoding is base64.", "type": "string" }, "encoding": { "default": "utf-8", "enum": [ "utf-8", "base64" ], "type": "string" }, "mediaType": { "description": "IANA media type, such as text/markdown or text/x-sql.", "type": "string" }, "name": { "description": "Filename shown in Handover.", "type": "string" } }, "required": [ "name", "content" ], "type": "object" }, "maxItems": 50, "minItems": 1, "type": "array" }, "brief": { "additionalProperties": false, "description": "Structured continuation brief for humans and agents.", "minProperties": 1, "properties": { "currentState": { "description": "Verified state at the moment this revision is published.", "type": "string" }, "decisions": { "description": "Decisions already made that successors should preserve.", "items": { "type": "string" }, "maxItems": 50, "type": "array" }, "nextSteps": { "description": "Concrete continuation steps for the receiving actor.", "items": { "additionalProperties": false, "properties": { "id": { "description": "Optional stable identifier for this step.", "type": "string" }, "status": { "description": "Whether the step still needs action.", "enum": [ "open", "done" ], "type": "string" }, "text": { "description": "One actionable continuation step.", "type": "string" } }, "required": [ "text" ], "type": "object" }, "maxItems": 50, "type": "array" }, "objective": { "description": "The outcome the next human or agent should continue toward.", "type": "string" }, "openQuestions": { "description": "Unresolved questions that still require evidence or judgment.", "items": { "type": "string" }, "maxItems": 50, "type": "array" } }, "type": "object" }, "note": { "description": "Free-form continuation note recorded in the initial revision.", "minLength": 1, "type": "string" }, "summary": { "description": "Concise explanation of what this handover contains.", "maxLength": 2000, "type": "string" }, "title": { "description": "Short, specific name for the durable context.", "maxLength": 200, "type": "string" } }, "required": [ "title" ], "type": "object" }, "name": "handover.create", "outputSchema": null }, { "description": "Read a handover snapshot, continuation brief, artifact metadata, and revision history. Omit revisionId for the current snapshot.", "inputSchema": { "additionalProperties": false, "properties": { "handoverId": { "description": "Handover identifier returned by handover.search or handover.create.", "pattern": "^hov_", "type": "string" }, "revisionId": { "description": "Optional immutable revision; omit to inspect the current revision.", "pattern": "^rev_", "type": "string" } }, "required": [ "handoverId" ], "type": "object" }, "name": "handover.get", "outputSchema": null }, { "description": "Export a handover revision as an Open Knowledge Format bundle for another human or agent system.", "inputSchema": { "additionalProperties": false, "properties": { "handoverId": { "description": "Handover to export.", "pattern": "^hov_", "type": "string" }, "revisionId": { "description": "Immutable revision to export; defaults to the current revision.", "pattern": "^rev_", "type": "string" } }, "required": [ "handoverId" ], "type": "object" }, "name": "handover.okf.export", "outputSchema": null }, { "description": "Import Open Knowledge Format files into a new immutable Handover revision. Replaying the same bundle is idempotent.", "inputSchema": { "additionalProperties": false, "properties": { "expectedRevisionId": { "description": "Current revision ID used to prevent conflicting imports.", "pattern": "^rev_", "type": "string" }, "files": { "description": "Files from an Open Knowledge Format bundle.", "items": { "additionalProperties": false, "properties": { "content": { "description": "UTF-8 text, or base64 when encoding is base64.", "type": "string" }, "encoding": { "description": "How content is encoded in this request.", "enum": [ "utf-8", "base64" ], "type": "string" }, "mediaType": { "description": "IANA media type; inferred from path when omitted.", "type": "string" }, "path": { "description": "Relative path of this file inside the OKF bundle.", "type": "string" } }, "required": [ "path", "content" ], "type": "object" }, "maxItems": 100, "minItems": 1, "type": "array" }, "handoverId": { "description": "Existing handover that will receive the imported bundle.", "pattern": "^hov_", "type": "string" }, "mode": { "default": "merge", "description": "Merge bundle files with inherited artifacts or replace them.", "enum": [ "merge", "replace" ], "type": "string" } }, "required": [ "handoverId", "files" ], "type": "object" }, "name": "handover.okf.import", "outputSchema": null }, { "description": "Read the stable report URL, entry file, access mode, and selected revision for a handover.", "inputSchema": { "additionalProperties": false, "anyOf": [ { "required": [ "handoverId" ] }, { "required": [ "slug" ] } ], "properties": { "handoverId": { "description": "Handover whose publication should be inspected.", "pattern": "^hov_", "type": "string" }, "slug": { "description": "Stable published report slug.", "type": "string" } }, "type": "object" }, "name": "handover.publication", "outputSchema": null }, { "description": "Create or update a stable /r/{slug}/ report projection of a Handover revision.", "inputSchema": { "additionalProperties": false, "properties": { "access": { "description": "Who can open the report URL.", "enum": [ "organization", "public" ], "type": "string" }, "entryPath": { "description": "Artifact path opened first when readers visit the report.", "type": "string" }, "handoverId": { "description": "Handover to project as a stable report.", "pattern": "^hov_", "type": "string" }, "revisionId": { "description": "Revision to pin; used when revisionMode is pinned.", "pattern": "^rev_", "type": "string" }, "revisionMode": { "description": "Follow new revisions automatically or keep one revision pinned.", "enum": [ "latest", "pinned" ], "type": "string" }, "slug": { "description": "Stable URL slug; generated from the title when omitted.", "type": "string" } }, "required": [ "handoverId" ], "type": "object" }, "name": "handover.publish", "outputSchema": null }, { "description": "Return the selected files of a published report with paths, hashes, media types, and UTF-8 or base64 content.", "inputSchema": { "additionalProperties": false, "properties": { "files": { "description": "Optional relative paths to return; omit for every file.", "items": { "type": "string" }, "maxItems": 100, "type": "array" }, "includeBinary": { "default": false, "description": "Return binary files as base64 when true.", "type": "boolean" }, "slug": { "description": "Stable published report slug.", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "handover.pull", "outputSchema": null }, { "description": "Read bounded artifact content after inspecting a handover. Text is returned as UTF-8 and binary content as base64; truncated results report that explicitly.", "inputSchema": { "additionalProperties": false, "properties": { "artifactId": { "description": "Artifact identifier returned by handover.get.", "pattern": "^art_", "type": "string" }, "maxBytes": { "default": 524288, "description": "Maximum decoded bytes to return before reporting truncation.", "maximum": 2097152, "minimum": 1, "type": "integer" } }, "required": [ "artifactId" ], "type": "object" }, "name": "handover.read_artifact", "outputSchema": null }, { "description": "Find current shared context with hybrid, semantic, or lexical retrieval across metadata and artifact content. Use an empty query to list recent handovers.", "inputSchema": { "additionalProperties": false, "properties": { "cursor": { "type": "string" }, "limit": { "default": 30, "maximum": 100, "minimum": 1, "type": "integer" }, "mode": { "default": "hybrid", "enum": [ "hybrid", "semantic", "lexical" ], "type": "string" }, "query": { "type": "string" }, "status": { "default": "active", "enum": [ "active", "archived", "trashed" ], "type": "string" } }, "type": "object" }, "name": "handover.search", "outputSchema": null }, { "description": "Read comments, explicit mentions, assignments, and eligible collaborators without changing revision history.", "inputSchema": { "additionalProperties": false, "properties": { "handoverId": { "description": "Handover whose discussion and assignments should be read.", "pattern": "^hov_", "type": "string" } }, "required": [ "handoverId" ], "type": "object" }, "name": "handover.thread", "outputSchema": null }, { "description": "Edit an authored comment, or resolve/reopen an annotation. Set resolvedRevisionId when a new handover revision addressed the feedback.", "inputSchema": { "additionalProperties": false, "minProperties": 3, "properties": { "body": { "description": "Replacement comment body; omit to preserve the current body.", "maxLength": 10000, "minLength": 1, "type": "string" }, "commentId": { "description": "Comment or annotation to edit, resolve, or reopen.", "pattern": "^cmt_", "type": "string" }, "handoverId": { "description": "Handover containing the comment.", "pattern": "^hov_", "type": "string" }, "mentionPrincipalIds": { "description": "Replacement collaborator mentions.", "items": { "pattern": "^prn_", "type": "string" }, "maxItems": 20, "type": "array" }, "resolvedRevisionId": { "anyOf": [ { "pattern": "^rev_", "type": "string" }, { "type": "null" } ], "description": "Revision that addressed the feedback, or null when reopening." }, "status": { "description": "Open, resolve, or reopen the feedback thread.", "enum": [ "open", "resolved" ], "type": "string" }, "target": { "anyOf": [ { "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" } ], "description": "Replacement annotation target, or null to remove the anchor." } }, "required": [ "handoverId", "commentId" ], "type": "object" }, "name": "handover.update_comment", "outputSchema": null }, { "description": "Return the authenticated person or service agent, organization, workspace, role, and granted scopes. Call this before reading or publishing to confirm attribution and tenancy.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "handover.whoami", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:6593bd57375c8f865852c7d3d2d10aa258fc99c34b4b8ba313b2abe81bb5ecf4 | sha256sum