mnehmos.arxiv.mcp
一种MCP(模型上下文协议)服务器,提供与arXiv API交互的工具,以搜索和检索学术论文。
概述
该服务器实现了模型上下文协议,以提供从arXiv预印本存储库中搜索和检索论文的工具。它允许AI助手根据各种标准搜索论文,获取特定论文的详细信息,按类别搜索,并从PDF中提取全文内容。
特性
- 搜索论文:使用各种标准(标题、作者、摘要、类别等)搜索论文
- 获取纸张详细信息:通过arXiv ID获取特定论文的详细信息
- 分类搜索:搜索特定arXiv类别的论文
- PDF内容提取:从纸质PDF下载并提取全文内容
- 结构化结果:返回正确解析的JSON数据,而不是原始XML
- 缓存:智能PDF缓存,避免冗余下载
安装
先决条件
- Node.js 18+
- npm或pnpm
设置
- 克隆此存储库:
git clone https://github.com/Mnehmos/mnehmos.arxiv.mcp.git
cd mnehmos.arxiv.mcp- 安装依赖项:
npm install- 构建项目:
npm run build用法
作为MCP服务器
启动服务器:
npm start服务器将在stdio上运行,使其能够与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服务器目录的路径 - 确保
build/index.js文件存在(运行npm run build第一) - 这
alwaysAllow数组列出了不需要用户确认的工具
可用工具
search_papers
通过灵活的查询选项,按各种条件搜索arXiv上的论文。
参数:
query(字符串,可选):所有字段的常规搜索查询category(string,可选):arXiv类别(例如。,cs.AI,physics.optics)author(字符串,可选):要搜索的作者名称title(字符串,可选):在标题中搜索的单词abstract(字符串,可选):要在摘要中搜索的单词start(数字,可选):分页起始索引(从0开始,默认值:0)max_results(number,可选):返回的最大结果数(最大2000,默认值:10)sort_by(字符串,可选):排序方式relevance,lastUpdatedDate,或submittedDatesort_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(string,必填):arXiv纸张ID(例如。,2104.13478或cs/0001001)
退货: 结构格式与 search_papers 但对于一篇论文。
search_by_category
使用分页和排序选项搜索特定arXiv类别中的论文。
参数:
category(string,必填):arXiv类别(例如。,cs.AI,physics.optics)start(数字,可选):分页起始索引(从0开始)max_results(number,可选):返回的最大结果数(最大2000)sort_by(字符串,可选):排序方式relevance,lastUpdatedDate,或submittedDatesort_order(字符串,可选):排序顺序ascending或descending
get_paper_content
下载并从论文的PDF中提取全文内容。
参数:
paper_id(string,必填):arXiv纸张ID(例如。,2104.13478)
特征:
- 从arXiv的服务器下载PDF
- 在本地缓存PDF以避免冗余下载
- 使用pdf解析提取和清理文本内容
- 优雅地处理网络错误和解析问题
- 返回适合分析的纯文本内容
退货: 论文的纯文本内容。
常见arXiv分类
cs.AI-人工智能cs.LG-机器学习cs.CL-计算与语言cs.CV-计算机视觉与模式识别physics.optics-光学math.CO-组合学stat.ML-机器学习(统计学)
有关完整列表,请参阅 arXiv主题分类.
发展
运行测试
npm test构建
npm run build观看模式(用于开发)
npm run test:watchAPI 参考
此服务器使用官方arXiv API。更多信息:
贡献
请阅读 贡献.md 有关我们的行为准则和提交pull请求流程的详细信息。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
更新日志
v0.1.0(初始版本)
- 基本arXiv API集成
- 按多个条件搜索论文
- 获取个人论文详细信息
- 基于类别的搜索
- 带缓存的PDF内容提取
- 结构化JSON响应解析
- MCP协议实现
