MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

文献检索MCP

Created 7/14/2025
Updated 7 days ago
Repository documentation and setup instructions

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 Setup
Installation guide for this server

Install Package (if required)

uvx article-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "gqy20-article-mcp": { "command": "uvx", "args": [ "article-mcp" ] } } }