arxiv-mcp-server

Lixtt/arxiv-mcp-server

3.2

If you are the rightful owner of arxiv-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A powerful arXiv paper management MCP (Model Context Protocol) server designed for AI assistants to efficiently interact with the arXiv platform.

Tools
10
Resources
0
Prompts
0

arXiv MCP Server (Python版本)

一个功能强大的arXiv论文管理MCP (Model Context Protocol) 服务器,支持搜索、下载、分析和管理arXiv论文。专为AI助手设计,让大模型能够高效地与arXiv平台交互。

🚀 功能特性

  • 🔍 智能搜索: 支持关键词搜索、分类筛选、排序等,返回完整摘要
  • 📥 PDF下载: 单个或批量下载论文PDF,支持智能文件名
  • 📋 论文详情: 获取论文的完整信息(标题、作者、摘要等)
  • 📊 额外信息: 提取DOI、引用信息等
  • 📝 AI分析保存: 提供工具让大模型保存分析结果
  • 📁 文件管理: 列出已下载的论文、删除文件等
  • 🌐 多语言支持: 支持中文和英文文档
  • 🎯 统一文件组织: 所有相关文件集中管理,便于查找

📦 安装

方法1: 从源码安装

# 克隆项目
git clone <repository-url>
cd arxiv-mcp-server

# 创建虚拟环境(推荐)
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
venv\Scripts\activate  # Windows

# 安装依赖
pip install -r requirements.txt

# 安装开发模式
pip install -e .

方法2: 使用pip安装

pip install arxiv-mcp-server

🎯 快速开始

1. 运行测试服务器

python test_server.py

2. 直接运行服务器

python -m arxiv_mcp_server.main

3. 使用命令行工具运行

arxiv-mcp-server

4. 使用uvx运行(推荐用于开发)

# 首次运行时会自动安装依赖
uvx arxiv-mcp-server

5. 在Claude Desktop中配置

{
  "mcpServers": {
    "arxiv": {
      "command": "arxiv-mcp-server",
      "args": [],
      "env": {}
    }
  }
}

或者使用模块方式:

{
  "mcpServers": {
    "arxiv": {
      "command": "python",
      "args": ["-m", "arxiv_mcp_server.main"],
      "env": {}
    }
  }
}

或者使用uvx方式:

{
  "mcpServers": {
    "arxiv": {
      "command": "uvx",
      "args": ["arxiv-mcp-server"],
      "env": {}
    }
  }
}

5. 开始使用

用户: "帮我搜索关于transformer的最新论文"
助手: [调用search_papers工具]
用户: "下载论文2301.12345,文件名要包含标题"
助手: [调用download_paper工具]
用户: "请分析这篇论文并生成总结"
助手: [分析后调用save_paper_summary工具]

🛠️ 可用工具

基础功能

1. search_papers - 搜索论文

搜索arXiv论文,支持多种筛选和排序选项。

参数:

  • query (必需): 搜索查询字符串
  • maxResults (可选): 最大结果数量,默认10
  • start (可选): 起始位置,默认0
  • sortBy (可选): 排序方式 (relevance/lastUpdatedDate/submittedDate)
  • sortOrder (可选): 排序顺序 (ascending/descending)

示例:

{
  "name": "search_papers",
  "arguments": {
    "query": "machine learning",
    "maxResults": 5,
    "sortBy": "lastUpdatedDate"
  }
}
2. get_paper_by_id - 获取论文详情

根据arXiv ID获取论文的详细信息。

参数:

  • paperId (必需): arXiv论文ID,如 "2301.12345"

示例:

{
  "name": "get_paper_by_id",
  "arguments": {
    "paperId": "2301.12345"
  }
}
3. download_paper - 下载论文PDF

下载指定论文的PDF文件。

参数:

  • paperId (必需): arXiv论文ID
  • outputDir (可选): 输出目录,默认 "./papers"
  • filename (可选): 文件名,默认 "{paperId}.pdf" 或 "{title}_{paperId}.pdf"
  • overwrite (可选): 是否覆盖已存在的文件,默认false
  • includeTitle (可选): 是否在文件名中包含论文标题,默认true

示例:

{
  "name": "download_paper",
  "arguments": {
    "paperId": "2301.12345",
    "includeTitle": true,
    "overwrite": true
  }
}
4. batch_download_papers - 批量下载论文

批量下载多个论文的PDF文件。

