ArXiv-MCP

Pesquise e recupere artigos acadêmicos do arXiv com base em palavras-chave.

Documentação

ArXiv-MCP: Busca de Artigos Acadêmicos para Agentes de IA

arXiv Logo

Uma implementação de servidor Model Context Protocol (MCP) que permite que agentes de IA pesquisem, recuperem e analisem artigos acadêmicos do arXiv, o popular repositório de acesso aberto de pré-impressões eletrônicas.

Visão Geral

Este projeto fornece um servidor MCP que permite que agentes de IA interajam com o repositório arXiv, pesquisem artigos com base em palavras-chave, recuperem informações detalhadas sobre artigos específicos e até extraiam e analisem o conteúdo dos artigos. Ele serve tanto como uma ferramenta prática para assistência de pesquisa quanto como uma implementação de referência para a construção de servidores MCP.

A implementação segue as melhores práticas estabelecidas para a construção de servidores MCP, permitindo integração perfeita com qualquer cliente compatível com MCP.

Recursos

O servidor fornece várias ferramentas poderosas para pesquisa acadêmica:

  1. search_papers: Pesquisar artigos no arXiv usando palavras-chave e obter resumos abrangentes
  2. get_paper_details: Recuperar informações detalhadas sobre um artigo específico pelo seu ID arXiv
  3. extract_paper_content: Baixar e extrair o conteúdo do texto completo do PDF de um artigo
  4. analyze_paper: Analisar o conteúdo de um artigo e gerar um resumo abrangente

Pré-requisitos

  • Python 3.11+
  • Docker se estiver executando o servidor MCP como contêiner (recomendado)

Instalação

Usando uv

  1. Instale o uv se você não o tiver:

    pip install uv
    
  2. Clone este repositório:

    git clone https://github.com/kelvingao/arxiv-mcp.git
    cd arxiv-mcp
    
  3. Instale as dependências:

    uv pip install -e .
    
  4. Crie um arquivo .env com base em .env.example:

    cp .env.example .env
    
  5. Configure suas variáveis de ambiente no arquivo .env (veja a seção Configuração)

Usando Docker (Recomendado)

  1. Construa a imagem Docker:

    docker build -t mcp/arxiv --build-arg PORT=8050 .
    
  2. Crie um arquivo .env com base em .env.example e configure suas variáveis de ambiente

Configuração

As seguintes variáveis de ambiente podem ser configuradas no seu arquivo .env:

VariávelDescriçãoExemplo
TRANSPORTProtocolo de transporte (sse ou stdio)sse
HOSTHost para vincular ao usar transporte SSE0.0.0.0
PORTPorta para escutar ao usar transporte SSE8050

Executando o Servidor

Usando uv

Transporte SSE

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

O servidor MCP será executado como um endpoint de API ao qual você pode se conectar com a configuração mostrada abaixo.

Transporte Stdio

Com stdio, o próprio cliente MCP pode iniciar o servidor MCP, então não há nada para executar neste momento.

Usando Docker

Transporte SSE

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

O servidor MCP será executado como um endpoint de API dentro do contêiner ao qual você pode se conectar com a configuração mostrada abaixo.

Transporte Stdio

Com stdio, o próprio cliente MCP pode iniciar o contêiner do servidor MCP, então não há nada para executar neste momento.

Integração com Clientes MCP

Configuração SSE

Depois de ter o servidor em execução com transporte SSE, você pode se conectar a ele usando esta configuração:

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

Nota para usuários do Windsurf: Use serverUrl em vez de url na sua configuração:

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

Nota para usuários do n8n: Use host.docker.internal em vez de localhost, pois o n8n precisa alcançar fora do seu próprio contêiner para a máquina host:

Portanto, a URL completa no nó MCP seria: http://host.docker.internal:8050/sse

Certifique-se de atualizar a porta se estiver usando um valor diferente do padrão 8050.

Python com Configuração Stdio

Adicione este servidor à sua configuração MCP para Claude Desktop, Windsurf ou qualquer outro cliente 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 com Configuração Stdio

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

Exemplos de Uso

Aqui estão alguns exemplos de como usar o servidor MCP arXiv com um agente de IA:

Pesquisando Artigos

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

Obtendo Detalhes do Artigo

Get details for the paper with arXiv ID 2303.08774

Extraindo Conteúdo do Artigo

Extract the full text from the paper with arXiv ID 2303.08774

Analisando um Artigo

Analyze the methodology section of the paper with arXiv ID 2303.08774

Construindo Seu Próprio Servidor MCP

Esta implementação fornece uma base para construir servidores MCP mais complexos. Para construir o seu próprio:

  1. Adicione suas próprias ferramentas criando métodos com o decorador @mcp.tool()
  2. Crie sua própria função de ciclo de vida para adicionar suas próprias dependências (clientes, conexões de banco de dados, etc.)
  3. Modifique as ferramentas existentes ou adicione novas para melhorar a funcionalidade
  4. Adicione prompts e recursos com @mcp.resource() e @mcp.prompt()

Licença

MIT License

Agradecimentos