arXiv论文搜索服务器

一个基于Model Context Protocol的服务器,提供arXiv学术论文的搜索、分析和下载功能,适用于AI工作流中的学术研究。

  • by Tejas242
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Tejas242/arxiv-mcp

使用说明

arXiv MCP Server

通过模型上下文协议访问世界上最大的学术论文库

简化版 模型上下文协议 该服务器将AI助手与arXiv庞大的学术论文库连接起来。您可以直接在AI工作流中搜索、分析和下载研究论文。

🚀 快速入门

先决条件

  • Python 3.12及以上版本
  • 紫外线 包管理器

安装

选项1:Docker(推荐)

# Pull and run the Docker image
docker run --rm -it ghcr.io/tejas242/arxiv-mcp:latest

# Or using docker-compose
git clone https://github.com/tejas242/arxiv-mcp.git
cd arxiv-mcp
docker compose up

选项2:本地开发

# Clone and setup
git clone https://github.com/tejas242/arxiv-mcp.git
cd arxiv-mcp
uv sync

# Test the server
uv run main.py

🛠️ 可用功能

功能 状态 描述 参数
search_papers ✅ 工作 使用灵活的查询语法搜索arXiv论文 query, max_results, sort_by, sort_order
get_paper_details ✅ 工作 获取任何arXiv论文的完整元数据 arxiv_id
build_advanced_query ✅ 工作 使用多个字段构建复杂的搜索查询 title_keywords, author_name, category, abstract_keywords
get_arxiv_categories ✅ 工作 列出所有可用的arXiv主题类别 无
search_by_author ⚠️ 有限的 按特定作者查找论文(建议使用search_papers功能) author_name, max_results
search_by_category ⚠️ 有限的 按类别浏览论文(建议使用search_papers功能) category, max_results
download_paper_pdf 螺丝刀 需要修复 下载论文PDF文件(处理重定向问题) arxiv_id, save_path

函数详情

✅ 全部功能正常运作

search_papers - 主要搜索功能

  • 支持完整的arXiv查询语法
  • 处理关键词、作者、类别、标题
  • 可配置的排序和分页
  • 返回包含摘要和链接的格式化结果

get_paper_details - 详细的论文信息

  • 完整的元数据提取
  • 作者信息及所属机构
  • 类别分类及链接
  • 出版日期和更新信息

build_advanced_query - 查询构建助手

  • 结合多个搜索条件
  • 支持标题、作者、类别和摘要搜索
  • 返回格式正确的查询字符串

get_arxiv_categories - 类别参考

  • arXiv主题分类的完整列表
  • 每个类别的描述
  • 有助于构建有针对性的搜索

⚠️ 功能有限(有替代方案可用)

search_by_author - 使用 search_papers('au:"Author Name"') 相反;而是 search_by_category - 使用 search_papers('cat:category_code') 相反

🔧 需要修复的功能

download_paper_pdf - HTTP重定向处理需要改进

  • 当前由于HTTPS/HTTP重定向问题而失败
  • 可以直接通过搜索结果中提供的链接访问PDF文件

⚙️ 配置

Claude 桌面设置

Configuration Instructions

对于本地安装:

在你的Claude桌面配置文件中添加:

macOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "arxiv-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/arxiv-mcp",
        "run",
        "main.py"
      ]
    }
  }
}

对于Docker安装:

{
  "mcpServers": {
    "arxiv-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/tejas242/arxiv-mcp:latest"
      ]
    }
  }
}

VS Code MCP 扩展

VS Code Configuration
{
  "mcp": {
    "servers": {
      "arxiv-mcp": {
        "command": "uv",
        "args": ["--directory", "/path/to/arxiv-mcp", "run", "main.py"]
      }
    }
  }
}

💡 使用示例

核心搜索操作

# Search for papers about transformers
search_papers("transformer architecture")

# Advanced query with specific fields
search_papers('ti:"attention mechanism" AND cat:cs.LG')

# Author-specific search (recommended approach)
search_papers('au:"Geoffrey Hinton"')

# Category browsing (recommended approach)
search_papers('cat:cs.AI')

研究工作流程

# 1. Find the famous "Attention" paper
search_papers('ti:"Attention Is All You Need"')
get_paper_details("1706.03762")

# 2. Explore related work
search_papers("transformer neural networks")

# 3. Build complex queries
query = build_advanced_query(
    title_keywords="few-shot learning",
    author_name="Tom Brown",
    category="cs.LG"
)
search_papers(query)

📊 arXiv分类参考

Popular Categories
代码 描述 示例主题
项目 英文名称 中文名称
人工智能 机器学习、神经网络、人工智能理论 cs.LG
机器学习 深度学习、强化学习、统计学习 cs.CV
计算机视觉 图像处理、目标检测、视觉识别 cs.CL
计算与语言 自然语言处理(NLP)、语言模型、文本处理 cs.CR
密码学与安全 安全协议、加密、隐私 stat.ML
机器学习(统计学) 统计学习理论,贝叶斯方法 physics.gen-ph
普通物理学 理论物理学,量子力学 math.NA
数值分析 计算数学,算法 q-bio.NC

| 量化生物学 | 神经科学,计算生物学 | get_arxiv_categories() 使用

以获取完整的可用类别列表。

🧪 测试结果

基于对所有功能的全面测试:

  • ✅ 可靠的功能使用关键词、作者、类别进行论文搜索
  • 100%的成功率论文细节检索
  • 完整的元数据提取工作已完成查询构造
  • 支持所有语法组合类别列表

所有arXiv分类均可访问

  • ⚠️ 推荐替代方法作者搜索 search_papers('au:"Author Name"') 使用 search_by_author()
  • 而不是按类别浏览 search_papers('cat:category') 使用 search_by_category()

而不是

  • 🔧 已知问题PDF文件下载

重定向处理有待改进(可通过直接链接访问的PDF文件)

🔧 开发

arxiv-mcp/
├── src/arxiv_mcp/          # Main package
│   ├── server.py           # MCP server implementation
│   ├── arxiv_client.py     # arXiv API wrapper
│   ├── models.py           # Pydantic data models
│   └── utils.py            # Helper functions
├── tests/                  # Test suite
├── main.py                 # Entry point
└── pyproject.toml         # Project config

项目结构

uv run pytest tests/ -v

运行测试

# Enable detailed logging
PYTHONPATH=src uv run python -c "
import logging
logging.basicConfig(level=logging.DEBUG)
from arxiv_mcp.server import main
main()
"

调试模式

Common Issues & Solutions

⚠️ 故障排除

  • 服务器未检测到
  • ✅ 验证MCP配置中的绝对路径 uv run main.py
  • ✅ 测试服务器运行中:

✅ 配置更改后重启Claude桌面版

  • 搜索问题
  • ✅ 使用arXiv查询语法(参见上面的示例) get_arxiv_categories()
  • ✅ 检查类别名称:
  • ✅ 尝试使用更广泛的搜索词 search_papers() ✅ 使用

而不是特定的搜索功能

  • PDF下载失败
  • ✅ 通过搜索结果中的链接访问PDF文件
  • ✅ 检查网络连接

✅ 验证arXiv ID格式(例如,“1706.03762”)




模型上下文协议