Agntic AI for Research Papers

Pesquise e extraia informações sobre artigos de pesquisa do arXiv.

Documentação

MCP Agntic AI for Research Papers

Este projeto implementa um chatbot usando o Model Context Protocol (MCP) para buscar e recuperar informações sobre artigos de pesquisa do arXiv. O chatbot permite consultar artigos por tópico e extrair informações detalhadas sobre artigos específicos.

Visão Geral

O sistema consiste em dois componentes principais:

  1. Servidor: Um servidor FastMCP que fornece ferramentas para buscar artigos do arXiv e extrair informações de artigos.
  2. Cliente: Um cliente MCP que integra com o modelo GPT da OpenAI para processar consultas do usuário e interagir com o servidor.

O servidor armazena informações de artigos em arquivos JSON organizados por tópico, enquanto o cliente fornece uma interface de chat interativa para os usuários inserirem consultas.

Recursos

  • Buscar Artigos: Buscar artigos no arXiv por tópico, com número máximo de resultados configurável.
  • Extrair Informações do Artigo: Recuperar informações detalhadas (título, autores, resumo, URL do PDF, data de publicação) para um artigo específico usando seu ID arXiv.
  • Armazenamento Persistente: As informações dos artigos são salvas em arquivos JSON em um diretório papers, organizadas por tópico.
  • Chatbot Interativo: Os usuários podem interagir com o chatbot por meio de uma interface de linha de comando, com suporte a consultas em linguagem natural alimentadas pelo modelo GPT da OpenAI.

Requisitos

  • Python 3.12+
  • Dependências (instale via uv ou pip):
    • arxiv
      • mcp
      • openai
      • nest-asyncio
      • python-dotenv
  • Chave da API da OpenAI (armazenada em src/keys.json)
  • uv (recomendado, para executar o servidor e o cliente)

Instalação

  1. Clone o repositório:
    git clone <repository-url>
    cd <repository-directory>
    
  2. Instale as dependências usando uv (recomendado):
    uv pip install -r pyproject.toml
    
    Ou com pip:
    pip install -r pyproject.toml
    
  3. Crie um arquivo src/keys.json com sua chave da API da OpenAI:
    {
        "open_ai_api": "your-openai-api-key"
    }
    
  4. Certifique-se de que a configuração do servidor MCP em src/server_config.json esteja corretamente definida:
    {
        "mcpServers": {
            "filesystem": {
                "command": "npx",
                "args": [
                    "-y",
                    "@modelcontextprotocol/server-filesystem",
                    "."
                ]
            },
            "research": {
                "command": "uv",
                "args": ["run", "research_server.py"]
            },
            "fetch": {
                "command": "uvx",
                "args": ["mcp-server-fetch"]
            }
        }
    }
    

Uso

  1. Inicie o servidor MCP:
    uv run src/research_server.py
    
    Isso executa o servidor com a configuração research, fornecendo ferramentas para busca e extração de artigos.
  2. Execute o cliente em um terminal separado:
    uv run main.py
    
    O cliente conecta-se ao servidor, inicializa o chatbot e inicia o loop de chat interativo.
  3. Interaja com o chatbot:
    • Digite uma consulta como "Buscar artigos sobre computação quântica" ou "Obter informações para o artigo 1234.56789".
      • Digite 'quit' para sair.

MCP Server

Estrutura do Projeto

├── papers/                   # Directory for storing paper information (auto-created)
├── src/
│   ├── mcp_chatbot.py        # MCP client with chatbot implementation
│   ├── research_server.py    # FastMCP server with arXiv search tools
│   ├── keys.json             # API keys (not tracked in git)
│   ├── server_config.json    # MCP server configuration
├── README.md
├── main.py                   # Entry point

Exemplos de Consultas

  • Buscar artigos:
    Query: Find 3 papers on machine learning
    
    Saída: Lista de IDs de artigos, com detalhes salvos em papers/machine_learning/papers_info.json.
  • Extrair informações do artigo:
    Query: Get info for paper 2103.12345
    
    Saída: Detalhes do artigo em formato JSON (título, autores, resumo, etc.) se encontrado.

Notas

  • O servidor cria um diretório papers para armazenar arquivos JSON contendo informações dos artigos, organizados por tópico (por exemplo, papers/quantum_computing/papers_info.json).
  • O cliente usa gpt-4o-mini por padrão. Atualize o modelo em src/mcp_chatbot.py se necessário.
  • O sistema assume que uv está instalado para executar scripts. Modifique o command em server_config.json se estiver usando uma ferramenta diferente (por exemplo, python).

Melhorias Futuras

  • Adicionar suporte para filtrar artigos por data, autor ou categoria.
  • Implementar download e armazenamento de PDFs de artigos.
  • Aprimorar o chatbot com melhor compreensão de linguagem natural para consultas complexas.
  • Adicionar uma interface web para melhor interação com o usuário.

Licença

Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.