Penwright — writing-craft library, guide metadata, and magazine
Read-only access to Penwright's writing-craft book library, grounded guide metadata (card-level...
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"discovery": {
"url": "https://penwright.ink/api/mcp"
}
}
}원격 엔드포인트
https://penwright.ink/api/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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#"
}출력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"libraryId": {
"type": "string",
"description": "Library catalog id (e.g. libce6efaa49e6f0175)."
}
},
"required": [
"libraryId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"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, ….
입력 스키마
{
"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#"
}출력 스키마
{
"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.
입력 스키마
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Magazine piece slug."
}
},
"required": [
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}출력 스키마
{
"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
}커뮤니티
증거