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

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:24f7c5646a84105eb75461738e909dd64dd05ec699bed466cbda02c8f39f0c9b | sha256sum