关于 Zenodo MCP
Zenodo MCP 是面向开发者和研究人员的 MCP 服务,将 Zenodo 开放研究记录提供为可调用工具。它支持检索、元数据与引文获取以及文件访问,包含直接 MCP 接入和 FastAPI 服务两种实现。
主要功能
- 01搜索 Zenodo 记录
- 02读取详细元数据
- 03获取 BibTeX 或 APA 引文
- 04比较记录并识别数据类型
- 05列出及下载附件文件
适用场景
- 01发现论文、软件和数据集
- 02为论文或笔记获取引文
- 03让研究 Agent 基于开放研究数据作答
- 04查找并下载可复现研究资料
MCP 相关
提供标准 MCP 服务,供兼容客户端调用 Zenodo 检索和读取工具;另有 FastAPI 实现,为 LangChain、LangGraph 和 OpenAI 兼容客户端提供 MCP 兼容工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-zenodo — Zenodo MCP 服务
mcp-zenodo 是一个 Zenodo MCP 服务:它通过 Model Context Protocol (MCP),将大模型连接到 Zenodo——由 CERN 托管的开放获取研究知识库。 它让大模型能够将搜索 Zenodo 记录、读取元数据、获取引用,以及列出或下载文件作为可调用的工具。它面向希望 AI 助手处理开放研究数据集、软件和出版物的开发者与研究人员。如果你希望 Claude Desktop、Cursor IDE 或 LangChain/LangGraph Agent 等工具基于带有 DOI 的真实 Zenodo 记录生成回答,就可以使用它。如果你需要向 Zenodo 存储或发布内容,则不应使用它,因为本项目侧重于读取和检索,不实现上传工作流。与直接调用 Zenodo REST API 相比,mcp-zenodo 将这些访问功能封装为 MCP 工具,因此任何兼容 MCP 的客户端都能使用 Zenodo,无需编写自定义集成代码。
一句话价值主张:一个面向 Zenodo 的 MCP 服务,将开放获取研究数据转化为大模型可调用的工具。
使用 Python 编写。采用 Apache-2.0 许可证。
功能
mcp-zenodo 通过 MCP 工具向大模型开放 Zenodo 的研究成果知识库:
- 搜索和检索记录 — 按查询查找 Zenodo 记录。
- 获取引用 — 获取 BibTeX、APA 等格式的引用。
- 识别数据类型 — 将记录分类为数据集、软件或文章。
- 访问元数据 — 获取记录的详细元数据。
- 列出和下载文件 — 浏览并下载附加到记录的文件。
可用工具
| 工具 | 描述 |
|---|---|
search_records | 搜索 Zenodo 中的记录 |
get_metadata | 获取 Zenodo 记录的详细元数据 |
get_citation | 返回 Zenodo 记录的 BibTeX 或 APA 格式引用 |
detect_data_type | 判断记录是数据集、软件还是文章 |
compare_records | 比较多个 Zenodo 记录的元数据 |
list_files | 列出 Zenodo 记录中的可用文件 |
download_file | 下载记录中的指定文件 |
generate_embed_link | 为记录创建可直接嵌入的链接(PDF、数据集) |
extract_keywords | 从记录的摘要或文本中提取主要关键词 |
get_related_records | 查找与指定 Zenodo 记录相关的记录 |
summarize_record | 根据记录的元数据生成摘要 |
仓库结构
本仓库包含两个实现,适用于两种不同的使用场景:
- MCP SDK Core (
/mcp_sdk_core) — 一个 Python MCP 服务,可集成到启用了 MCP 的环境中,例如 Cursor IDE 和 Claude Desktop。 - MCP API (
/mcp_api) — 一个 FastAPI 服务,为 LangChain、LangGraph 等大模型框架及兼容 OpenAI 的客户端提供兼容 MCP 的工具。
MCP SDK Core
MCP SDK Core 实现专为直接集成到启用了 MCP 的环境而设计。它提供:
- 直接集成 MCP — 遵循 Model Context Protocol 标准。
- 兼容 Cursor IDE / Claude Desktop — 通过标准 MCP 客户端配置进行连接。
- 简单配置 — 通过 JSON 配置文件进行管理。
- 统一 API — 以标准化方式访问 Zenodo 资源。
对于希望在开发环境中直接访问 Zenodo、无需额外中间件的开发者而言,这是理想之选。
MCP API
MCP API 的实现是一个 FastAPI 服务,为大模型框架提供兼容 MCP 的工具。它提供:
- LangChain 集成 — 在 LangChain Agent 中使用这些工具。
- LangGraph 兼容性 — 在 LangGraph 工作流中使用这些工具。
- 兼容 OpenAI 的 API — 可与兼容 OpenAI 的客户端搭配使用。
- LibreChat 支持 — 兼容 LibreChat 和类似平台。
- 自定义工具创建 — 可扩展的架构,支持添加工具。
对于构建 LLM 应用,并希望在更大型工作流中与 Zenodo 交互的开发者而言,这是理想之选。
30 秒快速入门
选项 A — 用于 Cursor IDE / Claude Desktop 的 MCP 服务
# Clone the repository
git clone https://github.com/MSKazemi/mcp-zenodo.git
cd mcp-zenodo/mcp_sdk_core
# Install dependencies
pip install -r requirements.txt
然后在 MCP 客户端中注册该服务。对于 Cursor IDE,创建一个 mcp.json(位于项目根目录或 ~/.cursor/);对于 Claude Desktop,将相同配置块添加到 claude_desktop_config.json 中:
{
"mcpServers": {
"Zenodo": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-zenodo/mcp_sdk_core/server",
"run",
"server.py"
]
}
}
}
将 --directory 路径调整为本地检出目录。重启客户端;它会检测并启动 Zenodo MCP 服务。然后,你可以让助手搜索 Zenodo、获取元数据或检索引文。
选项 B — 用于 LangChain / LangGraph / 兼容 OpenAI 客户端的 FastAPI 服务
# Clone the repository
git clone https://github.com/MSKazemi/mcp-zenodo.git
cd mcp-zenodo/mcp_api
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Edit .env with your Zenodo API token
# Run the API server
uvicorn server.main:app --host 0.0.0.0 --port 8000
示例
向支持 MCP 的助手(Claude Desktop、Cursor)提出一个会触发 search_records 工具的问题:
“搜索 Zenodo 中与气候模型输出有关的记录,并展示排名第一的结果及其 DOI。”
助手会调用 search_records 工具,然后调用 get_metadata,并返回一条记录的标题、作者、DOI 和描述。一个具有代表性的(简略)工具结果如下:
{
"hits": [
{
"title": "Example Climate Model Output Dataset",
"doi": "10.5281/zenodo.1234567",
"type": "dataset",
"url": "https://zenodo.org/record/1234567"
}
]
}
之后,你可以调用 get_citation 获取 BibTeX 或 APA 引文,或者调用 list_files / download_file 访问该记录的文件。(具体字段和值取决于返回的实时 Zenodo 记录。)
使用场景
- 文献和数据集发现 — 让 AI 助手搜索 Zenodo,并展示带有 DOI 的相关数据集、软件和论文。
- 引文检索 — 直接将记录的 BibTeX 或 APA 引文提取到手稿或笔记本中。
- 研究 Agent — 为 LangChain/LangGraph Agent 提供 Zenodo 工具,让它们基于开放研究数据生成可靠回答。
- 编辑器内研究 — 在编写代码或文档时,通过 Cursor IDE 或 Claude Desktop 查询 Zenodo。
- 可复现性工作流 — 以编程方式查找研究成果、检查其元数据并下载。
对比与替代方案
- 与直接调用 Zenodo REST API 相比 — Zenodo REST API 提供完整控制(包括存档/上传),但你必须自行编写并维护集成。mcp-zenodo 将常见的读取/检索操作封装为 MCP 工具,让任何 MCP 客户端无需编写自定义代码即可使用。
- 与通用 HTTP/抓取 MCP 服务相比 — 通用抓取工具可以访问 Zenodo URL,但不了解记录、元数据、引文或文件列表。mcp-zenodo 提供专用于 Zenodo 的类型化工具。
- 与其他研究存储库 MCP 服务相比 — arXiv 和其他数据存储库等来源也有类似的 MCP 服务;mcp-zenodo 则专注于 Zenodo。它提供两种集成方式(stdio MCP 服务和 FastAPI 服务),让你可以在直接使用 MCP 客户端与兼容大模型框架/OpenAI 的用法之间进行选择。
限制 / 不适用场景
- 不用于存入或发布——此项目专注于在 Zenodo 中搜索和检索,不实现 Zenodo 存入 / 上传工作流。
- 依赖 Zenodo API——服务可用性、速率限制和返回字段均由 Zenodo 决定;某些操作可能需要 Zenodo API 令牌。
- 检索质量取决于 Zenodo 元数据——数据类型检测、关键词提取和摘要均根据记录元数据生成,仅尽力提供。
- 有两种独立实现——MCP SDK Core 服务和 FastAPI 服务的配置方式不同;请选择与客户端匹配的实现,而不要期待单一的统一部署。
常见问题
mcp-zenodo 是什么? mcp-zenodo 是一个 Zenodo MCP 服务——它是模型上下文协议的一种实现,可将 Zenodo(CERN 的开放获取研究仓库)提供给大模型作为可调用工具,用于搜索记录、读取元数据、检索引文,以及列出或下载文件。
如何通过 MCP 使用 Claude 或 ChatGPT 访问 Zenodo?
对于 Claude Desktop 或 Cursor IDE,请安装 mcp_sdk_core 服务,并按照快速入门中的说明,将其添加到 MCP 客户端配置(claude_desktop_config.json 或 mcp.json)中。对于兼容 OpenAI / 类 ChatGPT 的工作流,请运行 mcp_api FastAPI 服务,并通过框架(例如 LangChain、LangGraph)或兼容 OpenAI 的客户端调用其兼容 MCP 的工具。
支持哪些 MCP 客户端?
任何兼容 MCP 的客户端都可以通过标准 MCP 传输方式使用 mcp_sdk_core 服务;该服务已通过 Cursor IDE 测试,也可与 Claude Desktop 配合使用。mcp_api 服务面向 LangChain 和 LangGraph 等大模型框架、兼容 OpenAI 的客户端,以及 LibreChat 等平台。
我需要 Zenodo API 令牌吗?
FastAPI 服务从 .env 读取 Zenodo API 令牌(参见 .env.example)。某些 Zenodo 操作无需令牌也能使用,但建议使用令牌以确保访问可靠。
mcp-zenodo 已发布到 PyPI 上了吗? 目前还没有——请按照快速入门中的说明克隆仓库并安装。
参与贡献
欢迎为这两种实现贡献代码。详情请参阅各实现的 README(mcp_sdk_core、mcp_api)。
许可证
本项目采用 Apache License 2.0 许可——详情请参阅 LICENSE 文件。
引用
如果您在工作中使用 mcp-zenodo,请引用该项目。引用元数据见 CITATION.cff。示例:
Seyedkazemi Ardebili, M. mcp-zenodo:Zenodo MCP 服务。 https://github.com/MSKazemi/mcp-zenodo
法律声明与负责任使用
在适用法律允许的范围内,本仓库中的材料均不提供任何保证。在依赖或部署这些材料之前,请阅读免责声明与负责任使用声明。此声明不会更改任何现有软件许可证,也不会限制依法不可放弃的权利。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。