参数:

  • paperIds (必需): 论文ID列表
  • outputDir (可选): 输出目录,默认 "./papers"
  • overwrite (可选): 是否覆盖已存在的文件,默认false

示例:

{
  "name": "batch_download_papers",
  "arguments": {
    "paperIds": ["2301.12345", "2301.12346", "2301.12347"],
    "outputDir": "./batch-downloads"
  }
}
5. list_downloaded_papers - 列出已下载的论文

列出指定目录中已下载的论文文件。

参数:

  • outputDir (可选): 下载目录,默认 "./papers"

示例:

{
  "name": "list_downloaded_papers",
  "arguments": {
    "outputDir": "./my-papers"
  }
}
6. get_paper_additional_info - 获取论文额外信息

获取论文的额外信息,如DOI、引用信息等。

参数:

  • paperId (必需): arXiv论文ID

示例:

{
  "name": "get_paper_additional_info",
  "arguments": {
    "paperId": "2301.12345"
  }
}

AI分析保存功能

7. save_paper_summary - 保存论文总结

保存AI模型生成的论文总结。

参数:

  • paperId (必需): arXiv论文ID
  • title (必需): 论文标题
  • summary (必需): AI生成的总结内容
  • outputDir (可选): 输出目录,默认 "./papers"
  • language (可选): 文档语言 (zh/en),默认"zh"

示例:

{
  "name": "save_paper_summary",
  "arguments": {
    "paperId": "2301.12345",
    "title": "Attention Is All You Need",
    "summary": "这篇论文提出了Transformer架构...",
    "language": "zh"
  }
}
8. save_paper_analysis - 保存论文详细分析

保存AI模型生成的详细分析。

参数:

  • paperId (必需): arXiv论文ID
  • title (必需): 论文标题
  • analysis (必需): AI生成的详细分析内容
  • outputDir (可选): 输出目录,默认 "./papers"
  • language (可选): 文档语言 (zh/en),默认"zh"

示例:

{
  "name": "save_paper_analysis",
  "arguments": {
    "paperId": "2301.12345",
    "title": "Attention Is All You Need",
    "analysis": "## 技术架构分析\n\n### 1. 注意力机制\n...",
    "language": "zh"
  }
}
9. save_custom_analysis - 保存自定义分析

保存AI模型生成的自定义分析。

参数:

  • paperId (必需): arXiv论文ID
  • title (必需): 论文标题
  • analysis (必需): AI生成的分析内容
  • analysisType (必需): 分析类型(如:技术分析、创新点分析等)
  • outputDir (可选): 输出目录,默认 "./papers"
  • language (可选): 文档语言 (zh/en),默认"zh"

示例:

{
  "name": "save_custom_analysis",
  "arguments": {
    "paperId": "2301.12345",
    "title": "Attention Is All You Need",
    "analysis": "## 创新点分析\n\n1. 首次提出完全基于注意力的架构\n...",
    "analysisType": "创新点和局限性分析",
    "language": "zh"
  }
}
10. list_analysis_files - 列出已保存的分析文件

列出已保存的分析文件。

参数:

  • outputDir (可选): 分析文件目录,默认 "./papers"

示例:

{
  "name": "list_analysis_files",
  "arguments": {
    "outputDir": "./papers"
  }
}

🔄 完整工作流程示例

工作流程

  1. 搜索论文 → 2. 下载PDF → 3. AI分析 → 4. 保存结果

详细示例

步骤1: 搜索论文
用户: "帮我搜索关于transformer的最新论文"

MCP工具调用:

{
  "name": "search_papers",
  "arguments": {
    "query": "transformer",
    "maxResults": 5,
    "sortBy": "lastUpdatedDate"
  }
}
步骤2: 下载论文
用户: "下载论文2301.12345,文件名要包含标题"

MCP工具调用:

{
  "name": "download_paper",
  "arguments": {
    "paperId": "2301.12345",
    "includeTitle": true
  }
}
步骤3: AI分析论文
用户: "请分析这篇论文并生成总结"

AI模型分析后,调用保存工具:

{
  "name": "save_paper_summary",
  "arguments": {
    "paperId": "2301.12345",
    "title": "Attention Is All You Need",
    "summary": "这篇论文提出了Transformer架构,这是第一个完全基于注意力机制的序列到序列模型...",
    "language": "zh"
  }
}
步骤4: 保存详细分析
用户: "请对这篇论文进行详细的技术分析"

AI模型分析后,调用保存工具:

