关于 paper-mcp
paper-mcp 是可远程调用的 MCP 服务,提供学术与医学文献检索、论文读取和文档处理工具。它整合 arXiv、Semantic Scholar、OpenAlex 检索,并提供 PubMed 证据类型筛选、图像转 LaTeX、LaTeX 检查和 PDF 提取。
主要功能
- 01融合检索三个学术文献库
- 02获取论文元数据、引用和全文
- 03按证据类型排序医学文献
- 04将公式和表格图像转为 LaTeX
- 05检查 LaTeX 并提取 PDF 文本
适用场景
- 01跨 arXiv、Semantic Scholar 和 OpenAlex 查找论文
- 02读取论文全文或查询引用关系
- 03按研究类型检索临床文献
- 04将图像中的公式或表格转换为 LaTeX
- 05提取 PDF 内容或检查 LaTeX 代码
MCP 相关
该服务通过托管端点向 MCP 客户端提供文献检索、论文读取、OCR、LaTeX 和 PDF 工具,也可在本地运行。Semantic Scholar API 密钥为可选项。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://latex-tools.online/mcpclaude mcp add --transport http mcpservings-paper https://latex-tools.online/mcp{"mcpServers":{"mcpservings-paper":{"type":"http","url":"https://latex-tools.online/mcp"}}}在 Cursor 中打开{"servers":{"mcpservings-paper":{"type":"http","url":"https://latex-tools.online/mcp"}}}在 VS Code 中打开{"mcpServers":{"mcpservings-paper":{"type":"http","url":"https://latex-tools.online/mcp"}}}{"mcpServers":{"mcpservings-paper":{"serverUrl":"https://latex-tools.online/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
41| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | |
| start | integer | 否 | |
| source | string | 否 | |
| sort_by | string | 否 | |
| max_results | integer | 否 |
详细介绍
paper-mcp
可远程调用的学术论文搜索、全文检索和图像→LaTeX MCP 服务,托管于 https://latex-tools.online/mcp。
三个语料库通过一个统一的接口提供服务:
arxiv(默认)——搜索、元数据和全文(HTML / markdown / LaTeX 源码)semanticscholar(别名s2)——完整的 S2 API 功能:引文图谱、作者、推荐、全文片段、批量数据集openalex(别名oa)——包含 3.16 亿条全字段作品:引文图谱、含 h-index 的作者、机构、主题、影响力指标
此外,还提供融合三个语料库结果的统一 search_all、图像→LaTeX OCR,以及 LaTeX 检查 + PDF→文本工具。
工具(41)
通用 / 与来源无关(8)
| 工具 | 用途 |
|---|---|
search_all(query, max_results=10, sources='arxiv,semanticscholar,openalex') | 统一搜索。 并发查询全部三个语料库,按 DOI / 标题去重,并使用倒数排名融合重新排序。每条结果都附带 sources(发现该结果的来源)和用于后续调用的 ids 映射。广泛检索时优先使用此工具。 |
search_papers(query, source='arxiv', max_results=10, sort_by='relevance') | 单个语料库搜索。arXiv 的 query 支持纯文本或字段语法(ti: au: cat:cs.CL abs: + AND/OR)。 |
get_paper(paper_id, source='arxiv') | 获取一篇论文的完整记录。S2 ID 支持 S2 ID / DOI: / ARXIV: / CorpusId:。 |
search_by_author(author, source='arxiv') | 按作者搜索论文,按最新发表时间排序。 |
list_recent(category, source='arxiv') | 获取某个类别(arXiv 代码或 S2 研究领域)中的最新论文。 |
list_categories(source='arxiv') | 常见类别代码。 |
read_paper(paper_id, format='markdown') | 全文(arXiv)。 markdown = 含 $LaTeX$ 公式的正文;html = 原始 LaTeXML 页面;latex = 原始论文 .tex 源码。 |
list_paper_sources() | 可用的语料库。 |
read_paper 的获取链:arxiv.org/html/{id} → 回退到 ar5iv(markdown/html),或获取 arxiv.org/e-print/{id} tarball 中的主 .tex 文件(latex)。公式通过 LaTeXML 的 alttext 不变量恢复。
医学 / 按证据等级排序(1)
| 工具 | 用途 |
|---|---|
search_medical(query, study_types='rct,meta-analysis,systematic-review', year_from=0, max_results=10, fetch_fulltext=True) | 临床文献搜索。 查询 PubMed,通过 Publication-Type 标签按研究类型筛选,并按证据金字塔重新排序(荟萃分析 / 系统综述 > RCT > 队列研究 > …),因此真正的临床试验会排在那些因纯引文排序而靠前的高被引综述 / 指南之前。通过 PMID 从 Europe PMC 获取开放获取全文并附加到结果中。如果类型筛选没有结果,则会自动放宽条件(标记为 filter_relaxed)。query 是英文关键词 / 布尔文本——自然语言 / 多语言查询理解应在上游处理。基于 NCBI E-utilities + Europe PMC(均免费,无需密钥)。 |
图像 → LaTeX(3)
无需自备视觉模型,即可将公式或表格图像(例如从论文中裁剪的图)转换回 LaTeX。由同机部署的识别服务提供支持(PaddleOCR-VL / DeepSeek-OCR / texify)。
| 工具 | 用途 |
|---|---|
recognize_formula(image_url=... or image_base64=..., model='deepseek-ocr') | 公式图像 → LaTeX。image_url 会在服务端下载(带 SSRF 防护)。返回 {latex, model, elapsed_ms}。 |
recognize_table(image_url=... or image_base64=..., model='deepseek-ocr') | 表格图像 → LaTeX tabular。 |
list_ocr_models() | 可用的 OCR 模型(deepseek-ocr、paddleocr-vl、texify)。 |
LaTeX 工具(3)
latex-tools.online 上 LaTeX/PDF 网页工具的配套工具——使用相同的后端,通过 MCP 提供。
| 工具 | 用途 |
|---|---|
lint_latex(code) | 检查 LaTeX 代码片段中的错误,并返回自动修复后的版本。返回 {errors, fixed_code, summary_en, summary_zh, elapsed_ms}。 |
extract_pdf(pdf_url=... or pdf_base64=..., formula=True, table=True) | 通过 MinerU 将 PDF 转换为整洁的 Markdown/LaTeX 文本(适用于没有开放获取全文的论文)。pdf_url 会在服务端下载(有 SSRF 防护)。按内容寻址并缓存:近期处理过或较小的 PDF 会在一次调用中返回 content;新 PDF(MinerU 需要 GPU,耗时数分钟)会返回 status='running' 和 task_id。 |
extract_pdf_result(task_id) | 按 task_id 获取 extract_pdf 任务。status='done' 后返回 content;处于 'running' 状态时,content 为 null——稍后再次调用。 |
OpenAlex(8)
- 作品:
get_openalex_work·get_openalex_citations·get_openalex_references·search_openalex_works(筛选条件:年份范围、开放获取、最低引用数、机构) - 作者/机构:
search_openalex_authors·search_openalex_institutions - 分析:
get_openalex_trends·list_openalex_topics
Semantic Scholar(18)
- 图谱:
get_paper_citations·get_paper_references·get_paper_authors - 查找:
match_paper_title·autocomplete_papers - 批量:
search_papers_bulk(≤1000,可排序,按 token 分页)·get_papers_batch - 作者:
search_authors·get_author·get_author_papers·get_authors_batch - 全文:
search_snippets(在论文正文中搜索) - 推荐:
recommend_papers_for_paper·recommend_papers_from_examples - 数据集:
list_dataset_releases·get_dataset_release·get_dataset_download_links·get_dataset_diffs
目录结构
paper_mcp/
server.py FastMCP server (tool registrations + instructions)
models.py normalized Paper model
aggregate.py cross-source fusion (dedup + Reciprocal Rank Fusion)
sources/
base.py source registry (get_source / list_sources)
arxiv.py arXiv Atom API + read_paper (HTML/markdown/latex)
semanticscholar.py Semantic Scholar full API surface
openalex.py OpenAlex REST API (works/authors/institutions/topics)
recognize.py image→LaTeX client over the co-located recognize service
latextools.py lint + PDF-extract clients over the latex-tools services
pyproject.toml
本地运行
cd paper-mcp
python -m venv .venv && . .venv/bin/activate
pip install -e .
PAPER_MCP_PORT=9400 python -m paper_mcp.server
# MCP endpoint at http://127.0.0.1:9400/mcp (JSON-RPC; a plain GET returns 406)
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
PAPER_MCP_HOST | 127.0.0.1 | |
PAPER_MCP_PORT | 9400 | |
PAPER_MCP_PATH | /mcp | |
SEMANTIC_SCHOLAR_API_KEY | — | 可选;可提高 S2 速率限制。 |
MCP_MAX_PER_HOUR | 300 | 每个 IP 的直接客户端 JSON-RPC POST 额度。 |
MCP_WORKER_MAX_PER_HOUR | 300 | 按 HMAC 派生的连接密钥计算的可信反向代理 Worker 额度。不保留原始密钥。 |
MCP_WORKER_SHARED_MAX_PER_HOUR | 2400 | 所有可信 Worker 连接共享的上限。 |
MCP_RATE_COOLDOWN_SEC | 300 | 某个计数桶达到上限后,快速拒绝请求的最短冷却时间。 |
说明
- arXiv 调用会以礼貌的频率限制并在失败时重试(
_USER_AGENT、退避)。 read_paper可通过官方 HTML 覆盖约 80% 以上的论文;较早的扫描版论文可能没有全文。- 于 2026-06-07 从
docs仓库迁移至此;原副本已删除。
许可证
MIT © MCPServings。参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。