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

ifollow-sap

v0.9.0

Published

Conector MCP do iFollow: deixa o Claude ler e diagnosticar sistemas SAP ABAP a partir da maquina de quem usa. Somente leitura.

Readme

Conector SAP do iFollow

Deixa o Claude ler o seu SAP e devolver diagnóstico. Somente leitura: não existe caminho de escrita neste código.

Roda na sua máquina, dentro da rede onde o SAP é alcançável. Nada do sistema sai daqui — não há servidor do iFollow para onde mandar.


Só quer ver como é?

Sem SAP à mão, dá para experimentar o agente agora. Um SAP simulado sobe na sua própria máquina:

npx ifollow-sap demonstracao

Depois feche o Claude Desktop por completo, abra de novo e peça "diagnostique o sistema DEMO".

Os dados são inventados e todo relatório sai marcado como demonstração logo no topo, antes da nota. Quando tiver um sistema de verdade, npx ifollow-sap configurar substitui.


Instalar, em três passos

1. Node

Precisa de Node 20 ou mais novo. Confira no terminal:

node --version

Se não tiver, ou se a versão for menor:

Mac — baixe o instalador LTS em nodejs.org, abra e siga. Pede a senha do Mac uma vez.

Windows — baixe o instalador .msi LTS em nodejs.org. Pede direito de administrador.

Sem direito de administrador? Baixe o .zip do Node em vez do instalador, extraia numa pasta sua (por exemplo C:\Users\seu.nome\node) e acrescente essa pasta ao Path do usuário — não ao do sistema, que é o que exige administrador.

2. Configurar

Um comando. Ele pergunta quatro coisas, testa a conexão antes de gravar qualquer coisa, guarda a senha no cofre da máquina e escreve a configuração do Claude sozinho.

npx ifollow-sap configurar

Vai perguntar:

| Pergunta | Exemplo | Onde achar | | --- | --- | --- | | Endereço do SAP | https://sapprd.empresa.com.br:44300 | A mesma URL do ADT/Eclipse. A porta HTTPS costuma ser 443<nn>, com <nn> = número da instância | | Mandante | 100 | O mesmo que você usa no SAP Logon | | Usuário | SEU.USUARIO | O seu usuário de sempre | | Senha | — | Não aparece na tela e não é gravada em arquivo nenhum |

3. Reiniciar o Claude

Feche o Claude Desktop por completo e abra de novo. Fechar a janela não basta:

  • Mac — Cmd+Q, ou menu Claude › Quit.
  • Windows — clique com o botão direito no ícone ao lado do relógio e saia.

Depois peça: "diagnostique o sistema S4P".


O que o Claude passa a poder fazer

| Ferramenta | Para quê | | --- | --- | | diagnosticar_sistema | O Raio-X inteiro: dumps, mandantes, componentes, contas padrão, SAP_ALL, usuários parados, jobs cancelados. Devolve nota de 0 a 100 e os achados por gravidade | | analisar_dumps | Dumps da ST22 agrupados por tipo, reincidentes primeiro | | consultar_tabela | Um SELECT de ABAP SQL quando o diagnóstico pronto não cobre a pergunta | | descrever_tabela | Estrutura de uma tabela pelo dicionário: se existe, se está ativa, os campos e quais são as chaves |

Peça "diagnostique o S4P e me dê o PDF" e o relatório é salvo na sua pasta pessoal, pronto para anexar num e-mail. O PDF é escrito na sua máquina, com os dados do seu sistema dentro — ele não passa por servidor nenhum. | status_conexao | A qual sistema está ligado e o que esse sistema publica |

Experimente pedir: "diagnostique o sistema S4P", "que dumps tem na ST22?", "quem tem SAP_ALL?", "lista os jobs que cancelaram essa semana".


Convivendo com o MCP oficial da SAP

O servidor MCP oficial de ABAP — o que vem no ADT para VS Code — cria, ativa, gera e transporta, mas não lê. Não há ferramenta para ler código, inspecionar metadados nem consultar o dicionário de dados.

Isso não é opinião. Em agosto de 2026 uma arquiteta da SAP publicou o teste dela: pediu ao agente para gerar um artefato RAP sobre uma tabela existente, ele falhou e concluiu que a tabela não tinha campos — ela tinha. Perguntado como teria verificado sozinho, respondeu: "I cannot independently verify table structure through this MCP server. I have to take your word for it", e "I would have had to proceed blindly and rely on the generator error messages to infer what's wrong — which is exactly what happened."

