Agntic AI for Research Papers
Pesquise e extraia informações sobre artigos de pesquisa do arXiv.
GitHubExperimente este MCPPatrocinado
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:
- Servidor: Um servidor FastMCP que fornece ferramentas para buscar artigos do arXiv e extrair informações de artigos.
- 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
uvoupip):arxivmcpopenainest-asynciopython-dotenv
- Chave da API da OpenAI (armazenada em
src/keys.json) uv(recomendado, para executar o servidor e o cliente)
Instalação
- Clone o repositório:
git clone <repository-url> cd <repository-directory> - Instale as dependências usando
uv(recomendado):
Ou comuv pip install -r pyproject.tomlpip:pip install -r pyproject.toml - Crie um arquivo
src/keys.jsoncom sua chave da API da OpenAI:{ "open_ai_api": "your-openai-api-key" } - Certifique-se de que a configuração do servidor MCP em
src/server_config.jsonesteja 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
- Inicie o servidor MCP:
Isso executa o servidor com a configuraçãouv run src/research_server.pyresearch, fornecendo ferramentas para busca e extração de artigos. - Execute o cliente em um terminal separado:
O cliente conecta-se ao servidor, inicializa o chatbot e inicia o loop de chat interativo.uv run main.py - 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.
- Digite uma consulta como "Buscar artigos sobre computação quântica" ou "Obter informações para o artigo 1234.56789".
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:
Saída: Lista de IDs de artigos, com detalhes salvos emQuery: Find 3 papers on machine learningpapers/machine_learning/papers_info.json. - Extrair informações do artigo:
Saída: Detalhes do artigo em formato JSON (título, autores, resumo, etc.) se encontrado.Query: Get info for paper 2103.12345
Notas
- O servidor cria um diretório
paperspara 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-minipor padrão. Atualize o modelo emsrc/mcp_chatbot.pyse necessário. - O sistema assume que
uvestá instalado para executar scripts. Modifique ocommandemserver_config.jsonse 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.
