arXiv学术论文检索服务

一个基于Model Context Protocol(MCP)的服务,提供arXiv API的交互工具,用于搜索和检索学术论文。

  • by Mnehmos
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Mnehmos/mnehmos.arxiv.mcp

使用说明

mnehmos.arxiv.mcp

一种MCP(模型上下文协议)服务器,提供与arXiv API交互的工具,以搜索和检索学术论文。

概述

该服务器实现了模型上下文协议,以提供从arXiv预印本存储库中搜索和检索论文的工具。它允许AI助手根据各种标准搜索论文,获取特定论文的详细信息,按类别搜索,并从PDF中提取全文内容。

特性

  • 搜索论文:使用各种标准(标题、作者、摘要、类别等)搜索论文
  • 获取纸张详细信息:通过arXiv ID获取特定论文的详细信息
  • 分类搜索:搜索特定arXiv类别的论文
  • PDF内容提取:从纸质PDF下载并提取全文内容
  • 结构化结果:返回正确解析的JSON数据,而不是原始XML
  • 缓存:智能PDF缓存,避免冗余下载

安装

先决条件

  • Node.js 18+
  • npm或pnpm

设置

  1. 克隆此存储库:

    git clone https://github.com/Mnehmos/mnehmos.arxiv.mcp.git
    cd mnehmos.arxiv.mcp
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目:

    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,或 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 (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,或 submittedDate
  • sort_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:watch

API 参考

此服务器使用官方arXiv API。更多信息:

贡献

请阅读 贡献.md 有关我们的行为准则和提交pull请求流程的详细信息。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

更新日志

v0.1.0(初始版本)

  • 基本arXiv API集成
  • 按多个条件搜索论文
  • 获取个人论文详细信息
  • 基于类别的搜索
  • 带缓存的PDF内容提取
  • 结构化JSON响应解析
  • MCP协议实现