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.
Maintainers
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 demonstracaoDepois 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 --versionSe 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 configurarVai 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:
- o serviço
default_host/sap/bc/adtativo na SICF; - 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 autorizacaoManda 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 installnã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_tabelarecusa qualquer instrução que não comece comSELECT, 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.mjsRoda 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.
