Servidores MCP para agentes de IA
Três servidores Model Context Protocol, em Python, que dão a um assistente ferramentas de verdade: pesquisa acadêmica agregada em 25 fontes, leitura da API do paperswithcode.co e um bot de Telegram. Dois deles com código aberto.
- Papel
- Projeto próprio, sozinho
- Período
- julho a setembro de 2026
Números
Contado no código em 22/09/2026: ferramentas por @mcp.tool e pela tabela de registro do servidor, fontes pelo registro de provedores, testes por def test_. O Polymath e o Telegram estão no GitHub; o do Papers with Code ainda é só local.
O problema
Um agente de pesquisa precisa de dados que vivem em muitas APIs — arXiv, Crossref, OpenAlex, DBLP, PubMed, GitHub, Hugging Face — cada uma com formato, limite e defeito próprios. Os servidores MCP que existiam cobriam uma fatia cada; o mesmo artigo voltava três vezes, com campos diferentes, e uma fonte fora do ar derrubava a busca.
Os outros dois nasceram de necessidade concreta: o Papers with Code original foi desativado e a reconstrução em paperswithcode.co não tinha cliente MCP; e um agente que roda sem ninguém olhando precisa de um canal para avisar e entregar arquivo.
O que faz
- Polymath: busca artigos em 25 fontes de uma vez e devolve um único formato, com o mesmo artigo fundido pelo DOI e pelo id do arXiv e os melhores campos de cada fonte.
- Resolve um artigo pelo DOI, com PDF de acesso aberto e contagem de citações; acha a implementação no GitHub, o modelo no Hugging Face e a discussão no Hacker News e no Stack Exchange.
- Ferramentas de revisão sistemática: bola de neve de citações, triagem, relatório PRISMA, importação e exportação de registros.
- Papers with Code: 31 ferramentas somente leitura sobre a API do paperswithcode.co — artigos, tarefas, métodos, datasets, leaderboards, conferências — com cache local em SQLite.
- Telegram: envia texto, foto e documento por um bot e lê o que chegou, em 6 ferramentas — é por aqui que os agentes desta máquina avisam.
Como foi construído
Os três usam o SDK oficial de MCP em Python, transporte stdio e httpx assíncrono. No Polymath, cada fonte é um provedor com a mesma interface e a saída é validada por Pydantic; as consultas saem em paralelo com tempo limite por fonte, e a resposta traz sources_ok e sources_failed — resposta parcial é o caso normal de um agregador, não um erro.
Polymath tem um teste por fonte, rodando sem rede, e uma CI em três versões de Python; os testes ao vivo rodam à parte e não bloqueiam.
Fonte sem chave é pulada, não falhada
Quatro fontes — IEEE Xplore, Scopus, Web of Science e Springer — só funcionam com chave de API. Tratá-las como falha poluiria o relatório PRISMA de quem nunca teve acesso a elas. A regra é: fonte sem chave é não configurada e fica fora da busca; pedi-la pelo nome falha alto, dizendo qual variável falta.
O preço é que o número de fontes varia por instalação, e a documentação tem que dizer isso em vez de prometer 25 para todos. O que se compra é um relatório de revisão que conta só o que foi de fato consultado.
Stack
Comum
Polymath
Papers with Code
Telegram
Telas
A primeira tela é a saída real de initialize + tools/list dos três servidores, medida em 22/09/2026. As demais são quadros de um vídeo de demonstração gravado por mim numa sessão real do Claude Code com o servidor do Papers with Code.