DOI转BibTeX服务

一个通过DOI内容协商API将DOI转换为BibTeX格式的MCP服务器,适用于学术引用和文献管理。

  • by nmichaud0
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 nmichaud0/mcp_doi2bib

使用说明

DOI到BibTeX MCP服务器

一种MCP(模型上下文协议)服务器,使用官方DOI内容协商API将DOI转换为BibTeX格式。

运作原理

此服务器使用 DOI内容协商 直接从以下位置获取BibTeX条目 doi.org当你提供DOI时,它会发出一个HTTP请求 Accept: application/x-bibtex header以获取BibTeX格式的书目数据。

部署选项

选项1:免费铁路部署(建议用于Claude Web)

Railway提供了一个免费层,非常适合托管此MCP服务器:

  1. 创建铁路帐户 在https://railway.app(免费)

  2. 创建新项目:

    • 点击“新建项目”
    • 选择“从GitHub仓库部署”
    • 连接您的GitHub帐户
    • 将这些文件推送到GitHub仓库
    • 选择您的存储库
  3. 铁路将自动:

    • 检测Dockerfile
    • 构建和部署您的服务器
    • 给你一个公共URL,比如 https://your-app.up.railway.app
  4. 添加到Claude Web:

    • 转到Claude.ai中的“设置”>“集成”
    • 点击“+添加自定义集成”
    • 输入名称:“DOI到BibTeX”
    • 输入URL: https://your-app.up.railway.app/sse
    • 单击连接

铁路免费等级:每月5美元的信用额度,足以进行数千次DOI转换

选项2:克劳德桌面(本地)

  1. 安装Python依赖项:
pip install -r requirements.txt
  1. 添加到MCP设置文件中:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "doi-to-bibtex": {
      "command": "python",
      "args": ["/absolute/path/to/doi-to-bibtex-mcp.py"]
    }
  }
}
  1. 重新启动克劳德桌面

用法

连接后,让Claude转换DOI:

请求示例:

  • “将DOI 10.1038/nature12373转换为BibTeX”
  • “获取BibTeXhttps://doi.org/10.1126/science.1157784"
  • “我需要doi:10.103/PhysRevLett.104.198101的BibTeX条目”

服务器接受多种格式的DOI:

  • 只有标识符: 10.1234/example
  • 使用doi:前缀: doi:10.1234/example
  • 完整URL: https://doi.org/10.1234/example

包含的文件

  • server-http.py -铁路HTTP/SSE版本
  • doi-to-bibtex-mcp.py -克劳德桌面的stdio版本
  • Dockerfile -铁路部署配置
  • requirements.txt -Python依赖关系

替代免费托管选项

  • 渲染: https://render.com(免费版可用)
  • Fly.io: https://fly.io(免费版可用)
  • Replit: https://replit.com(免费版可用)

所有工作方式都类似——推送你的代码,获取一个公共URL,添加到Claude。

数据源

此服务器使用官方的DOI内容协商服务,该服务为每个DOI重定向到相应的注册机构(Crossref、DataCite等)。数据直接来自出版商和注册机构。

许可证

麻省理工学院