JUHE API Marketplace
gqy20 avatar
MCP Server

Europe PMC Literature Search MCP Server

A professional literature search tool built on FastMCP framework that enables AI assistants to search academic literature from Europe PMC, retrieve article details, and analyze journal quality with seamless integration into Claude Desktop and Cherry Studio.

3
GitHub Stars
8/23/2025
Last Updated
MCP Server Configuration
1{
2 "name": "article-mcp",
3 "command": "uv",
4 "args": [
5 "run",
6 "--directory",
7 "D:\\你的项目路径\\article-mcp",
8 "main.py",
9 "server"
10 ],
11 "env": {
12 "PYTHONUNBUFFERED": "1"
13 }
14}
JSON14 lines

README Documentation

Europe PMC 文献搜索 MCP 服务器

🔬 基于 FastMCP 框架开发的专业文献搜索工具,可与 Claude Desktop、Cherry Studio 等 AI 助手无缝集成

🚀 快速开始

0️⃣ 克隆项目

# 克隆项目到本地
git clone https://github.com/gqy20/article-mcp.git
cd article-mcp

1️⃣ 安装依赖

# 方法一:使用 uv (推荐)
curl -LsSf https://astral.sh/uv/install.sh | sh  # 安装 uv
uv sync  # 安装项目依赖

# 方法二:使用 pip
pip install fastmcp requests python-dateutil aiohttp

2️⃣ 启动服务器

# 启动 MCP 服务器
uv run main.py server

# 或使用 Python
python main.py server

3️⃣ 配置 AI 客户端

Claude Desktop 配置

编辑 Claude Desktop 配置文件,添加:

