a

arXiv学术助手

@kelvingao/arxiv-mcp
0 Stars 224 次浏览 kelvingao 更新于 2026-08-23

一种模型上下文协议服务器,使人工智能代理能够搜索、检索和分析来自arXiv的学术论文,支持关键词搜索、论文详情检索、内容提取和论文分析等功能。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "arxiv": {
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "TRANSPORT",
        "mcp/arxiv"
      ],
      "command": "docker",
      "env": {
        "TRANSPORT": "stdio"
      }
    }
  }
}

该服务需要配置环境变量:HOST、PORT、TRANSPORT

服务介绍

这是一个模型上下文协议 (MCP) 服务器实现,使AI代理能够从流行的开放访问电子预印本存储库 arXiv 中搜索、检索和分析学术论文。

概览

该项目提供了一个MCP服务器,允许AI代理与arXiv存储库交互,根据关键词搜索论文,获取特定论文的详细信息,甚至下载并分析论文的内容。它既是一个实用的研究辅助工具,也是一个构建MCP服务器的参考实现。

该实现遵循了构建MCP服务器的最佳实践,可以无缝集成到任何兼容MCP的客户端中。

功能

服务器提供了几个强大的工具用于学术研究:

  1. search_papers: 使用关键词在arXiv上搜索论文,并获取全面的摘要
  2. get_paper_details: 通过arXiv ID检索特定论文的详细信息
  3. extract_paper_content: 从论文的PDF中下载并提取全文内容
  4. analyze_paper: 分析论文内容并生成全面的摘要

前提条件

  • Python 3.11+
  • 如果作为容器运行MCP服务器,则需要Docker(推荐)

安装

使用uv

  1. 如果还没有安装uv,请先安装:

    pip install uv
    
  2. 克隆此仓库:

    git clone https://github.com/kelvingao/arxiv-mcp.git
    cd arxiv-mcp
    
  3. 安装依赖项:

    uv pip install -e .
    
  4. 根据.env.example创建一个.env文件:

    cp .env.example .env
    
  5. .env文件中配置您的环境变量(参见配置部分)

使用Docker(推荐)

  1. 构建Docker镜像:

    docker build -t mcp/arxiv --build-arg PORT=8050 .
    
  2. 根据.env.example创建一个.env文件并配置您的环境变量

配置

您可以在.env文件中配置以下环境变量:

变量 描述 示例
TRANSPORT 传输协议 (sse 或 stdio) sse
HOST 使用SSE传输时绑定的主机 0.0.0.0
PORT 使用SSE传输时监听的端口 8050

运行服务器

使用uv

SSE 传输

# Set TRANSPORT=sse in .env then:
python src/server.py

MCP服务器将以API端点的形式运行,您可以使用如下所示的配置连接到它。

Stdio 传输

使用stdio时,MCP客户端本身可以启动MCP服务器,因此此时无需运行任何东西。

使用Docker

SSE 传输

docker run --env-file .env -p 8050:8050 mcp/arxiv

MCP 服务器将在容器中作为 API 端点运行,您可以使用下面显示的配置连接到它。

标准输入输出传输

使用标准输入输出时,MCP 客户端本身可以启动 MCP 服务器容器,因此此时无需运行任何内容。

与 MCP 客户端集成

SSE 配置

一旦您使用 SSE 传输方式运行了服务器,您可以使用以下配置连接到它:

{
  "mcpServers": {
    "arxiv": {
      "transport": "sse",
      "url": "http://localhost:8050/sse"
    }
  }
}

给 Windsurf 用户的提示:在您的配置中使用 serverUrl 而不是 url

{
  "mcpServers": {
    "arxiv": {
      "transport": "sse",
      "serverUrl": "http://localhost:8050/sse"
    }
  }
}

给 n8n 用户的提示:由于 n8n 需要从其自己的容器外部访问主机机器,请使用 host.docker.internal 代替 localhost:

因此 MCP 节点中的完整 URL 应为:http://host.docker.internal:8050/sse

如果您使用的是默认 8050 以外的其他端口号,请确保更新端口。

Python 使用标准输入输出配置

将此服务器添加到您的 MCP 配置中,适用于 Claude Desktop、Windsurf 或任何其他 MCP 客户端:

{
  "mcpServers": {
    "arxiv": {
      "command": "your/path/to/arxiv-mcp/.venv/bin/python",
      "args": ["your/path/to/arxiv-mcp/src/main.py"],
      "env": {
        "TRANSPORT": "stdio"
      }
    }
  }
}

Docker 使用标准输入输出配置

{
  "mcpServers": {
    "arxiv": {
      "command": "docker",
      "args": ["run", "--rm", "-i", 
               "-e", "TRANSPORT", 
               "mcp/arxiv"],
      "env": {
        "TRANSPORT": "stdio"
      }
    }
  }
}

使用示例

这里有一些关于如何使用 arXiv MCP 服务器与 AI 代理的示例:

搜索论文

Find recent papers about quantum computing published in the last year.

获取论文详情

Get details for the paper with arXiv ID 2303.08774

提取论文内容

Extract the full text from the paper with arXiv ID 2303.08774

分析一篇论文

Analyze the methodology section of the paper with arXiv ID 2303.08774

构建您自己的 MCP 服务器

此实现为构建更复杂的 MCP 服务器提供了基础。要构建您自己的服务器:

  1. 通过创建带有 @mcp.tool() 装饰器的方法来添加您自己的工具。
  2. 创建您自己的生命周期函数以添加您自己的依赖项(客户端、数据库连接等)。
  3. 修改现有工具或添加新工具以增强功能。
  4. 使用 @mcp.resource()@mcp.prompt() 添加提示和资源。

许可证

MIT 许可证

致谢