Penwright — writing-craft library, guide metadata, and magazine
Read-only access to Penwright's writing-craft book library, grounded guide metadata (card-level...
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"discovery": {
"url": "https://penwright.ink/api/mcp"
}
}
}Puntos de conexión remotos
https://penwright.ink/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (4)
🟢search_library(query, tag, limit)
Search or list Penwright's writing-craft book library by title/author substring and/or property tag. No filters returns the first page.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"description": "Case-insensitive title/author substring.",
"type": "string"
},
"tag": {
"description": "Case-insensitive property-tag substring.",
"type": "string"
},
"limit": {
"description": "Max rows to return (default 25, max 100).",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"contract": {
"type": "string"
},
"query": {
"type": [
"string",
"null"
]
},
"tag": {
"type": [
"string",
"null"
]
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"libraryId": {
"type": "string"
},
"title": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"year": {
"type": [
"number",
"null"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"canonicalUrl": {
"type": "string"
}
},
"required": [
"libraryId",
"title",
"author",
"year",
"tags",
"canonicalUrl"
],
"additionalProperties": false
}
}
},
"required": [
"contract",
"query",
"tag",
"total",
"count",
"results"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_library_work(libraryId)
Returns one writing-craft library work's bibliographic record and (when profiled) its thesis.
Esquema de entrada
{
"type": "object",
"properties": {
"libraryId": {
"type": "string",
"description": "Library catalog id (e.g. libce6efaa49e6f0175)."
}
},
"required": [
"libraryId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"contract": {
"type": "string"
},
"libraryId": {
"type": "string"
},
"title": {
"type": "string"
},
"author": {
"type": [
"string",
"null"
]
},
"year": {
"type": [
"number",
"null"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"logline": {
"type": [
"string",
"null"
]
},
"pitch": {
"type": [
"string",
"null"
]
},
"canonicalUrl": {
"type": "string"
}
},
"required": [
"contract",
"libraryId",
"title",
"author",
"year",
"tags",
"logline",
"pitch",
"canonicalUrl"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_guide(slug)
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, ….
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Guide slug (e.g. memoir-writing, fiction-writing, getting-published, self-publishing)."
}
},
"required": [
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"contract": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"subtitle": {
"type": "string"
},
"guideType": {
"type": [
"string",
"null"
]
},
"access": {
"type": "string"
},
"books": {
"type": [
"number",
"null"
]
},
"readingTimeMin": {
"type": [
"number",
"null"
]
},
"updated": {
"type": [
"string",
"null"
]
},
"live": {
"type": "boolean"
},
"canonicalUrl": {
"type": "string"
}
},
"required": [
"contract",
"slug",
"title",
"subtitle",
"guideType",
"access",
"books",
"readingTimeMin",
"updated",
"live",
"canonicalUrl"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_magazine_piece(slug)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Magazine piece slug."
}
},
"required": [
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"contract": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"format": {
"type": "string"
},
"question": {
"type": "string"
},
"generated": {
"type": "string"
},
"sections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"writer": {
"type": "string"
},
"displayName": {
"type": "string"
},
"byline": {
"type": "string"
},
"body": {
"type": "string"
}
},
"required": [
"writer",
"displayName",
"byline",
"body"
],
"additionalProperties": false
}
},
"editor": {
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"role": {
"type": "string"
}
},
"required": [
"displayName",
"role"
],
"additionalProperties": false
},
"editorCoda": {
"type": "string"
},
"canonicalUrl": {
"type": "string"
}
},
"required": [
"contract",
"slug",
"title",
"format",
"question",
"generated",
"sections",
"editor",
"editorCoda",
"canonicalUrl"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Comunidad
Evidencia