mcpField
Z
Zenodo MCP

Zenodo MCP

本地服务
github.com/MSKazemi搜索与检索62 周前更新

关于 Zenodo MCP

Zenodo MCP 是面向开发者和研究人员的 MCP 服务,将 Zenodo 开放研究记录提供为可调用工具。它支持检索、元数据与引文获取以及文件访问,包含直接 MCP 接入和 FastAPI 服务两种实现。

主要功能

  1. 01搜索 Zenodo 记录
  2. 02读取详细元数据
  3. 03获取 BibTeX 或 APA 引文
  4. 04比较记录并识别数据类型
  5. 05列出及下载附件文件

适用场景

  1. 01发现论文、软件和数据集
  2. 02为论文或笔记获取引文
  3. 03让研究 Agent 基于开放研究数据作答
  4. 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根据记录的元数据生成摘要

仓库结构

本仓库包含两个实现,适用于两种不同的使用场景:

  1. MCP SDK Core (/mcp_sdk_core) — 一个 Python MCP 服务,可集成到启用了 MCP 的环境中,例如 Cursor IDE 和 Claude Desktop。
  2. 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 SDK Core 实现 →

MCP API

MCP API 的实现是一个 FastAPI 服务,为大模型框架提供兼容 MCP 的工具。它提供:

  • LangChain 集成 — 在 LangChain Agent 中使用这些工具。
  • LangGraph 兼容性 — 在 LangGraph 工作流中使用这些工具。
  • 兼容 OpenAI 的 API — 可与兼容 OpenAI 的客户端搭配使用。
  • LibreChat 支持 — 兼容 LibreChat 和类似平台。
  • 自定义工具创建 — 可扩展的架构,支持添加工具。

对于构建 LLM 应用,并希望在更大型工作流中与 Zenodo 交互的开发者而言,这是理想之选。

详细了解 MCP API 的实现 →


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

法律声明与负责任使用

在适用法律允许的范围内,本仓库中的材料均不提供任何保证。在依赖或部署这些材料之前,请阅读免责声明与负责任使用声明。此声明不会更改任何现有软件许可证,也不会限制依法不可放弃的权利。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。