npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@integrobr/mcp-server

v0.1.0

Published

Servidor MCP da IntegroBR: deixa um agente de IA consultar as notas fiscais eletrônicas (NFS-e, NF-e e CT-e) monitoradas pelo CNPJ da empresa, em modo somente leitura.

Readme

@integrobr/mcp-server

Servidor MCP da IntegroBR. Deixa um agente de IA (Claude Desktop, Claude Code, ou qualquer cliente que fale MCP) consultar as notas fiscais que a IntegroBR monitora pro CNPJ do cliente, sem abrir o painel e sem escrever código.

Perguntas que ele passa a responder sozinho: "quanto entrou de nota esse mês", "algum fornecedor parou de faturar", "quanto já usei da franquia do plano", "me mostra as notas acima de R$ 5.000 de agosto".

Somente leitura, e isso é deliberado

A API pública da IntegroBR tem endpoints de escrita: criar empresa, subir certificado, pausar, retomar, remover. Nenhum deles é exposto aqui.

O motivo é que um servidor MCP entrega as ferramentas a um modelo que decide sozinho quando chamá-las, a partir de texto que pode vir de qualquer lugar, inclusive do conteúdo de um documento fiscal que a própria ferramenta trouxe. "Remover empresa" nessa posição é risco sem contrapartida. Quem precisa automatizar escrita usa a API direto, com código que passa por revisão.

Todo acesso passa por uma única função que só faz GET. Uma ferramenta nova que precisasse de POST teria que mudar essa função, o que é exatamente o atrito desejado.

Configuração

Gere uma chave de API no painel, em Chaves de API. Recomendado: uma chave dedicada pro agente, de preferência restrita a uma empresa. Assim dá pra revogar o acesso do agente sem derrubar a integração do ERP.

No claude_desktop_config.json:

{
  "mcpServers": {
    "integrobr": {
      "command": "npx",
      "args": ["-y", "@integrobr/mcp-server"],
      "env": { "INTEGROBR_API_KEY": "ibr_live_..." }
    }
  }
}

Variáveis:

| Variável | Obrigatória | Padrão | |---|---|---| | INTEGROBR_API_KEY | sim | — | | INTEGROBR_API_URL | não | https://api.recebidas.integrobr.com/api/v1 |

Uma chave de sandbox (ibr_test_...) funciona igual e não toca em dado de produção. É o jeito seguro de experimentar.

Ferramentas

| Ferramenta | O que faz | |---|---| | consultar_conta | Nome, status e ambiente da conta ligada à chave | | consultar_consumo | Franquia usada no ciclo, saldo e excedente | | listar_empresas | CNPJs monitorados e o estado de cada um | | detalhar_empresa | Detalhe de um CNPJ, incluindo certificado | | listar_documentos | NFS-e, NF-e e CT-e capturadas, com filtro de período, fornecedor, valor, tipo e papel | | detalhar_documento | Documento completo, com prestador, tomador, valores e tributos |

Valores em listar_documentos são filtrados em centavos: R$ 1.500,00 é 150000. A descrição da ferramenta já avisa isso ao modelo.

Desenvolvimento

npm install -w packages/mcp-server
npm run build -w packages/mcp-server

Para testar sem cliente MCP, converse com ele por stdio:

{
  echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}'
  sleep 1
  echo '{"jsonrpc":"2.0","method":"notifications/initialized"}'
  sleep 1
  echo '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
  sleep 2
} | INTEGROBR_API_KEY=ibr_live_... node packages/mcp-server/dist/index.js

Cuidado ao mexer: nunca escreva em stdout. Ele é o canal do protocolo, e um console.log solto corrompe a sessão do cliente. Log vai em stderr.