学术论文搜索工具

ArXiv-MCP是一个基于Model Context Protocol (MCP)的服务,允许AI代理搜索、检索和分析arXiv上的学术论文,为研究提供支持。

  • by kelvingao
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 kelvingao/arxiv-mcp

使用说明

ArXiv-MCP: Academic Paper Search for AI Agents

A. 模型上下文协议(MCP) 服务器实现,使AI代理能够搜索、检索和分析来自 档案,流行的电子预印本开放存取存储库。

概述

该项目提供了一个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(推荐)

安装

使用紫外线

  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 文件基于 .env.example:

    cp .env.example .env
    
  5. 在中配置环境变量 .env 文件(请参阅配置部分)

使用Docker(推荐)

  1. 构建Docker镜像:

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

配置

以下环境变量可以在您的 .env 文件:

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

运行服务器

使用紫外线

SSE 运输

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

MCP服务器将作为API端点运行,您可以通过下面显示的配置连接到该端点。

标准运输

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

使用Docker

SSE 运输

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

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

标准运输

使用stdio,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用户注意事项:使用host.docker.internal而不是localhost,因为n8n必须从自己的容器外部到达主机:

因此,MCP节点中的完整URL将是:http://host.docker.internal:8050/sse

如果使用默认8050以外的值,请确保更新端口。

带Stdio配置的Python

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

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

带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许可证

致谢