CDLI MCP服务器
A. 模型上下文协议(MCP) 暴露的服务器 楔形数字图书馆倡议 数据作为人工智能代理的结构化工具。
该原型直接连接到CDLI公共API,并允许任何兼容MCP的客户端(如Claude Desktop)搜索工件、检索元数据、获取作者等,而无需任何自定义集成工作。
运输: stdio (标准输入/输出)______________________________________________________________________
项目结构
cdli-mcp-server/
├── src/
│ ├── index.ts # MCP server entry point
│ └── tools/
│ ├── index.ts # Barrel export of all tools
│ ├── get-artifact/
│ │ └── index.ts # Fetch a single artifact by ID
│ ├── get-authors/
│ │ └── index.ts # List CDLI authors
│ ├── get-publications/
│ │ └── index.ts # List publications
│ ├── get-provenience/
│ │ └── index.ts # List proveniences (find sites)
│ └── ping/
│ └── index.ts # Liveness check
├── build/ # Compiled JS output (git-ignored)
├── package.json
└── tsconfig.json______________________________________________________________________
先决条件
- v18或更高版本
- npm
______________________________________________________________________
设置
# 1. Clone the repository
git clone
cd cdli-mcp-server
# 2. Install dependencies
npm install
# 3. Build the TypeScript source
npm run build要在开发过程中一步重建和运行:
npm run dev______________________________________________________________________
测试服务器
选项1:MCP检查员(推荐)
官方的MCP Inspector为您提供了一个浏览器UI,可以交互式地列出和调用工具。
第一步: 首先构建服务器(每次更改源文件时都必须完成):
npm run build第二步: 使用编译后的服务器启动检查器:
npx @modelcontextprotocol/inspector node build/index.js⚠️ 请勿使用npm run dev按照检查员的命令。 这dev脚本将构建输出打印到stdout,这会破坏JSON-RPC流并导致SyntaxError: Unexpected token '>'错误。
步骤3: 检查员将打印一个URL,如下所示:
🚀 MCP Inspector is up and running at:
http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=步骤4: 打开那个 完整URL (包括令牌查询参数)。在WSL/Linux上,浏览器不会自动打开,因此请手动复制粘贴。
💡 提示: 要完全跳过本地开发的身份验证令牌,请使用: ``bash DANGEROUSLY_OMIT_AUTH=true npx @modelcontextprotocol/inspector node build/index.js`然后导航到http://localhost:6274` 没有任何标记。
步骤5: 在检查器UI中:
- 集 运输 到
STDIO - 集 命令 到
node - 集 参数 到
build/index.js - 点击 连接
现在,您可以列出所有工具,并使用基于表单的界面调用它们。
选项2:通过stdin进行原始JSON-RPC
由于服务器使用stdio传输,您可以直接管道传输原始JSON-RPC消息:
列出所有可用工具:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node build/index.js呼叫 get_artifact 带有工件ID P315278:
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_artifact","arguments":{"id":"P315278"}}}' | node build/index.js______________________________________________________________________
连接到克劳德桌面
- 首先构建服务器:
npm run build
- 查找您的Claude Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json
- 添加以下条目(使用绝对路径
build/index.js):
{
"mcpServers": {
"cdli": {
"command": "node",
"args": ["/PATH/TO/CLONED/REPO/cdli-mcp-server/build/index.js"]
}
}
}- 重新启动克劳德桌面。现在,您将在对话中看到可用的CDLI工具。
______________________________________________________________________
可用工具
get_artifact
通过ID获取特定CDLI工件的完整元数据记录。
回复包括出版物、材料、时期、来源、收藏和 完整的ATF铭文/音译文本 (在 inscription.atf 现场)。不需要单独的题词工具——所有音译数据都嵌入在这个响应中。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | string | ✅ | CDLI工件ID--接受两个前缀(P315278)仅限数字(315278)格式 |
示例提示: *“获取工件P315278的完整元数据和铭文文本”*
______________________________________________________________________
______________________________________________________________________
get_authors
返回在CDLI数据库中注册的作者列表(最多20个)。
*无需参数。*
示例提示: *“列出CDLI数据库中的作者”*
______________________________________________________________________
get_publications
返回CDLI数据库中的发布列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
limit | 编号 | ❌ | 要返回的结果数(默认值:20) |
示例提示: *“列出CDLI数据库中的出版物”*
______________________________________________________________________
get_provenience
返回在CDLI中注册的来源(考古发现地点)列表。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
limit | 编号 | ❌ | 要返回的结果数(默认值:20) |
示例提示: *“CDLI中记录了哪些来源?”*
______________________________________________________________________
ping
一个简单的活性检查,以验证服务器是否正在运行和可访问。
*无需参数。*
示例提示: *“Ping CDLI服务器”*
______________________________________________________________________
开发说明
- 所有工具定义见
src/tools//index.ts必须出口name,description,inputSchema,以及handler. - 要添加新工具,请在下创建一个新文件夹
src/tools/,实现导出,并在中注册src/tools/index.ts. - 此服务器当前的实时CDLI API目标位于
https://cdli.earth.
______________________________________________________________________
/paper 代理运行时注意事项
蟒蛇 /paper 工作流现在通过调用此MCP服务器的工具来检索CDLI数据 stdio (而不是直接调用CDLI REST端点)。
在运行纸张代理之前,请构建MCP服务器:
npm run build然后从repo根运行paper(或配置 PAPER_MCP_WORKDIR):
python -m paper.run "grain storage in Ur III period"可选的MCP运行时环境变量 /paper:
PAPER_MCP_COMMAND(默认值:node)PAPER_MCP_ARGS(默认值:build/index.js)PAPER_MCP_TIMEOUT_SEC(默认值:8)PAPER_MCP_WORKDIR(默认:repo根)
______________________________________________________________________
参考文献
- mcp开放库 --构建MCP服务器项目的参考实现
- 模型上下文协议简介 --Anthropic官方MCP入门课程
- MCP构建服务器指南 --构建MCP服务器的官方文件
- MCP TypeScript SDK --用于构建此服务器的TypeScript SDK
______________________________________________________________________
许可证
麻省理工学院
