← Todos os projetos
P.05 ferramental

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
Polymath
github.com/Moreti2002/polymath-mcp ↗
Telegram
github.com/Moreti2002/mcp-telegram ↗

Números

52ferramentas nos três servidores (15 + 31 + 6)
25fontes de pesquisa no Polymath, 21 sem chave
358testes automatizados (275 + 67 + 16)

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

  • Python 3.10+
  • MCP SDK
  • stdio
  • httpx

Polymath

  • 25 provedores
  • Pydantic
  • dedup por DOI e arXiv
  • PRISMA
  • pytest offline
  • GitHub Actions

Papers with Code

  • cliente HTTP tipado
  • cache SQLite

Telegram

  • Bot API

Telas

Três servidores MCP, 108 ferramentas: a resposta real de tools/list.
Claude chama get_leaderboard e responde com o estado da arte.
Série mensal de adoção de um método, plotada a partir do MCP.
Sessão fechada em 57 s de API, com paper-base e implementação oficial.

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.