Os dois servidores convivem na mesma sessão do Claude, e se completam: o oficial constrói, este confere. descrever_tabela responde exatamente as três perguntas que faltavam — a tabela existe, está ativa, e quais são as chaves — antes de gerar qualquer coisa em cima dela, e depois, para verificar o que foi criado sem precisar abrir o Eclipse.


Autorização no SAP

O conector precisa de duas coisas do lado do sistema, e as duas costumam já existir em ambiente onde alguém usa Eclipse/ADT:

  1. o serviço default_host/sap/bc/adt ativo na SICF;
  2. um papel de exibição para o seu usuário.

Não precisa de S_DEVELOP. O Data Preview do ADT avalia S_TABU_NAM/S_TABU_DIS pelo VIEW_AUTHORITY_CHECK e só recorre ao S_DEVELOP se aquela checagem falhar — então um papel de exibição resolve. Isso é o que torna viável pedir acesso num sistema produtivo.

Para gerar o pedido pronto, com os objetos, valores e a lista nominal de tabelas:

npx ifollow-sap autorizacao

Manda esse texto para o time de segurança do cliente. Ele foi escrito para ser aprovado por leitura, sem precisar confiar em quem pediu.


Quando algo não funciona

Primeiro, teste fora do Claude:

npx ifollow-sap testar

| Sintoma | Causa quase sempre | | --- | --- | | Host não resolvido | VPN desligada | | O SAP não respondeu | Firewall, ou porta errada | | credenciais (401) | Senha trocada ou usuário bloqueado. Rode configurar de novo | | autorização (403) | Falta papel. Rode autorizacao e mande para a segurança | | certificado não foi aceito | Certificado próprio do cliente. Instale a CA na máquina — só em laboratório use IFOLLOW_SAP_TLS_RELAXADO=1 | | O Claude não vê o conector | Não reiniciou por completo, ou erro no log (abaixo) |

Log do conector:

  • Mac — ~/Library/Logs/Claude/mcp-server-ifollow-sap.log
  • Windows — %APPDATA%\Claude\logs\mcp-server-ifollow-sap.log

No Windows, o erro mais comum é ENOENT no npx. O assistente já grava o APPDATA explícito na configuração para evitar isso. Se acontecer mesmo assim, rode npm install -g npm e configure de novo.


Onde a senha fica

| Sistema | Onde | | --- | --- | | macOS | Keychain, pelo comando security | | Windows | DPAPI — cifrada para o seu usuário nessa máquina; copiar o arquivo para outro computador não serve de nada | | Linux | Arquivo com permissão 600, e o conector avisa que ali não há cofre |

A senha não vai para o claude_desktop_config.json. Esse arquivo guarda só endereço, mandante e usuário.


Para quem for auditar

  • Zero dependências. npm install não baixa nada: são pouco mais de mil linhas de JavaScript que dá para ler numa sentada.
  • Nenhuma chamada de rede além do SAP configurado. Não há telemetria.
  • consultar_tabela recusa qualquer instrução que não comece com SELECT, e recusa antes de a requisição sair da máquina.
  • Todo acesso aparece no log de segurança do SAP (SM19/SM20) com o usuário nominal, como qualquer SE16 de exibição.

Uma proteção que merece explicação

O endpoint de Data Preview do ADT corta cada linha do corpo da requisição em 255 caracteres, em silêncio. Quando o corte cai no meio de um WHERE, o SAP executa a consulta sem o filtro e devolve HTTP 200 com a tabela inteira — um resultado errado com cara de certo.

O conector se defende duas vezes: quebra o corpo em linhas curtas para o corte nunca acontecer, e confere o executedQueryString que o servidor devolve para garantir que o que rodou foi o que foi enviado. Se divergir, o resultado é descartado e o erro aparece — porque resultado errado que parece certo acaba num relatório entregue a cliente.


Testar

node teste/tudo.mjs

Roda a lógica contra um SAP simulado (que reproduz de propósito a truncagem de 255 e a ausência de core/discovery em ECC), o protocolo MCP ponta a ponta, e as verificações desta máquina — cofre, Node e o arquivo do Claude.