{
  "name": "save_paper_analysis",
  "arguments": {
    "paperId": "2301.12345",
    "title": "Attention Is All You Need",
    "analysis": "## 技术架构分析\n\n### 1. 注意力机制\n该论文的核心创新是提出了多头自注意力机制...",
    "language": "zh"
  }
}
步骤5: 保存自定义分析
用户: "请分析这篇论文的创新点和局限性"

AI模型分析后,调用保存工具:

{
  "name": "save_custom_analysis",
  "arguments": {
    "paperId": "2301.12345",
    "title": "Attention Is All You Need",
    "analysis": "## 创新点分析\n\n### 1. 架构创新\n- 首次提出完全基于注意力的序列到序列模型\n- 摒弃了传统的循环神经网络和卷积神经网络\n- 开创了新的深度学习范式\n\n### 2. 技术创新\n- 多头注意力机制的设计\n- 位置编码的创新应用\n- 残差连接和层归一化的组合\n\n### 3. 性能突破\n- 在机器翻译任务上取得显著提升\n- 训练速度大幅提升\n- 并行化能力增强\n\n## 局限性分析\n\n### 1. 计算复杂度\n- 注意力机制的计算复杂度为O(n²)\n- 对长序列的处理能力有限\n- 内存消耗较大\n\n### 2. 数据需求\n- 需要大量训练数据\n- 对数据质量要求较高\n- 预训练成本高\n\n### 3. 解释性\n- 注意力权重的解释性有限\n- 模型决策过程不够透明\n- 调试困难",
    "analysisType": "创新点和局限性分析",
    "language": "zh"
  }
}

助手: 分析完成!我已经为你生成了三个文件:

  1. 论文总结:概述了论文的主要贡献和结果
  2. 详细分析:深入分析了技术架构和实现细节
  3. 创新点和局限性分析:评估了论文的贡献和不足

所有文件都保存在 papers/ 目录下,文件名包含了论文ID和标题,方便你查找和管理。

💡 使用建议

  1. 工作流程: 搜索 → 下载 → AI分析 → 保存结果
  2. 文件管理: 所有相关文件使用统一的命名格式
  3. 分析类型: 可以根据需要保存不同类型的分析
  4. 语言选择: 支持中文和英文文档
  5. 文件组织: 所有文件集中在一个目录,便于管理

🚨 注意事项

  1. API限制: arXiv API有请求频率限制,请合理使用
  2. 文件存储: 下载的PDF文件和分析文档保存在 ./papers 目录
  3. 网络连接: 需要稳定的网络连接来访问arXiv
  4. 文件权限: 确保有足够的权限创建目录和文件
  5. 存储空间: PDF文件和分析文档会占用一定空间

🔍 故障排除

常见问题

  1. 搜索失败: 检查网络连接和搜索关键词
  2. 下载失败: 检查论文ID和磁盘空间
  3. 分析失败: 检查论文信息是否完整

调试方法

# 运行测试服务器
python test_server.py

# 查看详细日志
python -m arxiv_mcp_server.main

🎉 新功能亮点

  1. 智能文件名: 支持包含论文标题的文件名格式
  2. 完整摘要: 搜索工具返回完整的论文摘要,便于AI分析
  3. AI分析保存: 提供工具让大模型保存自己的分析结果
  4. 批量处理: 支持批量下载和分析
  5. 多语言支持: 支持中文和英文文档
  6. 结构化输出: 生成格式化的Markdown文档
  7. 统一文件组织: 所有相关文件集中管理,便于查找

🔮 未来改进

  1. AI集成: 集成更智能的AI服务来改进分析质量
  2. PDF解析: 直接解析PDF内容进行更深入的分析
  3. 引用分析: 分析论文的引用关系
  4. 可视化: 生成图表和可视化内容
  5. 缓存机制: 添加缓存来提高性能

🛠️ 开发

# 安装开发依赖
pip install -e .

# 运行测试
python test_server.py

# 构建包
python -m build

# 运行服务器(方式1:命令行工具)
arxiv-mcp-server

# 运行服务器(方式2:模块方式)
python -m arxiv_mcp_server.main

# 运行服务器(方式3:使用uvx,推荐用于开发)
uvx arxiv-mcp-server

📄 许可证

MIT License

🤝 贡献

欢迎提交Issue和Pull Request来改进这个项目!


这个项目专为AI助手设计,让大模型能够高效地与arXiv平台交互,实现智能的论文管理和分析。