Server definition
- Hash
- sha256:24f7c5646a84105eb75461738e909dd64dd05ec699bed466cbda02c8f39f0c9b
- What it is
- What a remote MCP server returned when asked what it offers: 9 tools
The blob, as servednamed by its sha256
{
"instructions": "Penwright public read-only MCP server: writing-craft library catalog, grounded guide metadata (card-level, never gated body content), and multi-voice Writers'-Desk magazine pieces.",
"tools": [
{
"description": "Given a guide slug and one pick per debate ('A', 'B', or skip, in debate order, as a single string e.g. 'ABAB'), returns which library ids argue the picked side of each debate and the union reading list. Pure compute over public debate data — no book text is generated.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"guide": {
"description": "Guide slug (e.g. memoir-writing, nonfiction-writing, fiction-writing, getting-published).",
"type": "string"
},
"picks": {
"description": "One char per debate in order: A, B, or any other char (or omit) for skip.",
"type": "string"
}
},
"required": [
"guide"
],
"type": "object"
},
"name": "choose_camp",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"canonicalUrl": {
"type": "string"
},
"contract": {
"type": "string"
},
"guideCanonicalUrl": {
"type": "string"
},
"guideSlug": {
"type": "string"
},
"guideTitle": {
"type": "string"
},
"libraryIds": {
"items": {
"type": "string"
},
"type": "array"
},
"picks": {
"items": {
"additionalProperties": false,
"properties": {
"canonicalUrl": {
"type": "string"
},
"debateSlug": {
"type": "string"
},
"libraryIds": {
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"type": "string"
},
"pick": {
"enum": [
"A",
"B",
"skip"
],
"type": "string"
}
},
"required": [
"debateSlug",
"name",
"pick",
"libraryIds",
"canonicalUrl"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"contract",
"guideSlug",
"guideTitle",
"picks",
"libraryIds",
"canonicalUrl",
"guideCanonicalUrl"
],
"type": "object"
}
},
{
"description": "Get one Answer — question, grounded answer, visible citations — by id or slug, in the Answer contract v0 shape (ANSWERS-PROGRAM.md). Read-only. Returns null if not found.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"id": {
"description": "The Answer's stable id or slug.",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "get_answer",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"access": {
"const": "free",
"type": "string"
},
"answer": {
"type": "string"
},
"canonicalUrl": {
"type": "string"
},
"citations": {
"items": {
"additionalProperties": false,
"properties": {
"author": {
"type": "string"
},
"claim": {
"type": "string"
},
"libraryId": {
"type": "string"
},
"locator": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"libraryId",
"title"
],
"type": "object"
},
"type": "array"
},
"contentHash": {
"type": "string"
},
"generatedBy": {
"additionalProperties": false,
"properties": {
"authored": {
"const": true,
"type": "boolean"
}
},
"required": [
"authored"
],
"type": "object"
},
"home": {
"type": "string"
},
"id": {
"type": "string"
},
"question": {
"type": "string"
},
"relatedGuides": {
"items": {
"additionalProperties": false,
"properties": {
"slug": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"url"
],
"type": "object"
},
"type": "array"
},
"shortAnswer": {
"type": "string"
},
"slug": {
"type": "string"
},
"status": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"version": {
"type": "number"
}
},
"required": [
"id",
"slug",
"question",
"shortAnswer",
"answer",
"home",
"canonicalUrl",
"citations",
"status",
"access",
"version",
"contentHash",
"generatedBy",
"updatedAt"
],
"type": "object"
}
},
{
"description": "Returns one debate — a named tension between poles argued by different books on the same capability guide, with stakes, guidance, and the library ids of resolvable authors on either side. Known slugs (38): memoir-sentence-craft-or-structural-architecture-first, memoir-daily-discipline-or-trusting-inspiration, memoir-memoir-for-healing-or-for-readers, memoir-factual-accuracy-or-emotional-truth, memoir-chase-publication-or-intrinsic-reward, ….",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"slug": {
"description": "Debate slug (e.g. memoir-factual-accuracy-or-emotional-truth).",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_debate",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"canonicalUrl": {
"type": "string"
},
"contract": {
"type": "string"
},
"guidance": {
"type": "string"
},
"guideCanonicalUrl": {
"type": "string"
},
"guideSlug": {
"type": "string"
},
"guideTitle": {
"type": "string"
},
"libraryIds": {
"items": {
"type": "string"
},
"type": "array"
},
"name": {
"type": "string"
},
"poles": {
"additionalItems": false,
"items": [
{
"type": "string"
},
{
"type": "string"
}
],
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"slug": {
"type": "string"
},
"stakes": {
"type": [
"string",
"null"
]
},
"topic": {
"type": "string"
}
},
"required": [
"contract",
"slug",
"guideSlug",
"guideTitle",
"topic",
"name",
"poles",
"stakes",
"guidance",
"libraryIds",
"canonicalUrl",
"guideCanonicalUrl"
],
"type": "object"
}
},
{
"description": "Returns one live guide's title, subtitle, access, book count, and reading time — card-level metadata only, never the paid body/depth content. Known slugs (21): memoir-writing, nonfiction-writing, fiction-writing, getting-published, self-publishing, book-marketing, design-a-publication, typography-and-layout, ….",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"slug": {
"description": "Guide slug (e.g. memoir-writing, fiction-writing, getting-published, self-publishing).",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_guide",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"access": {
"type": "string"
},
"books": {
"type": [
"number",
"null"
]
},
"canonicalUrl": {
"type": "string"
},
"contract": {
"type": "string"
},
"guideType": {
"type": [
"string",
"null"
]
},
"live": {
"type": "boolean"
},
"readingTimeMin": {
"type": [
"number",
"null"
]
},
"slug": {
"type": "string"
},
"subtitle": {
"type": "string"
},
"title": {
"type": "string"
},
"updated": {
"type": [
"string",
"null"
]
}
},
"required": [
"contract",
"slug",
"title",
"subtitle",
"guideType",
"access",
"books",
"readingTimeMin",
"updated",
"live",
"canonicalUrl"
],
"type": "object"
}
},
{
"description": "Returns one writing-craft library work's bibliographic record and (when profiled) its thesis.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"libraryId": {
"description": "Library catalog id (e.g. libce6efaa49e6f0175).",
"type": "string"
}
},
"required": [
"libraryId"
],
"type": "object"
},
"name": "get_library_work",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"author": {
"type": [
"string",
"null"
]
},
"canonicalUrl": {
"type": "string"
},
"contract": {
"type": "string"
},
"libraryId": {
"type": "string"
},
"logline": {
"type": [
"string",
"null"
]
},
"pitch": {
"type": [
"string",
"null"
]
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"type": "string"
},
"year": {
"type": [
"number",
"null"
]
}
},
"required": [
"contract",
"libraryId",
"title",
"author",
"year",
"tags",
"logline",
"pitch",
"canonicalUrl"
],
"type": "object"
}
},
{
"description": "Returns one published magazine piece's question, per-writer sections, and editor's coda — the same content the human page renders, ungated. Known slugs (1): the-whole-room--my-memoir-keeps-stalling-i-can-write-scenes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"slug": {
"description": "Magazine piece slug.",
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_magazine_piece",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"canonicalUrl": {
"type": "string"
},
"contract": {
"type": "string"
},
"editor": {
"additionalProperties": false,
"properties": {
"displayName": {
"type": "string"
},
"role": {
"type": "string"
}
},
"required": [
"displayName",
"role"
],
"type": "object"
},
"editorCoda": {
"type": "string"
},
"format": {
"type": "string"
},
"generated": {
"type": "string"
},
"question": {
"type": "string"
},
"sections": {
"items": {
"additionalProperties": false,
"properties": {
"body": {
"type": "string"
},
"byline": {
"type": "string"
},
"displayName": {
"type": "string"
},
"writer": {
"type": "string"
}
},
"required": [
"writer",
"displayName",
"byline",
"body"
],
"type": "object"
},
"type": "array"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"contract",
"slug",
"title",
"format",
"question",
"generated",
"sections",
"editor",
"editorCoda",
"canonicalUrl"
],
"type": "object"
}
},
{
"description": "List Answers (contract v0), paginated with an opaque cursor. Read-only.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"cursor": {
"description": "Opaque pagination cursor from a previous list_answers call's nextCursor.",
"type": "string"
},
"limit": {
"description": "Max answers to return (default 25, capped 200).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
}
},
"type": "object"
},
"name": "list_answers",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"contract": {
"type": "string"
},
"count": {
"type": "number"
},
"items": {
"items": {
"additionalProperties": false,
"properties": {
"access": {
"const": "free",
"type": "string"
},
"answer": {
"type": "string"
},
"canonicalUrl": {
"type": "string"
},
"citations": {
"items": {
"additionalProperties": false,
"properties": {
"author": {
"type": "string"
},
"claim": {
"type": "string"
},
"libraryId": {
"type": "string"
},
"locator": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"libraryId",
"title"
],
"type": "object"
},
"type": "array"
},
"contentHash": {
"type": "string"
},
"generatedBy": {
"additionalProperties": false,
"properties": {
"authored": {
"const": true,
"type": "boolean"
}
},
"required": [
"authored"
],
"type": "object"
},
"home": {
"type": "string"
},
"id": {
"type": "string"
},
"question": {
"type": "string"
},
"relatedGuides": {
"items": {
"additionalProperties": false,
"properties": {
"slug": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"url"
],
"type": "object"
},
"type": "array"
},
"shortAnswer": {
"type": "string"
},
"slug": {
"type": "string"
},
"status": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"version": {
"type": "number"
}
},
"required": [
"id",
"slug",
"question",
"shortAnswer",
"answer",
"home",
"canonicalUrl",
"citations",
"status",
"access",
"version",
"contentHash",
"generatedBy",
"updatedAt"
],
"type": "object"
},
"type": "array"
},
"nextCursor": {
"type": [
"string",
"null"
]
}
},
"required": [
"contract",
"count",
"nextCursor",
"items"
],
"type": "object"
}
},
{
"description": "Search Answers by free-text query over question/answer text. Returns contract v0 records. Read-only.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"description": "Max results to return (default 25, capped 200).",
"exclusiveMinimum": 0,
"maximum": 200,
"type": "integer"
},
"query": {
"description": "Free-text query matched against question/answer text.",
"minLength": 1,
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_answers",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"contract": {
"type": "string"
},
"count": {
"type": "number"
},
"query": {
"type": "string"
},
"results": {
"items": {
"additionalProperties": false,
"properties": {
"access": {
"const": "free",
"type": "string"
},
"answer": {
"type": "string"
},
"canonicalUrl": {
"type": "string"
},
"citations": {
"items": {
"additionalProperties": false,
"properties": {
"author": {
"type": "string"
},
"claim": {
"type": "string"
},
"libraryId": {
"type": "string"
},
"locator": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"libraryId",
"title"
],
"type": "object"
},
"type": "array"
},
"contentHash": {
"type": "string"
},
"generatedBy": {
"additionalProperties": false,
"properties": {
"authored": {
"const": true,
"type": "boolean"
}
},
"required": [
"authored"
],
"type": "object"
},
"home": {
"type": "string"
},
"id": {
"type": "string"
},
"question": {
"type": "string"
},
"relatedGuides": {
"items": {
"additionalProperties": false,
"properties": {
"slug": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"url"
],
"type": "object"
},
"type": "array"
},
"shortAnswer": {
"type": "string"
},
"slug": {
"type": "string"
},
"status": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"version": {
"type": "number"
}
},
"required": [
"id",
"slug",
"question",
"shortAnswer",
"answer",
"home",
"canonicalUrl",
"citations",
"status",
"access",
"version",
"contentHash",
"generatedBy",
"updatedAt"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"contract",
"query",
"count",
"results"
],
"type": "object"
}
},
{
"description": "Search or list Penwright's writing-craft book library by title/author substring and/or property tag. No filters returns the first page.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"description": "Max rows to return (default 25, max 100).",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Case-insensitive title/author substring.",
"type": "string"
},
"tag": {
"description": "Case-insensitive property-tag substring.",
"type": "string"
}
},
"type": "object"
},
"name": "search_library",
"outputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"contract": {
"type": "string"
},
"count": {
"type": "number"
},
"query": {
"type": [
"string",
"null"
]
},
"results": {
"items": {
"additionalProperties": false,
"properties": {
"author": {
"type": [
"string",
"null"
]
},
"canonicalUrl": {
"type": "string"
},
"libraryId": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"type": "string"
},
"year": {
"type": [
"number",
"null"
]
}
},
"required": [
"libraryId",
"title",
"author",
"year",
"tags",
"canonicalUrl"
],
"type": "object"
},
"type": "array"
},
"tag": {
"type": [
"string",
"null"
]
},
"total": {
"type": "number"
}
},
"required": [
"contract",
"query",
"tag",
"total",
"count",
"results"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:24f7c5646a84105eb75461738e909dd64dd05ec699bed466cbda02c8f39f0c9b | sha256sum