{"_id":"@dhcckb/cnkgraph-mcp-server","name":"@dhcckb/cnkgraph-mcp-server","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@dhcckb/cnkgraph-mcp-server","version":"1.0.0","description":"古典文献知识图谱 MCP Server — 封装 open.cnkgraph.com REST API 为 MCP Tools，支持人物搜索、文献检索、关系查询、图谱漫游等数字人文研究场景","main":"dist/index.js","type":"module","bin":{"cnkgraph-mcp-server":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","inspector":"npx @anthropic-ai/mcp-inspector node dist/index.js"},"keywords":["mcp","model-context-protocol","classical-chinese-literature","knowledge-graph","digital-humanities","cnkgraph"],"repository":{"type":"git","url":"git+https://github.com/dhcckb/cnkgraph-mcp-server.git"},"license":"MIT","engines":{"node":">=18.0.0"},"mcp":{"tools":[{"name":"search_entities","description":"在古典文献知识图谱中按关键词搜索实体（人物、地名等）。若指定 entity_type=person 则搜索人物；若指定 entity_type=place 则搜索地名。","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"搜索关键词（人名、地名、官名等）"},"entity_type":{"type":"string","enum":["person","place"],"description":"限定实体类别：person（人物）| place（地名）"}},"required":["query"]}},{"name":"get_entity_detail","description":"根据实体 ID 获取人物详情，包括姓名、朝代、简介、别名、外部标识符与关联实体预览。实体 ID 可以是数字 ID 或人物姓名/别名。","inputSchema":{"type":"object","properties":{"entity_id":{"type":"string","description":"实体 ID（数字 ID 或人物姓名/别名）"}},"required":["entity_id"]}},{"name":"get_entity_relations","description":"获取两个人物之间的述及关系（谁在哪篇作品中提及谁），或获取某人所有的述及/被述及概览。若仅提供 source_id，返回该人物的全部述及关系概览；若同时提供 target_id，返回两人之间的具体述及作品列表。","inputSchema":{"type":"object","properties":{"source_id":{"type":"string","description":"源人物 ID（数字 ID 或姓名）"},"target_id":{"type":"string","description":"目标人物 ID（可选，不填则返回源人物的全部关系概览）"},"page":{"type":"integer","description":"分页页码（从 0 开始，仅在指定 target_id 时生效）","default":0}},"required":["source_id"]}},{"name":"search_literature","description":"在古典文献库中按关键词、作者、朝代、韵部等条件检索作品。至少需要提供一个检索条件（keyword / author / dynasty）。返回匹配的作品元数据列表。","inputSchema":{"type":"object","properties":{"keyword":{"type":"string","description":"检索关键词（正文或标题匹配）"},"author":{"type":"string","description":"作者姓名（全名/别名/片段）"},"dynasty":{"type":"string","description":"朝代（如：唐、宋、元、明、清）"},"rhyme":{"type":"string","description":"韵部/韵脚过滤"},"writing_type":{"type":"string","description":"作品类型"},"page":{"type":"integer","description":"分页页码（从 0 开始）","default":0}}}},{"name":"get_literature_text","description":"根据文献/作品 ID 获取正文内容。对于诗作类作品使用 Poem 端点（可附带知识图谱链接）；对于典籍类文献使用 Writing 端点。默认尝试 Poem 端点，失败后回退到 Writing 端点。","inputSchema":{"type":"object","properties":{"literature_id":{"type":"string","description":"文献/作品 ID（数字 ID）"},"include_links":{"type":"boolean","description":"是否附带知识图谱实体链接","default":false}},"required":["literature_id"]}},{"name":"get_literature_metadata","description":"获取单篇文献/作品的完整元数据，包括书目链接（版本/馆藏）、知识标签（实体链接）、地理标注、声调标注等。并行请求多个元数据端点并聚合返回。","inputSchema":{"type":"object","properties":{"literature_id":{"type":"string","description":"文献/作品 ID（数字 ID）"}},"required":["literature_id"]}},{"name":"graph_explore","description":"以给定人物为起点，获取其在知识图谱中的关联网络。返回该人物的述及关系（mentionship）网络，包括述及者、被述及者与关联作品。默认返回一跳关系概览。","inputSchema":{"type":"object","properties":{"start_entity_id":{"type":"string","description":"起始实体 ID（数字 ID 或姓名）"},"filter":{"type":"string","description":"关系过滤条件"}},"required":["start_entity_id"]}},{"name":"sparql_query","description":"直接执行 SPARQL 查询。注意：open.cnkgraph.com 当前未暴露公开 SPARQL 端点，此工具暂时不可用。如需 SPARQL 查询能力，请联系平台方确认是否提供 SPARQL 端点。","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"完整的 SPARQL 查询语句"},"format":{"type":"string","enum":["json","csv","tsv"],"description":"返回格式","default":"json"}},"required":["query"]}}]},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","zod":"^3.24.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.7.0"},"_id":"@dhcckb/cnkgraph-mcp-server@1.0.0","types":"./dist/index.d.ts","bugs":{"url":"https://github.com/dhcckb/cnkgraph-mcp-server/issues"},"homepage":"https://github.com/dhcckb/cnkgraph-mcp-server#readme","_integrity":"sha512-qQUQa8Lb6CMNr1+udToBTLHfs2LRQpyPNoNphDcHJBmN6N5fug49pXw5CN/3EFU516dQ6YvX8bAEDTYcn1PVrA==","_resolved":"/tmp/dhp-agent-npm-GLKJDL/package.tgz","_from":"file:/tmp/dhp-agent-npm-GLKJDL/package.tgz","_nodeVersion":"22.22.2","_npmVersion":"10.9.1","dist":{"integrity":"sha512-qQUQa8Lb6CMNr1+udToBTLHfs2LRQpyPNoNphDcHJBmN6N5fug49pXw5CN/3EFU516dQ6YvX8bAEDTYcn1PVrA==","shasum":"8a1bffa7bdf40cbdc517040396a92e6d7dec7a70","tarball":"https://registry.npmjs.org/@dhcckb/cnkgraph-mcp-server/-/cnkgraph-mcp-server-1.0.0.tgz","fileCount":10,"unpackedSize":63476,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHDFHm1MpgDD15R/42MVL7P3uTxfV2pbRBUMvopoxgaPAiEAlKncjaBYh6M1N+jSyLzwxUHjjVtgbGF5SxC4BEyUzrk="}]},"_npmUser":{"name":"thudh","email":"tangchen@mail.tsinghua.edu.cn"},"directories":{},"maintainers":[{"name":"thudh","email":"tangchen@mail.tsinghua.edu.cn"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cnkgraph-mcp-server_1.0.0_1785575245838_0.16837230786262514"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-01T09:07:25.697Z","1.0.0":"2026-08-01T09:07:25.973Z","modified":"2026-08-01T09:07:26.218Z"},"maintainers":[{"name":"thudh","email":"tangchen@mail.tsinghua.edu.cn"}],"description":"古典文献知识图谱 MCP Server — 封装 open.cnkgraph.com REST API 为 MCP Tools，支持人物搜索、文献检索、关系查询、图谱漫游等数字人文研究场景","homepage":"https://github.com/dhcckb/cnkgraph-mcp-server#readme","keywords":["mcp","model-context-protocol","classical-chinese-literature","knowledge-graph","digital-humanities","cnkgraph"],"repository":{"type":"git","url":"git+https://github.com/dhcckb/cnkgraph-mcp-server.git"},"bugs":{"url":"https://github.com/dhcckb/cnkgraph-mcp-server/issues"},"license":"MIT","readme":"# 古典文献知识图谱 MCP Server\n\n`@dhcckb/cnkgraph-mcp-server` 是一个 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) Server，将[古典文献知识图谱网](https://open.cnkgraph.com)的 REST API 封装为 MCP Tools，支持在 Claude Desktop、VS Code Copilot 等 AI 工具中直接检索古典文献、探索人物关系、查询知识图谱。\n\n## 功能概览\n\n| Tool | 说明 |\n|------|------|\n| `search_entities` | 按关键词搜索实体（人物、地名） |\n| `get_entity_detail` | 获取人物详情（含地理映射视图） |\n| `get_entity_relations` | 查询人物间述及关系（谁在哪篇作品中提及谁） |\n| `search_literature` | 按关键词/作者/朝代/韵部检索古典文学作品 |\n| `get_literature_text` | 获取诗作或文献正文内容 |\n| `get_literature_metadata` | 获取文献完整元数据（书目链接、知识标签、地理标注、声调） |\n| `graph_explore` | 以人物为起点探索知识图谱关联网络 |\n| `sparql_query` | SPARQL 查询（当前平台未暴露公开 SPARQL 端点，暂不可用） |\n\n## 环境要求\n\n- **Node.js** ≥ 18.0.0\n- **npm** ≥ 9.0.0\n- 无需 API Key —— open.cnkgraph.com 的开放 API 无需鉴权\n\n## 快速开始\n\n### 1. 安装\n\n```bash\nnpx -y @dhcckb/cnkgraph-mcp-server\n```\n\n### 2. 在 Claude Desktop 中配置\n\n编辑 Claude Desktop 的配置文件 `claude_desktop_config.json`：\n\n```json\n{\n  \"mcpServers\": {\n    \"cnkgraph\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dhcckb/cnkgraph-mcp-server\"]\n    }\n  }\n}\n```\n\n配置文件位置：\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n- **Linux**: `~/.config/Claude/claude_desktop_config.json`\n\n### 3. 本地开发\n\n```bash\n# 克隆并安装\ngit clone <repo-url> cnkgraph-mcp-server\ncd cnkgraph-mcp-server\nnpm install\n\n# 编译\nnpm run build\n\n# 使用 MCP Inspector 调试\nnpm run inspector\n\n# 或直接启动\nnpm start\n```\n\n## API 说明\n\n本 MCP Server 封装了 `open.cnkgraph.com` 的以下 API 模块：\n\n- **People** — 人物搜索、详情、关系（述及/被述及）、地理映射\n- **Writing / Poem** — 作品全文检索、详情、书目链接、知识标签\n- **Book** — 典籍分类、检索、卷全文\n- **Biography** — 诗人生平（事件时间线、交游、活动轨迹）\n- **Calendar** — 日历日期解析、年号、干支\n- **Map** — 区域搜索\n- **Tool** — 实体抽取（LabelAndResolveEntity）\n\n详细 API 文档见 [open.cnkgraph.com/swagger](https://open.cnkgraph.com/swagger/index.html)。\n\n## 使用示例\n\n与 AI 助手的对话示例：\n\n> **用户**：帮我搜索唐代诗人李白的信息\n>\n> AI 调用 `search_entities(query=\"李白\", entity_type=\"person\")` → 返回人物列表\n\n> **用户**：李白和杜甫之间有什么关联？\n>\n> AI 调用 `get_entity_relations(source_id=\"李白\", target_id=\"杜甫\")` → 返回互述作品\n\n> **用户**：搜索包含\"明月\"的唐诗\n>\n> AI 调用 `search_literature(keyword=\"明月\", dynasty=\"唐\")` → 返回匹配作品\n\n## 技术架构\n\n```\n┌─────────────────────┐     stdio      ┌──────────────────────┐     HTTPS      ┌─────────────────────┐\n│  MCP Client          │ ◄────────────► │  cnkgraph-mcp-server  │ ◄────────────► │  open.cnkgraph.com  │\n│  (Claude Desktop)    │   JSON-RPC     │  (Node.js / stdio)    │   REST API     │  (知识图谱后端)       │\n└─────────────────────┘                └──────────────────────┘               └─────────────────────┘\n```\n\n- **Transport**: stdio (JSON-RPC 2.0)\n- **HTTP Client**: 原生 `fetch` API，含自动重试（429/5xx，最多 3 次）\n- **输入校验**: Zod schema\n- **运行时**: Node.js ≥ 18，ESM 模块\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-99c4d0b7306b31df59c754ea2f897b5f"}