Penwright — writing-craft library, guide metadata, and magazine
Was dieses MCP kann
Provides searchable writing-craft book records, guide metadata, and published multi-voice magazine pieces.
Tools
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['guide'], 'properties': {'guide': {'type': 'string', 'description': 'Guide slug (e.g. memoir-writing, nonfiction-writing, fiction-writing, getting-published).'}, 'picks': {'type': 'string', 'description': 'One char per debate in order: A, B, or any other char (or omit) for skip.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contract', 'guideSlug', 'guideTitle', 'picks', 'libraryIds', 'canonicalUrl', 'guideCanonicalUrl'], 'properties': {'picks': {'type': 'array', 'items': {'type': 'object', 'required': ['debateSlug', 'name', 'pick', 'libraryIds', 'canonicalUrl'], 'properties': {'name': {'type': 'string'}, 'pick': {'enum': ['A', 'B', 'skip'], 'type': 'string'}, 'debateSlug': {'type': 'string'}, 'libraryIds': {'type': 'array', 'items': {'type': 'string'}}, 'canonicalUrl': {'type': 'string'}}, 'additionalProperties': False}}, 'contract': {'type': 'string'}, 'guideSlug': {'type': 'string'}, 'guideTitle': {'type': 'string'}, 'libraryIds': {'type': 'array', 'items': {'type': 'string'}}, 'canonicalUrl': {'type': 'string'}, 'guideCanonicalUrl': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'description': "The Answer's stable id or slug."}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'slug', 'question', 'shortAnswer', 'answer', 'home', 'canonicalUrl', 'citations', 'status', 'access', 'version', 'contentHash', 'generatedBy', 'updatedAt'], 'properties': {'id': {'type': 'string'}, 'home': {'type': 'string'}, 'slug': {'type': 'string'}, 'access': {'type': 'string', 'const': 'free'}, 'answer': {'type': 'string'}, 'status': {'type': 'string'}, 'version': {'type': 'number'}, 'question': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['libraryId', 'title'], 'properties': {'claim': {'type': 'string'}, 'title': {'type': 'string'}, 'author': {'type': 'string'}, 'locator': {'type': 'string'}, 'libraryId': {'type': 'string'}}, 'additionalProperties': False}}, 'updatedAt': {'type': 'string'}, 'contentHash': {'type': 'string'}, 'generatedBy': {'type': 'object', 'required': ['authored'], 'properties': {'authored': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, 'shortAnswer': {'type': 'string'}, 'canonicalUrl': {'type': 'string'}, 'relatedGuides': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Debate slug (e.g. memoir-factual-accuracy-or-emotional-truth).'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contract', 'slug', 'guideSlug', 'guideTitle', 'topic', 'name', 'poles', 'stakes', 'guidance', 'libraryIds', 'canonicalUrl', 'guideCanonicalUrl'], 'properties': {'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'poles': {'type': 'array', 'items': [{'type': 'string'}, {'type': 'string'}], 'maxItems': 2, 'minItems': 2, 'additionalItems': False}, 'topic': {'type': 'string'}, 'stakes': {'type': ['string', 'null']}, 'contract': {'type': 'string'}, 'guidance': {'type': 'string'}, 'guideSlug': {'type': 'string'}, 'guideTitle': {'type': 'string'}, 'libraryIds': {'type': 'array', 'items': {'type': 'string'}}, 'canonicalUrl': {'type': 'string'}, 'guideCanonicalUrl': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Guide slug (e.g. memoir-writing, fiction-writing, getting-published, self-publishing).'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contract', 'slug', 'title', 'subtitle', 'guideType', 'access', 'books', 'readingTimeMin', 'updated', 'live', 'canonicalUrl'], 'properties': {'live': {'type': 'boolean'}, 'slug': {'type': 'string'}, 'books': {'type': ['number', 'null']}, 'title': {'type': 'string'}, 'access': {'type': 'string'}, 'updated': {'type': ['string', 'null']}, 'contract': {'type': 'string'}, 'subtitle': {'type': 'string'}, 'guideType': {'type': ['string', 'null']}, 'canonicalUrl': {'type': 'string'}, 'readingTimeMin': {'type': ['number', 'null']}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['libraryId'], 'properties': {'libraryId': {'type': 'string', 'description': 'Library catalog id (e.g. libce6efaa49e6f0175).'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contract', 'libraryId', 'title', 'author', 'year', 'tags', 'logline', 'pitch', 'canonicalUrl'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'year': {'type': ['number', 'null']}, 'pitch': {'type': ['string', 'null']}, 'title': {'type': 'string'}, 'author': {'type': ['string', 'null']}, 'logline': {'type': ['string', 'null']}, 'contract': {'type': 'string'}, 'libraryId': {'type': 'string'}, 'canonicalUrl': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Magazine piece slug.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contract', 'slug', 'title', 'format', 'question', 'generated', 'sections', 'editor', 'editorCoda', 'canonicalUrl'], 'properties': {'slug': {'type': 'string'}, 'title': {'type': 'string'}, 'editor': {'type': 'object', 'required': ['displayName', 'role'], 'properties': {'role': {'type': 'string'}, 'displayName': {'type': 'string'}}, 'additionalProperties': False}, 'format': {'type': 'string'}, 'contract': {'type': 'string'}, 'question': {'type': 'string'}, 'sections': {'type': 'array', 'items': {'type': 'object', 'required': ['writer', 'displayName', 'byline', 'body'], 'properties': {'body': {'type': 'string'}, 'byline': {'type': 'string'}, 'writer': {'type': 'string'}, 'displayName': {'type': 'string'}}, 'additionalProperties': False}}, 'generated': {'type': 'string'}, 'editorCoda': {'type': 'string'}, 'canonicalUrl': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'description': 'Max answers to return (default 25, capped 200).', 'exclusiveMinimum': 0}, 'cursor': {'type': 'string', 'description': "Opaque pagination cursor from a previous list_answers call's nextCursor."}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contract', 'count', 'nextCursor', 'items'], 'properties': {'count': {'type': 'number'}, 'items': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'slug', 'question', 'shortAnswer', 'answer', 'home', 'canonicalUrl', 'citations', 'status', 'access', 'version', 'contentHash', 'generatedBy', 'updatedAt'], 'properties': {'id': {'type': 'string'}, 'home': {'type': 'string'}, 'slug': {'type': 'string'}, 'access': {'type': 'string', 'const': 'free'}, 'answer': {'type': 'string'}, 'status': {'type': 'string'}, 'version': {'type': 'number'}, 'question': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['libraryId', 'title'], 'properties': {'claim': {'type': 'string'}, 'title': {'type': 'string'}, 'author': {'type': 'string'}, 'locator': {'type': 'string'}, 'libraryId': {'type': 'string'}}, 'additionalProperties': False}}, 'updatedAt': {'type': 'string'}, 'contentHash': {'type': 'string'}, 'generatedBy': {'type': 'object', 'required': ['authored'], 'properties': {'authored': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, 'shortAnswer': {'type': 'string'}, 'canonicalUrl': {'type': 'string'}, 'relatedGuides': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}}, 'contract': {'type': 'string'}, 'nextCursor': {'type': ['string', 'null']}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'description': 'Max results to return (default 25, capped 200).', 'exclusiveMinimum': 0}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Free-text query matched against question/answer text.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contract', 'query', 'count', 'results'], 'properties': {'count': {'type': 'number'}, 'query': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'slug', 'question', 'shortAnswer', 'answer', 'home', 'canonicalUrl', 'citations', 'status', 'access', 'version', 'contentHash', 'generatedBy', 'updatedAt'], 'properties': {'id': {'type': 'string'}, 'home': {'type': 'string'}, 'slug': {'type': 'string'}, 'access': {'type': 'string', 'const': 'free'}, 'answer': {'type': 'string'}, 'status': {'type': 'string'}, 'version': {'type': 'number'}, 'question': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object', 'required': ['libraryId', 'title'], 'properties': {'claim': {'type': 'string'}, 'title': {'type': 'string'}, 'author': {'type': 'string'}, 'locator': {'type': 'string'}, 'libraryId': {'type': 'string'}}, 'additionalProperties': False}}, 'updatedAt': {'type': 'string'}, 'contentHash': {'type': 'string'}, 'generatedBy': {'type': 'object', 'required': ['authored'], 'properties': {'authored': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}, 'shortAnswer': {'type': 'string'}, 'canonicalUrl': {'type': 'string'}, 'relatedGuides': {'type': 'array', 'items': {'type': 'object', 'required': ['slug', 'url'], 'properties': {'url': {'type': 'string'}, 'slug': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}}, 'contract': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tag': {'type': 'string', 'description': 'Case-insensitive property-tag substring.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Max rows to return (default 25, max 100).'}, 'query': {'type': 'string', 'description': 'Case-insensitive title/author substring.'}}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contract', 'query', 'tag', 'total', 'count', 'results'], 'properties': {'tag': {'type': ['string', 'null']}, 'count': {'type': 'number'}, 'query': {'type': ['string', 'null']}, 'total': {'type': 'number'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['libraryId', 'title', 'author', 'year', 'tags', 'canonicalUrl'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}}, 'year': {'type': ['number', 'null']}, 'title': {'type': 'string'}, 'author': {'type': ['string', 'null']}, 'libraryId': {'type': 'string'}, 'canonicalUrl': {'type': 'string'}}, 'additionalProperties': False}}, 'contract': {'type': 'string'}}, 'additionalProperties': False}
Letzte Tool-Änderungen
Ähnliche MCP-Server
Comicvine
Provides searchable Comic Vine data for comic characters, issues, volumes, creators, and publishers.
NotebookLM
Manages NotebookLM notebooks and sources, answers source-grounded questions with citations, and generates artifacts such as repor…
Anapioficeandfire
Searches and retrieves structured information about A Song of Ice and Fire books, characters, and houses.
Clevelandart
Searches Cleveland Museum of Art collection artworks, creators, exhibitions, and artwork records.
Archive
Provides access to Internet Archive item metadata and downloadable files for researching and retrieving archived digital material…
Georgia Archives
Searches and browses the National Archives of Georgia library, fonds, and film catalogues, and retrieves parsed archival library …
Artic
Provides Art Institute of Chicago artist, artwork, and exhibition records, including artwork descriptions, metadata, images, and …
Metmuseum
Searches The Metropolitan Museum of Art collection and retrieves detailed artwork metadata, images, artists, and classification i…