🚀 arXiv MCP Server
arXiv MCP Server是一个实现了模型上下文协议(MCP)的服务器,它提供了与arXiv API交互的工具,可用于搜索和获取学术论文。
🚀 快速开始
本服务器实现了模型上下文协议,为从arXiv预印本库中搜索和获取论文提供了工具。它允许AI助手通过各种标准搜索论文、获取特定论文的详细信息、按类别搜索以及从PDF中提取全文内容。
✨ 主要特性
- 搜索论文:使用各种标准(标题、作者、摘要、类别等)搜索论文。
- 获取论文详情:通过arXiv ID获取特定论文的详细信息。
- 类别搜索:在特定的arXiv类别中搜索论文。
- PDF内容提取:下载并提取论文PDF的全文内容。
- 结构化结果:返回经过正确解析的JSON数据,而非原始XML。
- 缓存机制:智能缓存PDF,避免重复下载。
📦 安装指南
前提条件
安装步骤
-
克隆此仓库:
git clone https://github.com/your-username/arxiv-mcp-server.git
cd arxiv-mcp-server
-
安装依赖:
npm install
-
构建项目:
npm run build
💻 使用示例
作为MCP服务器启动
启动服务器:
npm start
服务器将在标准输入输出上运行,允许它与MCP客户端进行通信。
MCP客户端配置
将以下配置添加到你的MCP客户端设置中。对于Claude Desktop,将其添加到claude_desktop_config.json
文件中:
{
"mcpServers": {
"arxiv": {
"name": "arxiv-mcp-server",
"command": "node",
"args": ["build/index.js"],
"cwd": "C:/path/to/arxiv-mcp-server",
"enabled": true,
"alwaysAllow": [
"search_papers",
"get_paper",
"search_by_category",
"get_paper_content"
],
"env": {}
}
}
}
对于其他MCP客户端,使用类似的配置结构。请确保:
- 更新
cwd
路径,指向你的arxiv-mcp-server目录。
- 确保
build/index.js
文件存在(先运行npm run build
)。
alwaysAllow
数组列出了无需用户确认即可使用的工具。
基础用法
search_papers
通过各种标准在arXiv上搜索论文,具有灵活的查询选项。
参数:
query
(字符串,可选):跨所有字段的通用搜索查询。
category
(字符串,可选):arXiv类别(例如cs.AI
、physics.optics
)。
author
(字符串,可选):要搜索的作者姓名。
title
(字符串,可选):要在标题中搜索的单词。
abstract
(字符串,可选):要在摘要中搜索的单词。
start
(数字,可选):分页的起始索引(从0开始,默认值:0)。
max_results
(数字,可选):返回的最大结果数(最大2000,默认值:10)。
sort_by
(字符串,可选):按relevance
、lastUpdatedDate
或submittedDate
排序。
sort_order
(字符串,可选):排序顺序为ascending
或descending
。
示例响应:
{
"feed_title": "arXiv Query: search_query=all:machine+learning",
"total_results": 150000,
"start_index": 0,
"items_per_page": 10,
"papers": [
{
"id": "http://arxiv.org/abs/2104.13478",
"arxiv_id": "2104.13478",
"title": "Advanced Machine Learning Techniques",
"summary": "This paper discusses advanced machine learning techniques...",
"authors": ["John Smith", "Jane Doe"],
"published": "2021-04-28T09:00:00Z",
"updated": "2021-04-28T09:00:00Z",
"categories": ["cs.LG", "cs.AI"],
"links": [
{
"href": "http://arxiv.org/abs/2104.13478",
"rel": "alternate",
"type": "text/html"
}
]
}
]
}
get_paper
通过arXiv ID获取特定论文的详细信息。
参数:
paper_id
(字符串,必需):arXiv论文ID(例如2104.13478
或cs/0001001
)。
返回:与search_papers
相同的结构化格式,但仅针对单篇论文。
search_by_category
在特定的arXiv类别中搜索论文,支持分页和排序选项。
参数:
category
(字符串,必需):arXiv类别(例如cs.AI
、physics.optics
)。
start
(数字,可选):分页的起始索引(从0开始)。
max_results
(数字,可选):返回的最大结果数(最大2000)。
sort_by
(字符串,可选):按relevance
、lastUpdatedDate
或submittedDate
排序。
sort_order
(字符串,可选):排序顺序为ascending
或descending
。
get_paper_content
下载并提取论文PDF的全文内容。
参数:
paper_id
(字符串,必需):arXiv论文ID(例如2104.13478
)。
特性:
- 从arXiv服务器下载PDF。
- 本地缓存PDF,避免重复下载。
- 使用pdf-parse提取并清理文本内容。
- 优雅地处理网络错误和解析问题。
- 返回适合分析的纯文本内容。
返回:论文的纯文本内容。
📚 详细文档
常见arXiv类别
cs.AI
- 人工智能
cs.LG
- 机器学习
cs.CL
- 计算与语言
cs.CV
- 计算机视觉与模式识别
physics.optics
- 光学
math.CO
- 组合数学
stat.ML
- 机器学习(统计学)
完整列表请参阅arXiv主题分类。
开发相关
运行测试
npm test
构建项目
npm run build
开发时的监听模式
npm run test:watch
API参考
本服务器使用官方的arXiv API。更多信息请参考:
贡献代码
请阅读CONTRIBUTING.md,了解我们的行为准则和提交拉取请求的流程。
📄 许可证
本项目采用MIT许可证 - 详情请参阅LICENSE文件。
🔧 技术细节
版本更新日志
v0.1.0(初始版本)
- 基本的arXiv API集成。
- 多条件搜索论文。
- 获取单篇论文详情。
- 基于类别的搜索。
- 带缓存的PDF内容提取。
- 结构化JSON响应解析。
- MCP协议实现。