{
  "markdown": "# MCP Compras.gov.br\n\n[![M8ven Score](https://m8ven.ai/badge/mcp/opedrosoares-mcp-compras-1wrbus?v=bf512ced4090ecbb6958bbd911c20716)](https://m8ven.ai/mcp/opedrosoares-mcp-compras-1wrbus)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![Python](https://img.shields.io/badge/python-3.11%2B-blue)](pyproject.toml)\n[![FastMCP](https://img.shields.io/badge/FastMCP-2.x-informational)](https://github.com/jlowin/fastmcp)\n\nServidor MCP que reúne em um único pacote as APIs públicas do ecossistema **Compras.gov.br**, voltado a analistas e técnicos das áreas de **planejamento de contratação** e **execução contratual**.\n\n**100 tools + 6 prompts + 6 resources** cobrindo Dados Abertos, PNCP, Portal da Transparência/CGU, Comprasnet Contratos e BrasilAPI/Receita.\n\nApoia a elaboração de:\n\n- Estudos Técnicos Preliminares (ETP)\n- Termos de Referência (TR)\n- Pesquisa de preços no padrão IN SEGES/ME 65/2021\n- Checagem de sanções de fornecedores (CEIS, CNEP, CEPIM, CEAF)\n- Análise de atas de registro de preço (ARP) para adesão (carona)\n- Benchmark inter-órgãos via Portal Nacional de Contratações Públicas (PNCP)\n- Due diligence de fornecedor (cadastro + sanções + Receita Federal)\n\n## APIs cobertas\n\n| API | URL base | Autenticação |\n|-----|----------|--------------|\n| Dados Abertos Compras | `dadosabertos.compras.gov.br` | pública |\n| PNCP — Portal Nacional | `pncp.gov.br/api/consulta` | pública |\n| Portal da Transparência (CGU) | `api.portaldatransparencia.gov.br` | chave gratuita |\n| Comprasnet Contratos | `contratos.comprasnet.gov.br/api` | pública (rotas `/api/*`) |\n| BrasilAPI / MinhaReceita | `brasilapi.com.br` | pública |\n\n### ⚠️ Aviso operacional\n\nCada linha abaixo foi confirmada por probe direto ao upstream (não é suposição). Rode `compras_healthcheck` a qualquer momento para ver a situação **atual** de cada módulo — esta lista é o retrato mais recente conhecido, o healthcheck é o retrato ao vivo.\n\n**Resolvidos** (deixados aqui para quem encontrar issues antigas ou forks desatualizados):\n\n- ✅ **Família `/modulo-uasg/*`** (`compras_uasg_*`, `compras_orgao_*`) — chegou a devolver 404 para todo mundo e a documentação atribuía isso a bug de roteamento sem fix possível. Diagnóstico corrigido em 2026-08 (v0.3.13): faltava o parâmetro obrigatório `statusUasg`/`statusOrgao` — a API responde 404 (não 400) quando ele falta. Hoje devolve ~22 mil UASGs e ~12 mil órgãos normalmente.\n- ✅ **`compras_pesquisar_preco_material`** — o contrato da rota `/modulo-pesquisa-preco/1_consultarMaterial` mudou de `codigoItemCatalogo=<int>` para o par `tipo` (`codigoItemCatalogo`|`codigoPdm`) + `codigo` (string), sem versionar. Corrigido em v0.3.13.\n\n**Em aberto** (limitação real do upstream, não do MCP):\n\n- **CATMAT busca textual quebrada**: o filtro `descricao` (e variantes `nome`, `termo`, `q`) de `/modulo-material/4_consultarItemMaterial` ignora o valor e devolve o universo CATMAT inteiro (~340k itens). Use `compras_catmat_listar_grupos` → `_listar_classes` → `_buscar` com `codigo_grupo`/`codigo_classe`. A tool emite `_aviso_filtro` quando detecta o problema.\n- **Filtro UASG em `/modulo-legado/*`**: pregões e licitações têm bug Hibernate confirmado no upstream — o swagger documenta `co_uasg`/`uasg`, mas o atributo não existe no modelo da view (`400 Bad Request`). Os parâmetros foram removidos das tools `compras_legado_pregoes_listar` e `compras_legado_licitacoes_listar`; para filtrar por UASG, faça client-side no retorno.\n- **`compras_pncp_orgao_unidades`**: a rota `/v1/orgaos/{cnpj}/unidades` não é documentada no contrato oficial do PNCP Consulta — devolve 404 para CNPJs que não publicam diretamente (ex.: CNPJ raiz de órgão cujas unidades publicam com CNPJ próprio). A tool devolve diagnóstico com alternativas em vez de estourar exception.\n- **`compras_pncp_contratacao_itens`**: pode devolver 404 mesmo quando a contratação-pai responde 200 — inconsistência observada no upstream, não reproduzida de forma determinística.\n- **Portal da Transparência (CGU)**: o servidor é protegido por AWS WAF que bloqueia (`405` + página HTML \"Human Verification\") clientes HTTP com `User-Agent` genérico, mesmo com chave válida. O cliente deste MCP já envia um `User-Agent` browser-like como mitigação; se a CGU mudar as regras do WAF, as tools `compras_sancao_*` podem voltar a falhar — não há fix definitivo do lado do MCP.\n- **Comprasnet `/api/contrato/ug/{uasg}`**: o endpoint não pagina e devolve a lista completa em uma resposta única (pode passar de 1 MB). `compras_contrato_comprasnet_por_uasg` aplica fatiamento client-side com cache do payload completo para não inundar o contexto do LLM.\n\n## Instalação\n\n### Opção 1 — Desktop Extension (.mcpb), recomendado para Claude Desktop\n\nBaixe o `compras.mcpb` mais recente em [Releases](https://github.com/opedrosoares/MCP_Compras/releases/latest) e abra com duplo-clique — o Claude Desktop instala e pede as configurações (chave da Transparência, Redis, etc.) automaticamente.\n\nOu gere localmente a partir do código-fonte:\n\n```bash\ngit clone https://github.com/opedrosoares/MCP_Compras.git\ncd MCP_Compras\npython3 build_mcpb.py     # gera dist/compras.mcpb\nopen dist/compras.mcpb    # macOS — no Windows/Linux, abra com duplo-clique no Claude Desktop\n```\n\n### Opção 2 — Local via uv (desenvolvimento ou Claude Code)\n\n```bash\ngit clone https://github.com/opedrosoares/MCP_Compras.git\ncd MCP_Compras\nuv sync\nuv run compras-mcp\n```\n\nVeja [Conectar a um cliente MCP](#conectar-a-um-cliente-mcp) para registrar esse comando no Claude Desktop ou Claude Code.\n\n### Opção 3 — Remoto (Railway), para uso via web/mobile ou compartilhado por uma equipe\n\nNão exige instalação local nenhuma — qualquer cliente MCP aponta para uma URL HTTP. Veja o passo a passo completo em [Deploy remoto (Railway)](#deploy-remoto-railway).\n\n## Conectar a um cliente MCP\n\n### Claude Code — `.mcp.json` do projeto ou `~/.claude.json` (global)\n\nServidor local via stdio (assume `compras-mcp` instalado no PATH — via `uv tool install .` ou `pip install .`):\n\n```json\n{\n  \"mcpServers\": {\n    \"compras\": {\n      \"command\": \"compras-mcp\",\n      \"env\": {\n        \"TRANSPARENCIA_API_KEY\": \"sua-chave-aqui\"\n      }\n    }\n  }\n}\n```\n\nSem instalar globalmente, rodando direto do clone via `uv`:\n\n```json\n{\n  \"mcpServers\": {\n    \"compras\": {\n      \"command\": \"uv\",\n      \"args\": [\"run\", \"--directory\", \"/caminho/para/MCP_Compras\", \"compras-mcp\"],\n      \"env\": {\n        \"TRANSPARENCIA_API_KEY\": \"sua-chave-aqui\"\n      }\n    }\n  }\n}\n```\n\n`TRANSPARENCIA_API_KEY` é opcional: sem ela, todas as tools funcionam exceto as de sanções (`compras_sancao_*`, `compras_checar_sancoes_fornecedor`, ramificações de sanção em `compras_perfil_fornecedor_completo`).\n\n### Claude Desktop (registro manual, sem o `.mcpb`)\n\nEdite o `claude_desktop_config.json`:\n\n- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n- Linux: `~/.config/Claude/claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"compras\": {\n      \"command\": \"compras-mcp\",\n      \"env\": {\n        \"TRANSPARENCIA_API_KEY\": \"sua-chave-aqui\"\n      }\n    }\n  }\n}\n```\n\n### Servidor remoto (Railway) via HTTP\n\nDepois do deploy (ver seção abaixo), o endpoint MCP fica em `https://SEU-PROJETO.up.railway.app/mcp`. Não há autenticação própria — é o mesmo servidor, só que em modo HTTP em vez de stdio.\n\n- **claude.ai / Claude Desktop**: Settings → Connectors → Adicionar conector personalizado → cole a URL.\n- **Claude Code** — via CLI:\n\n  ```bash\n  claude mcp add --transport http compras-remoto https://SEU-PROJETO.up.railway.app/mcp\n  ```\n\n  Ou direto no `.mcp.json`:\n\n  ```json\n  {\n    \"mcpServers\": {\n      \"compras-remoto\": {\n        \"type\": \"http\",\n        \"url\": \"https://SEU-PROJETO.up.railway.app/mcp\"\n      }\n    }\n  }\n  ```\n\n## Configuração\n\n| Variável | Obrigatória | Descrição |\n|----------|-------------|-----------|\n| `TRANSPARENCIA_API_KEY` | Não | Habilita as tools de sanções (CEIS, CNEP, CEPIM, CEAF, leniência). Sem ela, as demais ~90 tools (Dados Abertos, PNCP, Comprasnet, BrasilAPI) continuam funcionando normalmente. |\n| `REDIS_URL` | Não | Cache TTL compartilhado em Redis. Recomendado em produção/Railway com múltiplos pods. Sem ela, cache fica em memória local (TTL+LRU). |\n| `INCLUIR_CPF_COMPLETO` | Não | `false` (padrão): CPFs de servidores são mascarados (`123.***.***-45`). `true` retorna completo — use com critério (LGPD). |\n| `LOG_LEVEL` | Não | `DEBUG`, `INFO` (padrão), `WARNING` ou `ERROR`. |\n| `COMPRASNET_BEARER_TOKEN` | Não | Reservado para v2 (rotas autenticadas do Comprasnet Contratos via login gov.br). Sem efeito na v1. |\n\n> **Dica: como obter a chave do Portal da Transparência**\n>\n> Cadastro gratuito, em minutos, em <https://api.portaldatransparencia.gov.br/api-de-dados/cadastrar-email>. A chave chega por e-mail e vai direto na variável `TRANSPARENCIA_API_KEY`.\n\nVeja [.env.example](.env.example) para todas as variáveis configuráveis, incluindo TTLs de cache por domínio, timeouts HTTP e base URLs (só para testes/mocks — os padrões já apontam para produção).\n\n## Deploy remoto (Railway)\n\nO servidor detecta a env var `PORT` (injetada pelo Railway) e sobe automaticamente em modo HTTP; sem ela, sobe em stdio. Não há login por usuário — todas as APIs upstream são anônimas ou usam a chave da Transparência configurada no próprio servidor.\n\n### 1. Criar conta no Railway\n\nAcesse [railway.com](https://railway.com), clique em **Sign Up** e faça login com GitHub, GitLab ou e-mail.\n\n### 2. Instalar o Railway CLI\n\n```bash\n# macOS (Homebrew)\nbrew install railway\n\n# npm (qualquer plataforma)\nnpm install -g @railway/cli\n\n# Verificar\nrailway --version\n```\n\n### 3. Autenticar no terminal\n\n```bash\nrailway login\n```\n\n### 4. Clonar o repositório\n\n```bash\ngit clone https://github.com/opedrosoares/MCP_Compras.git\ncd MCP_Compras\n```\n\n### 5. Criar o projeto no Railway\n\n```bash\nrailway init -n mcp-compras\n```\n\nSe tiver mais de um workspace, adicione `--workspace \"Nome do Workspace\"`.\n\n### 6. Adicionar Redis (recomendado)\n\n```bash\nrailway add --database redis\n```\n\nO Redis vira cache compartilhado entre instâncias — sem ele, cada pod mantém seu próprio cache em memória.\n\n### 7. Configurar variáveis de ambiente\n\n```bash\nrailway variable set TRANSPARENCIA_API_KEY=sua-chave-aqui\n```\n\n`REDIS_URL` normalmente já é injetada automaticamente pelo plugin Redis do Railway (referência de outra variável do próprio projeto) — confira em `railway variables` se precisa setar manualmente.\n\n### 8. Fazer o deploy\n\n```bash\nrailway up\n```\n\nAguarde o build (Dockerfile já incluso no repo, 2-3 minutos na primeira vez).\n\n### 9. Gerar domínio público\n\n```bash\nrailway domain\n```\n\nGera uma URL como `https://mcp-compras-production.up.railway.app`.\n\n### 10. Verificar o deploy\n\nO endpoint MCP exige os headers do protocolo Streamable HTTP — uma requisição \"crua\" deve responder **406** (não erro de conexão), confirmando que o servidor está de pé:\n\n```bash\ncurl -s -o /dev/null -w \"%{http_code}\\n\" -X POST https://SEU-PROJETO.up.railway.app/mcp\n# 406\n```\n\nPara uma checagem mais completa (versão, fontes upstream, chave da Transparência configurada), use a tool `compras_versao` ou `compras_healthcheck` a partir de um cliente MCP já conectado.\n\n### 11. Conectar no Claude\n\nVeja [Servidor remoto (Railway) via HTTP](#servidor-remoto-railway-via-http) acima.\n\n### Domínio customizado (opcional)\n\n```bash\nrailway domain mcp.seu-orgao.gov.br\n```\n\nO comando devolve os registros DNS a configurar. Crie um CNAME no DNS do seu órgão apontando para o valor indicado; o certificado SSL é provisionado automaticamente. Para checar se a propagação/certificado já está ok:\n\n```bash\nrailway domain status mcp.seu-orgao.gov.br\n```\n\n### Atualizar o servidor\n\n```bash\ngit pull\nrailway up\n```\n\n## Requisitos de sistema\n\n- Python ≥ 3.11\n- [uv](https://docs.astral.sh/uv/) (recomendado) ou `pip`\n- Claude Code, Claude Desktop, ou qualquer cliente MCP compatível com stdio ou Streamable HTTP\n- Redis (opcional, só para cache compartilhado em deploy com múltiplas instâncias)\n- Chave gratuita do Portal da Transparência (opcional, só para tools de sanções)\n\nNenhuma dependência de sistema além do Python — diferente de MCPs que fazem OCR/scraping, este servidor só consome APIs REST públicas.\n\n## Tools (100 no total)\n\nAgrupadas por domínio funcional:\n\n| Domínio | Tools | Cobertura |\n|---------|-------|-----------|\n| **Compostas (agente)** | 5 | `pesquisar_precos_para_etp` (IN SEGES 65/2021 com IQR), `checar_sancoes_fornecedor`, `montar_dossie_arp`, `buscar_contratacoes_similares`, `perfil_fornecedor_completo` |\n| **Catálogo** (CATMAT/CATSER) | 8 | Grupos/classes/**PDMs**/itens; a API não busca por substring, então a navegação é hierárquica (ver aviso) |\n| **Pesquisa de preço** | 4 | Material/serviço, detalhe por compra |\n| **Planejamento** (PGC + PCA) | 8 | PGC SISG, PCA PNCP (federal + estados + municípios) |\n| **Atas de Registro de Preço** | 9 | Listar, buscar por objeto, saldo, adesões, unidades participantes, PNCP |\n| **Contratações** (14.133 + legado) | 14 | Lei 14.133 (filtros por UASG, CNPJ do órgão, UF, município, amparo legal, item de catálogo, fornecedor e faixa de valor homologado), Lei 8.666 **por item** (estimado → menor lance → homologado), RDC, dispensas |\n| **Contratos** | 15 | Dados Abertos (contrato e itens do contrato) + Comprasnet (garantias, faturas, ocorrências, fiscais, empenhos, cronograma, publicações) |\n| **Fornecedores** | 4 | Cadastro, impedimentos, contratos por item |\n| **Sanções** (Transparência/CGU) | 5 | CEIS, CNEP, CEPIM, CEAF, acordos de leniência |\n| **PNCP** | 11 | Contratações (publicação, proposta, atualização), contratos, modalidades, **arquivos de contratação e de ata** (Edital/TR/ETP e aditivos, com URL de download) |\n| **Organizações** | 6 | UASG (listar/consultar/buscar), órgãos, unidades PNCP |\n| **Indicadores** | 2 | Consolidados, por período |\n| **Analítica** | 2 | Série temporal de contratações, comparação entre períodos |\n| **Enriquecimento** | 1 | CNPJ na Receita Federal (BrasilAPI/MinhaReceita) — QSA, capital, CNAEs |\n| **Descoberta** (tools-espelho) | 4 | `listar_prompts`/`obter_prompt`/`listar_resources`/`obter_resource` — para clientes que só consomem o primitivo *tools* (ex.: Claude.ai web) |\n| **Diagnóstico** | 2 | `compras_versao`, `compras_healthcheck` |\n\nA lista completa (nome + descrição de cada tool) está em [`manifest.json`](manifest.json) ou via `tools/list` no MCP Inspector.\n\n### Fluxos típicos\n\n**ETP de aquisição de cadeiras ergonômicas:**\n\n1. `compras_catmat_buscar` com `termo=\"cadeira ergonomica\"` → obter `codigo_item_catalogo`\n2. `compras_pesquisar_precos_para_etp` (composta) com `tipo=\"material\"` → mediana/média/desvio + descarte IQR\n3. `compras_pgc_por_catalogo` para ver o que outros órgãos planejaram comprar\n4. `compras_arp_listar` com `apenas_vigentes=True` → atas vigentes para possível adesão\n\n**Ler a especificação técnica real por trás de um item genérico:**\n\n1. `compras_pncp_contratacoes_publicacao` (ou `compras_arp_listar`) → obter `cnpj`, `ano` e `sequencial` da compra\n2. `compras_pncp_contratacao_arquivos` → lista Edital, Termo de Referência, ETP e Projeto Básico com URL de download\n3. Baixar a `url` com um GET simples — o Edital costuma vir como ZIP (às vezes ZIP dentro de ZIP) com o TR dentro\n\nÉ o caminho para descobrir, por exemplo, qual GPU está de fato por trás de um CATMAT genérico de \"microcomputador\".\n\n**Acompanhar aditivos de uma ata de registro de preços:**\n\n1. `compras_arp_listar` → obter `numeroControlePncpAta` e o sequencial da ata dentro da compra\n2. `compras_pncp_ata_arquivos` → ata original + aditivos de reequilíbrio/prorrogação, ordenáveis por `dataPublicacaoPncp`\n\n**Análise de fornecedor antes de homologação:**\n\n1. `compras_perfil_fornecedor_completo` (composta) com o CNPJ — uma chamada devolve cadastro + sanções + contratos vigentes + dados da Receita\n\n**Inventário de contratos a renovar:**\n\n1. `compras_contratos_listar_por_fim_vigencia` com `data_fim_vigencia` próxima\n2. Para cada contrato relevante: `compras_contrato_historico_aditivos`, `compras_contrato_ocorrencias`\n\n**Antes de uma demonstração ou de instruir processo:**\n\n1. `compras_healthcheck(profundidade=\"rotas\")` — probe real contra o upstream em ~30s, retorna `pronto_para_uso` e qual módulo está degradado/fora, se algum.\n\n## Prompts MCP (6)\n\nDiferente de tools (que o LLM invoca sozinho), prompts são selecionados pelo usuário no cliente MCP e expandem em um roteiro guiado usando as tools disponíveis. Úteis como ponto de partida para fluxos recorrentes.\n\n| Prompt | O que faz |\n|--------|-----------|\n| `analisar_contratacao_pncp` | Checklist de viabilidade de uma contratação publicada no PNCP: objeto, valor, prazos, itens críticos, riscos. |\n| `panorama_orgao_360` | Perfil 360° de um órgão: identificação, contratações do último ano, principais fornecedores, PCA do ano corrente. |\n| `dossie_due_diligence_fornecedor` | Dossiê completo de fornecedor: cadastro, sanções (CEIS/CNEP/CEPIM/CEAF + leniência), impedimentos, contratos. |\n| `oportunidades_carona_arp` | Encontra ARPs vigentes com saldo disponível para adesão (carona). |\n| `montar_etp_pesquisa_precos` | Monta a seção de pesquisa de preços de um ETP no padrão IN SEGES/ME 65/2021 (≥3 fontes, estatística, descarte IQR). |\n| `tendencia_contratacoes_periodo` | Tendência de contratações com bucketing temporal e comparação A vs. B. |\n\nClientes que só consomem o primitivo *tools* (ex.: Claude.ai web) podem acessá-los via `compras_listar_prompts` / `compras_obter_prompt`.\n\n## Resources MCP (6)\n\nDados de referência que o cliente lista e lê sob demanda, sem gastar uma chamada de rede:\n\n| Resource (URI) | Conteúdo |\n|----------------|----------|\n| `compras://referencia/modalidades-pncp` | Códigos de modalidade de contratação aceitos pelo PNCP |\n| `compras://referencia/esferas-federativas` | Códigos de esfera (F/E/M/D) usados no filtro `esfera` das listagens |\n| `compras://referencia/criterios-julgamento` | Critérios de julgamento do art. 33 da Lei 14.133/2021 |\n| `compras://referencia/situacoes-contratacao` | Códigos de `situacaoCompraId` do PNCP |\n| `compras://glossario/lei-14133` | Cheat-sheet de ETP, TR, modalidades, SRP, sanções, catálogos e formatos de data |\n| `compras://meta/escopo` | O que o servidor expõe, o que faz além de consultar, e o que explicitamente não faz |\n\nClientes que só consomem o primitivo *tools* podem acessá-los via `compras_listar_resources` / `compras_obter_resource`.\n\n## Padrões internos\n\n- **Envelope padrão** das tools `listar_*`: `{resultado, _pagina_atual, _total_paginas, _total_registros, _proxima_pagina, _cache_hit, _latency_ms}`.\n- **SSoT de descriptions**: descrições de parâmetros vivem em [`src/compras_mcp/schemas.py`](src/compras_mcp/schemas.py); tools leem via `_helpers.desc(Model, \"campo\")`. Teste em [`tests/test_server.py`](tests/test_server.py) detecta drift.\n- **LGPD**: CPFs mascarados como `123.***.***-45`; ajuste com `INCLUIR_CPF_COMPLETO=true`. Tools afetadas incluem `_aviso_lgpd` no payload.\n- **Cache**: TTL+LRU em memória (default) ou Redis quando `REDIS_URL` setada. Cada domínio tem seu prefixo (CATALOGO, PRECOS, ATAS, ORGAOS, SANCOES, COMPOSTAS etc.) — ajustáveis via `CACHE_<PREFIX>_TTL` e `CACHE_<PREFIX>_MAX_SIZE`.\n- **Datas**: 3 formatos por API (`YYYY-MM-DD`, `yyyyMMdd`, `YYYY-MM-DD HH:mm:ss`) convertidos transparentemente por `format_date(value, flavor)`.\n- **Framework**: FastMCP 2.x. Transporte detectado por `PORT` — presente → HTTP em `0.0.0.0:$PORT`, ausente → stdio.\n\n## Links\n\n- [Changelog](CHANGELOG.md) — cada release documenta a causa raiz encontrada, não só o sintoma\n- [Roadmap](ROADMAP.md)\n- [Issues upstream conhecidas](ISSUES_UPSTREAM.md) — bugs reportáveis aos mantenedores da SEGES/CGU\n- [Repositório](https://github.com/opedrosoares/MCP_Compras)\n- [Dados Abertos Compras — Swagger](https://dadosabertos.compras.gov.br/swagger-ui/index.html)\n- [PNCP Consulta — Swagger](https://pncp.gov.br/api/consulta/swagger-ui/index.html)\n- [Portal da Transparência — Swagger](https://api.portaldatransparencia.gov.br/swagger-ui/index.html)\n\n## Licença\n\nMIT — veja [LICENSE](LICENSE).\n\n## Status\n\nv0.3.17 — 100 tools + 6 prompts + 6 resources, em produção (Railway + Redis). Cada release recente foi validada em bateria de testes ponta a ponta contra o ambiente de produção, não apenas local — ver [Changelog](CHANGELOG.md).\n\n<!-- Prova de propriedade do MCP Registry oficial: o validador procura este\n     token na long_description publicada no PyPI. Não remover. -->\n<!-- mcp-name: io.github.opedrosoares/mcp-compras -->\n",
  "bytes": 20606,
  "sha": "ac7035238ea296da5d55acbcf873bb2c726db236e4d7a42e0f91d4a2608025e7",
  "repo_slug": "opedrosoares/mcp_compras",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_opedrosoares_mcp_compras_1ac5f0c3/readme"
}