使用说明
arXiv MCP服务器
一个增强的模型上下文协议(MCP)服务器,提供对arXiv的全面访问,用于搜索、下载、阅读和分析具有AI支持的研究提示的科学论文。
概述
该MCP服务器使AI助手不仅可以从arXiv搜索和检索科学论文,还可以在本地下载、提取内容并生成面向研究的分析提示。非常适合研究人员、学生和任何从事学术文献工作的人。
特性
核心功能
- 搜索论文 按标题、作者、摘要、类别或任何组合
- 检索文件 通过他们的arXiv ID
- 获取最新论文 在特定类别中
- 查找所有论文 由特定作者
- 速率限制 遵守arXiv API指南
增强功能(v1.1.0)
- 📥 纸张下载和存储:通过元数据跟踪在本地下载和存储论文
- 📖 PDF内容阅读:从下载的论文中提取和阅读文本内容
- 🔍 论文搜索:在下载的论文中搜索特定术语
- 🤖 AI研究提示:用于论文摘要、方法分析等的预配置分析提示
- 📊 存储管理:跟踪存储使用情况并管理下载的论文
- 🔧 增强的错误处理:具有重试逻辑的强大错误处理
- 📝 结构化日志记录:基于Winston的日志记录,级别可配置
安装
先决条件
- Node.js(v16或更高版本)
- npm或纱线
选项1:从npm安装
npm install -g @arxiv/mcp-server
然后运行:
arxiv-mcp-server
选项2:从源代码安装
- 克隆此存储库:
git clone https://github.com/MaksPyn/arxiv-mcp-server.git
cd arxiv-mcp-server
- 安装依赖项:
npm install
- 构建TypeScript代码:
npm run build
选项3:Docker
- 使用Docker Compose:
cd docker
docker-compose up -d
- 直接使用Docker:
docker build -t arxiv-mcp-server -f docker/Dockerfile .
docker run -it --name arxiv-mcp-server arxiv-mcp-server
配置
复制示例环境文件并根据需要进行自定义:
cp config/.env.example .env
可用配置选项:
LOG_LEVEL:日志记录级别(调试、信息、警告、错误)STORAGE_DIR:用于存储下载论文的目录MAX_STORAGE_SIZE_MB:纸张的最大存储容量RATE_LIMIT_DELAY_MS:API请求之间的延迟(默认值:3000ms)
用法
运行服务器
使用以下命令启动服务器:
npm start
或者用于开发(构建+运行):
npm run dev
与Claude Desktop集成
将以下内容添加到您的Claude Desktop配置文件中:
视窗: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"arxiv": {
"command": "node",
"args": ["C:/path/to/arxiv-server/build/index.js"]
}
}
}
替换 C:/path/to/arxiv-server 使用arxiv服务器目录的实际路径。
可用工具
1. search_papers
使用各种标准搜索论文。
参数:
query(字符串,可选):原始搜索查询title(字符串,可选):在论文标题中搜索author(字符串,可选):按作者姓名搜索abstract(字符串,可选):在摘要中搜索category(字符串,可选):按类别筛选(例如,“cs.AI”、“math.CO”)all(字符串,可选):在所有字段中搜索start(数字,可选):起始索引(默认值:0)maxResults(数字,可选):返回的最大结果,最大2000(默认值:10)sortBy(字符串,可选):按“相关性”、“lastUpdatedDate”或“submittedDate”排序(默认值:“相关性”)sortOrder(字符串,可选):“升序”或“降序”(默认值:“降序”)
例子:
{
"title": "neural networks",
"category": "cs.AI",
"maxResults": 5
}
2. get_paper_by_id
通过arXiv ID检索特定论文。
参数:
ids(字符串数组,必填):arXiv ID数组
例子:
{
"ids": ["2301.00001", "2312.12345"]
}
3. get_recent_papers
获取特定类别的最新论文。
参数:
category(字符串,必填):要过滤的类别(例如,“cs.AI”,“physics.quant-ph”)maxResults(数字,可选):最大结果(默认值:10)
例子:
{
"category": "cs.LG",
"maxResults": 20
}
4. search_author
查找特定作者的所有论文。
参数:
author(字符串,必填):要搜索的作者姓名maxResults(数字,可选):最大结果(默认值:20)sortBy(字符串,可选):“submittedDate”或“lastUpdatedDate”(默认值:“submittedDate”)
例子:
{
"author": "Yann LeCun",
"maxResults": 10
}
5. download_paper
下载纸质PDF并将其存储在本地。
参数:
arxivId(string,必填):arXiv要下载的论文ID
例子:
{
"arxivId": "2301.00001"
}
6. list_downloaded_papers
列出所有本地下载的论文及其元数据。
参数: 无
7. delete_paper
从本地存储中删除下载的论文。
参数:
arxivId(string,必填):arXiv要删除的纸张ID
8. get_storage_stats
获取下载论文的存储统计信息。
参数: 无
退货:
- 论文总数
- 总存储大小
- 格式化大小字符串
9. read_paper_content
从下载的论文中阅读并提取文本内容。
参数:
arxivId(string,必填):arXiv要读取的纸张ID
退货:
- 摘录部分(摘要、引言、方法论、结果、讨论、结论、参考文献)
- 全文长度
10. search_in_paper
在下载的论文中搜索文本。
参数:
arxivId(string,必填):arXiv要搜索的论文IDsearchTerm(字符串,必填):要搜索的文本caseSensitive(boolean,可选):搜索是否应区分大小写(默认值:false)
退货:
- 找到的匹配项总数
- 按章节和上下文组织的比赛
11. get_analysis_prompts
获取可用的研究分析提示。
参数: 无
退货:
- 带有ID、名称、描述和所需变量的可用提示列表
12. analyze_paper
为论文生成分析提示。
参数:
arxivId(string,必填):arXiv要分析的论文IDpromptId(字符串,必填):要使用的分析提示的ID
可用提示ID:
summary:综合论文摘要key_findings:提取关键发现和结果methodology_analysis:分析研究方法literature_review:创建文献综述条目research_gaps:确定研究差距和未来方向technical_deep_dive:算法和实施细节的技术分析comparison:与相关工作进行比较practical_applications:识别真实世界的应用程序
例子:
{
"arxivId": "2301.00001",
"promptId": "summary"
}
arXiv分类
常见的arXiv类别代码包括:
计算机科学
cs.AI-人工智能cs.LG-机器学习cs.CV-计算机视觉与模式识别cs.CL-计算与语言cs.NE-神经与进化计算
物理学
physics.gen-ph-普通物理physics.optics-光学quant-ph-量子物理学
数学
math.CO-组合学math.PR-概率math.ST-统计学理论
有关完整列表,请访问 arXiv类别分类.
响应格式
所有工具都返回结构化的JSON响应,其中包含:
- 纸张ID
- 标题
- 作者(有附属机构时)
- 发布/更新日期
- 分类
- 摘要(搜索结果截断,特定论文检索完整)
- 直接PDF链接
- 附加元数据(DOI、期刊参考文献、评论)
速率限制
该服务器遵守arXiv的API使用指南,在请求之间实现3秒的延迟。这是自动处理的,并确保遵守arXiv的服务条款。
错误处理
该服务器包括全面的错误处理功能,用于:
- 网络错误
- 无效参数
- 速率限制
- arXiv API错误
错误以结构化格式返回,MCP客户端可以轻松解析。
发展
项目结构
arxiv-server/
├── src/
│ ├── index.ts # Main server implementation
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions (logger, errors, file operations)
│ ├── storage/ # Storage management for downloaded papers
│ └── prompts/ # Research prompt management
├── build/ # Compiled JavaScript files
├── storage/ # Downloaded papers storage
├── prompts/ # Prompt templates
├── logs/ # Application logs
├── config/ # Configuration files
├── docker/ # Docker configuration
│ ├── Dockerfile
│ └── docker-compose.yml
├── package.json # Project dependencies
├── tsconfig.json # TypeScript configuration
├── .npmignore # NPM publish ignore rules
└── README.md # This file
从源头构建
npm run build
以开发模式运行
npm run dev
许可证
MIT许可证-详见package.json。
贡献
欢迎投稿!请随时提交问题或拉取请求。
致谢
此服务器使用 arXiv API 访问科学论文。使用此服务器时,请遵守arXiv的服务条款和使用指南。