🚀 Literature MCP Pro
✨ 核心特性
📚 多数据源集成
- PubMed - 生物医学文献
- ArXiv - 预印本论文
- Europe PMC - 欧洲生命科学文献
- CrossRef - 跨学科文献元数据
- Google Scholar (可选) - 广泛的学术搜索
🤖 AI 驱动的智能分析
- 📝 智能摘要 - 自动生成文献摘要
- 🎯 研究趋势分析 - 识别研究热点和趋势
- ⭐ 论文质量评估 - 多维度质量打分
- 💡 相关文献推荐 - 基于内容和引用的智能推荐
- 🔍 语义搜索 - 基于内容理解的深度搜索
📊 可视化与分析
- 🕸️ 引用网络图 - 可视化文献引用关系
- 📈 趋势时间线 - 研究领域发展趋势
- 🗺️ 主题地图 - 主题分布和关联
- 📉 统计分析 - 发表量、引用量等统计
🗄️ 文献库管理
- 📁 本地文献库 - SQLite 数据库存储
- 🏷️ 标签系统 - 自定义标签分类
- 📝 笔记功能 - 为文献添加笔记
- 🔄 同步管理 - 文献状态跟踪
📤 多格式导出
- BibTeX
- EndNote (XML)
- RIS
- CSV
- JSON
- Markdown
🔔 实时监控
- 📬 关键词监控 - 跟踪特定主题
- 🆕 新文献推送 - 自动发现新发表文献
- 📊 自定义提醒 - 基于条件的提醒
🏗️ 项目架构(现状)
literature_mcp_pro/
├─ main.py # MCP STDIO 入口(优先尝试 FastMCP)
├─ requirements.txt
├─ pyproject.toml
├─ .cloudmcp.yml
├─ tests/
│ ├─ run_unit_tests.py # 轻量测试运行器
│ ├─ test_ai.py
│ ├─ test_services.py
│ └─ test_tools.py
└─ literature_mcp_pro/
├─ __init__.py
├─ config.py
├─ models/__init__.py
├─ ai/
│ ├─ summarizer.py
│ ├─ analyzer.py
│ ├─ recommender.py
│ └─ semantic_search.py
├─ tools/
│ ├─ __init__.py # 从 ai 暴露 Summarizer/TrendAnalyzer/Recommender
│ ├─ analysis.py # 包装 summarize/analyze_trends/recommend
│ └─ search.py # 聚合 pubmed/arxiv/crossref + 语义
└─ connectors/
├─ pubmed.py
├─ arxiv.py
├─ crossref.py
├─ europepmc.py # 禁用(占位类)
└─ scholar.py # 禁用(占位类)
🚀 快速开始
1. 安装依赖
# 使用 uv (推荐)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync
# 或使用 pip
pip install -e .
2. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,添加必要的 API 密钥
3. 初始化数据库
uv run python scripts/setup_db.py
4. 启动服务器(本地)
# Windows(PowerShell)
python main.py
5. 在 VS Code Copilot Chat 中注册为 MCP 工具(实验特性)
有两种常见方式将本项目注册为 MCP 服务器(STDIO):
方式 A:通过命令面板
- 打开 VS Code,按 Ctrl+Shift+P,输入并执行:Copilot: Add MCP Server(或类似“添加 MCP 服务器”的命令)。
- 按提示填写:
- Label(名称):Literature MCP Pro
- Type(类型):stdio
- Command(命令):你的 Python 可执行文件路径(例如:D:/GJ/python-3.13/python.exe)
- Args(参数):["${workspaceFolder}/main.py"]
- Env(环境变量,建议):{"PYTHONUNBUFFERED":"1"}
- Auto Start:启用
方式 B:在 Settings(JSON) 手动添加(不同版本的 VS Code/Copilot 可能存在键名差异,请以实际为准)
// settings.json 片段(示例)
{
"github.copilot.chat.modelContextProtocol.servers": [
{
"id": "literature-mcp-pro",
"label": "Literature MCP Pro",
"type": "stdio",
"command": "D:/GJ/python-3.13/python.exe",
"args": ["${workspaceFolder}/main.py"],
"env": { "PYTHONUNBUFFERED": "1" },
"autoStart": true
}
]
}
提示:
- 需先安装依赖:
pip install -r requirements.txt(已包含 fastmcp/httpx/pydantic 等)。 - 本项目在运行时会优先使用 FastMCP 提供标准 MCP 协议;若失败,会回退到最简 STDIO 循环(仅用于本地自测,不保证兼容所有 MCP 客户端)。
- 首次连接时,Copilot 可能会提示你授权该 MCP 服务器。
🛠️ 可用工具(当前实现)
以下工具在 MCP 中可调用(由 main.py 注册):
search_literature:多源文献搜索(pubmed / arxiv / crossref / semantic)summarize_article:对单篇文章进行简要摘要analyze_trends:基于多篇文章的趋势关键词统计recommend_articles:按引用量(简单规则)推荐文章
📖 使用示例
搜索文献
# 在 Claude 中使用
"搜索关于机器学习在医学影像中应用的最新文献"
// 工具调用: search_literature(在 Copilot Chat 中由模型触发,或你可显式说明参数)
{
"query": "machine learning medical imaging",
"sources": ["pubmed", "arxiv", "semantic"],
"max_results": 10
}
AI 分析
"分析这篇论文的质量和影响力"
// 工具调用: summarize_article
{
"id": "id-1",
"title": "Advances in ML for Medical Imaging",
"abstract": "...",
"source": "pubmed"
}
趋势与推荐
"生成这个主题的引用网络图"
// 工具调用: analyze_trends
{
"articles": [
{"id": "1", "title": "Deep Learning in Medicine", "abstract": "deep learning applications", "source": "pubmed"},
{"id": "2", "title": "Deep Learning for Images", "abstract": "deep image deep", "source": "arxiv"}
]
}
// 工具调用: recommend_articles
{
"articles": [
{"id": "1", "title": "A", "citation_count": 5, "source": "pubmed"},
{"id": "2", "title": "B", "citation_count": 20, "source": "pubmed"}
],
"top_k": 2
}
🔧 配置选项(节选)
更多详见 literature_mcp_pro/config.py:
| 配置项 | 说明 | 示例/默认 |
|---|---|---|
PUBMED_BASE_URL |
NCBI eutils 基础地址 | https://eutils.ncbi.nlm.nih.gov/entrez/eutils |
ARXIV_BASE_URL |
arXiv API 基础地址 | https://export.arxiv.org/api |
CROSSREF_BASE_URL |
CrossRef API 基础地址 | https://api.crossref.org |
REQUEST_TIMEOUT |
请求超时(秒) | 15 |
USER_AGENT |
HTTP UA | Literature-MCP-Pro/1.0 |
🤝 贡献
欢迎贡献代码、报告问题或提出建议!
📄 许可证
MIT License
🙏 致谢
注意:README 中未勾选的扩展特性(如可视化/数据库/导出/监控等)目前为规划项,或以占位实现存在,后续版本逐步补全。
Metadata
Release files for literature-mcp-pro 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| literature_mcp_pro-0.1.1.tar.gz | 17.2 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| literature_mcp_pro-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.3 kB
Release files / literature_mcp_pro-0.1.1.tar.gz
| Download URL | literature_mcp_pro-0.1.1.tar.gz |
|---|---|
| Size | 17.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
283f6ebfbc4aee05ef5753b83b47fc19faaccdc960e65798bbdba484f8890472
|
|
BLAKE2b-256 checksum How to use checksums |
1a106f6461e806eea3bd92b8a67b653dcb67ee966f257d0b9dece9cafc7277ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.6
|
Release files / literature_mcp_pro-0.1.1-py3-none-any.whl
| Download URL | literature_mcp_pro-0.1.1-py3-none-any.whl |
|---|---|
| Size | 21.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b5751e7f4c4cfe8ea0e3d17494de143b2b012cc57c40370d4ef996812e592ba9
|
|
BLAKE2b-256 checksum How to use checksums |
2dca75064e97a52a946d5ed4b7f2c04b8f77941de721811df141daffbe130a1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.6
|
Security for literature-mcp-pro 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.