{
  "mcpServers": {
    "article-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "D:\\你的项目路径\\article-mcp",
        "main.py",
        "server"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

Cherry Studio 配置

{
  "mcpServers": {
    "article-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory",
        "你的项目路径\\article-mcp",
        "main.py",
        "server"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

4️⃣ 开始使用

配置完成后,重启你的 AI 客户端,即可使用以下功能:

  • 🔍 搜索学术文献 (search_europe_pmc)
  • 📄 获取文献详情 (get_article_details)
  • 📚 获取参考文献 (get_references_by_doi)
  • 🔗 批量处理DOI (batch_enrich_references_by_dois)
  • 📰 搜索arXiv预印本 (search_arxiv_papers)
  • ⭐ 评估期刊质量 (get_journal_quality)

📋 完整功能列表

核心搜索工具

工具名称功能描述主要参数
search_europe_pmc搜索 Europe PMC 文献数据库keyword, start_date, end_date, max_results
get_article_details获取特定文献详细信息pmid
search_arxiv_papers搜索 arXiv 预印本文献keyword, start_date, end_date, max_results

参考文献工具

工具名称功能描述主要参数
get_references_by_doi通过DOI获取参考文献列表doi
batch_enrich_references_by_dois批量补全多个DOI参考文献dois[] (最多20个)
get_similar_articles获取相似文章推荐doi, max_results
get_citing_articles获取引用该文献的文章pmid, max_results

质量评估工具

工具名称功能描述主要参数
get_journal_quality获取期刊影响因子、分区等journal_name, secret_key
evaluate_articles_quality批量评估文献期刊质量articles[], secret_key

⚡ 性能特性

  • 🚀 高性能并行处理 - 比传统方法快 30-50%
  • 💾 智能缓存机制 - 24小时本地缓存,避免重复请求
  • 🔄 批量处理优化 - 支持最多20个DOI同时处理
  • 🛡️ 自动重试机制 - 网络异常自动重试
  • 📊 详细性能统计 - 实时监控API调用情况

🔧 高级配置

环境变量

export PYTHONUNBUFFERED=1     # 禁用Python输出缓冲
export UV_LINK_MODE=copy      # uv链接模式(可选)

传输模式

# STDIO 模式 (推荐用于桌面AI客户端)
uv run main.py server --transport stdio

# SSE 模式 (用于Web应用)
uv run main.py server --transport sse --host 0.0.0.0 --port 9000

# HTTP 模式 (用于API集成)
uv run main.py server --transport streamable-http --host 0.0.0.0 --port 9000

API 限制与优化

  • Crossref API: 50 requests/second (建议提供邮箱获得更高限额)
  • Europe PMC API: 1 request/second (保守策略)
  • arXiv API: 3 seconds/request (官方限制)

📖 使用示例

搜索文献

{
  "keyword": "machine learning cancer detection",
  "start_date": "2020-01-01",
  "end_date": "2024-12-31",
  "max_results": 20
}

批量获取参考文献

{
  "dois": [
    "10.1126/science.adf6218",
    "10.1038/s41586-020-2649-2",
    "10.1056/NEJMoa2034577"
  ],
  "email": "your.email@example.com"
}

期刊质量评估

{
  "journal_name": "Nature",
  "secret_key": "your_easyscholar_key"
}

🛠️ 开发与测试

运行测试

# 运行功能测试
uv run main.py test

# 性能测试
uv run python test_performance_comparison.py

# 查看项目信息
uv run main.py info

故障排除

问题解决方案
cannot import name 'hdrs' from 'aiohttp'运行 uv sync --upgrade 更新依赖
MCP服务器启动失败检查路径配置,确保使用绝对路径
API请求失败提供邮箱地址,检查网络连接
找不到uv命令使用完整路径:C:\Users\用户名\.local\bin\uv.exe

项目结构

mcp1/
├── main.py              # 主入口文件
├── src/                 # 核心服务模块
│   ├── europe_pmc.py    # Europe PMC API
│   ├── reference_service.py  # 参考文献服务
│   └── pubmed_search.py # PubMed搜索
├── pyproject.toml       # 项目配置
├── uv.lock             # 依赖锁定文件
└── README.md           # 项目文档

📄 返回数据格式

每篇文献包含以下标准字段:

{
  "pmid": "文献ID",
  "title": "文献标题",
  "authors": ["作者1", "作者2"],
  "journal_name": "期刊名称",
  "publication_date": "发表日期",
  "abstract": "摘要",
  "doi": "DOI标识符",
  "pmid_link": "文献链接"
}

🌐 魔搭MCP广场部署

快速托管到魔搭MCP广场

魔搭(ModelScope)MCP广场为MCP服务提供云托管服务,基于阿里云函数计算,支持:

  • ⚡ 毫秒级弹性启动
  • 🔒 多租安全隔离
  • 🌐 自动生成SSE服务地址
  • 🛡️ 内置Bearer鉴权能力
  • 📊 按实际调用计费

部署步骤

  1. 访问魔搭MCP广场https://modelscope.cn/mcp

  2. 添加MCP服务,使用以下配置:

推荐配置(完整版)

{
  "mcpServers": {
    "article-mcp": {
      "command": "uv",
      "args": [
        "run",
        "python",
        "main.py",
        "server"
      ],
      "repository": "https://github.com/gqy20/article-mcp.git",
      "branch": "master",
      "env": {
        "PYTHONUNBUFFERED": "1"
      },
      "protocol": "stdio",
      "runtime": "debian12",
      "metadata": {
        "name": "文献检索MCP",
        "description": "基于Europe PMC、arXiv等多个数据源的学术文献搜索工具",
        "version": "0.2.0",
        "author": "gqy20",
        "category": "学术工具",
        "tags": ["文献检索", "学术搜索", "Europe PMC", "arXiv", "引用分析"]
      }
    }
  }
}

简化配置(最小版)

{
  "mcpServers": {
    "article-mcp": {
      "command": "uv",
      "args": [
        "run",
        "python",
        "main.py",
        "server"
      ],
      "repository": "https://github.com/gqy20/article-mcp.git",
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}
  1. 提交配置,魔搭将自动:

    • 拉取GitHub仓库代码
    • 安装依赖(通过uv)
    • 部署到函数计算
    • 生成SSE服务地址
  2. 测试服务:在MCP Playground中测试您的服务

特性优势

  • 🚀 秒级部署:约1秒完成MCP服务部署
  • 📦 零运维:无需管理服务器和基础设施
  • 🔄 自动转换:STDIO模式自动转换为SSE服务
  • 💰 按需付费:仅为实际使用时长付费
  • 🛡️ 安全隔离:每个租户独立的SSE地址和运行环境

📦 发布包管理

PyPI 包发布

项目已准备发布到 PyPI,支持通过 uvx 命令直接运行:

# 使用uvx直接运行(推荐)
uvx article-mcp@latest server

# 或安装后运行
pip install article-mcp
article-mcp server

NPM 包装器

为兼容性提供了 NPM 包装器:

# 使用npx运行
npx @gqy20/article-mcp-wrapper@latest server

魔搭MCP广场配置选项

根据部署检测要求,提供三种配置方案:

🥇 方案1:使用 uvx(推荐)

{
  "mcpServers": {
    "article-mcp": {
      "command": "uvx",
      "args": [
        "article-mcp@latest",
        "server"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

🥈 方案2:使用 npx

{
  "mcpServers": {
    "article-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@gqy20/article-mcp-wrapper@latest",
        "server"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

🥉 方案3:GitHub 仓库(需手动审核)

{
  "mcpServers": {
    "article-mcp": {
      "command": "uvx",
      "args": [
        "git+https://github.com/gqy20/article-mcp.git",
        "server"
      ],
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

发布说明

  • PyPI 包名: article-mcp
  • NPM 包名: @gqy20/article-mcp-wrapper
  • 版本管理: 统一使用语义化版本控制
  • 自动更新: 使用 @latest 标签确保获取最新版本

📜 许可证

本项目遵循 MIT 许可证 - 详见 LICENSE 文件。


🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📞 支持

Quick Install

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source