Salta l'installazione. Attivo in meno di 2 minuti.
Avvia una prova gratuita su cloud.anythingmcp.com, aggiungi SAP S/4HANA (HANA SQL) con un clic, poi punta il tuo client AI (Claude, ChatGPT, Copilot o Cursor) all'endpoint MCP generato. Niente Docker, niente git clone, nessuna esperienza di sviluppo richiesta.
In breve
Fai leggere a Claude SAP S/4HANA on-premise o Private Cloud direttamente dal database HANA, con le etichette di tabelle e campi di SAP come tool. Sola lettura.
Prova a chiedere
Prompt di esempio per SAP S/4HANA (HANA SQL)
Clicca su un prompt per copiarlo. Incollalo in Claude, ChatGPT, Cursor, Gemini, Copilot o OpenClaw per eseguirlo contro questo connettore.
Claude è un'AI e può sbagliare. Verifica sempre le risposte.
Risposta breve: il connettore SAP S/4HANA (HANA SQL) permette a Claude di leggere un sistema S/4HANA direttamente dal suo database HANA. Prima di scrivere una query, Claude cerca nel data dictionary di SAP cosa significano BUKRS, HSL o VBRK, e così sceglie la tabella giusta, il campo valuta giusto e il mandante giusto. La sessione è in sola lettura in HANA stesso, i risultati sono limitati a 1.000 righe e ogni statement ha un timeout. Ti servono un utente del database HANA dal team SAP Basis e un AnythingMCP self-hosted che raggiunga la porta SQL di HANA.
| In breve | |
|---|---|
| Connettore | SAP S/4HANA (HANA SQL), 10 tool |
| Sistemi | S/4HANA on-premise, Private Cloud (RISE), HANA Enterprise Cloud |
| Accesso | Sola lettura: un solo SELECT per chiamata, SET TRANSACTION READ ONLY, massimo 1.000 righe, timeout di 60 s |
| Driver | hdb incluso; @sap/hana-client di SAP opzionale, installato da te |
| Hosting | Self-hosted nella rete che raggiunge HANA (AnythingMCP è open source, AGPL-3.0) |
| Testato | Ogni tool su un sistema SAP S/4HANA 2025 reale |
Perché un semplice connettore SQL non basta per SAP
Tabelle e campi di SAP sono brevi abbreviazioni, per lo più tedesche: ACDOCA è l'Universal Journal, RBUKRS la società, HSL l'importo in valuta della società, VBRK la testata della fattura. Un modello che vede solo i nomi delle colonne tira a indovinare, e SAP punisce chi indovina: gli importi dipendono da un campo valuta in un'altra colonna, ogni tabella è divisa per mandante (MANDT), le date sono stringhe YYYYMMDD e i numeri di documento hanno zeri iniziali.
Il connettore dà a Claude il dizionario di SAP come tool. Legge le tabelle con cui SAP descrive sé stesso (DD02L, DD03L, DD04T, DD07T, DD08L e le annotazioni CDS), così Claude vede l'etichetta di business di ogni campo, quale campo valuta o unità di misura va con ogni importo, cosa significano i codici di un campo, come si collegano le tabelle e quali CDS view di SAP sono rilasciate e analitiche. Solo dopo scrive la query.
HANA SQL o OData?
AnythingMCP si collega a S/4HANA on-premise e Private Cloud in due modi. Scegline uno, o usali entrambi fianco a fianco.
| HANA SQL (questa guida) | OData | |
|---|---|---|
| Legge | Ogni tabella o CDS view che l'utente del database può leggere | I servizi OData che l'utente SAP può chiamare |
| Autorizzazioni SAP | Non applicate: il confine sono i grant del database | Controllate da SAP a ogni chiamata |
| Forte in | Totali su milioni di righe, analisi finanziarie e tra moduli | API pubblicate, oggetti di business, controlli di SAP |
| Ti serve | Un utente del database HANA, accesso di rete alla porta SQL, una licenza che lo consenta | Un utente tecnico SAP, servizi Gateway attivi |
Cosa ti serve
- Un amministratore SAP Basis che possa creare un utente nel tenant che contiene lo schema ABAP (di solito
SAPHANADBoSAPABAP1). - I dati di connessione: host, la porta SQL del tenant (
3<instance>15per il primo tenant,3<instance>41e successive per gli altri), nome del tenant, schema, il mandante SAP a tre cifre e la lingua SAP per i testi (Einglese,Dtedesco,Iitaliano). - Un AnythingMCP self-hosted che raggiunga quella porta. La porta SQL di HANA di solito è raggiungibile solo dalla rete aziendale o dalla landing zone della private cloud di SAP.
- Una verifica della licenza. L'accesso SQL diretto allo schema ABAP da parte di un'applicazione terza è regolato dalla tua licenza SAP HANA. Una licenza runtime inclusa in S/4HANA di solito non lo copre; una licenza full-use sì. Chiedi al tuo account team SAP prima di collegare un sistema di produzione. Nelle offerte private cloud di SAP, l'utente del database e il percorso di rete si richiedono a SAP.
Configurazione
Passo 1: Crea un utente del database in sola lettura
Nel tenant che contiene lo schema ABAP:
CREATE USER AMCP_READER PASSWORD "<strong password>" NO FORCE_FIRST_PASSWORD_CHANGE;
ALTER USER AMCP_READER DISABLE PASSWORD LIFETIME;
-- dictionary tools
GRANT SELECT ON SAPHANADB.DD02L TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD02T TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD03L TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD03T TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD03ND TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD04T TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD07T TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD08L TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DD05S TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DDHEADANNO TO AMCP_READER;
GRANT SELECT ON SAPHANADB.DDFIELDANNO TO AMCP_READER;
GRANT SELECT ON SAPHANADB.ARS_W_API_STATE TO AMCP_READER;
-- organization structure
GRANT SELECT ON SAPHANADB.T001 TO AMCP_READER;
GRANT SELECT ON SAPHANADB.T001K TO AMCP_READER;
GRANT SELECT ON SAPHANADB.T001W TO AMCP_READER;
GRANT SELECT ON SAPHANADB.TKA01 TO AMCP_READER;
GRANT SELECT ON SAPHANADB.TVKO TO AMCP_READER;
GRANT SELECT ON SAPHANADB.TVKOT TO AMCP_READER;
GRANT SELECT ON SAPHANADB.T024E TO AMCP_READER;
-- then the business tables and CDS views your use cases need, e.g.
GRANT SELECT ON SAPHANADB.ACDOCA TO AMCP_READER;
GRANT SELECT ON SCHEMA SAPHANADB è più semplice per analisi ampie, ma rende leggibile tutto lo schema, dati HR compresi. L'SQL non applica le autorizzazioni applicative di SAP (società, organizzazione commerciale, controlli HR): quello che l'utente del database può leggere, Claude può leggerlo.
Se vuoi, limita gli statement dell'utente anche lato server:
CREATE WORKLOAD CLASS "AMCP_READER_WC" SET 'STATEMENT TIMEOUT' = '60', 'STATEMENT MEMORY LIMIT' = '20';
CREATE WORKLOAD MAPPING "AMCP_READER_WM" WORKLOAD CLASS "AMCP_READER_WC" SET 'USER NAME' = 'AMCP_READER';
Passo 2: Avvia AnythingMCP dentro la rete
Su un host che raggiunge la porta SQL di HANA:
mkdir anythingmcp && cd anythingmcp
curl -fsSLo docker-compose.yml \
https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d # → http://localhost:3000
Aggiungi l'host HANA a SSRF_ALLOWED_HOSTS nel file .env: di default AnythingMCP rifiuta gli indirizzi privati.
Passo 3: Installa il connettore
Apri Connectors → Store, scegli SAP S/4HANA (HANA SQL) e compila le variabili:
| Variabile | Esempio |
|---|---|
SAP_HANA_HOST | hana.internal |
SAP_HANA_PORT | 30015 |
SAP_HANA_TENANT | S4P |
SAP_HANA_SCHEMA | SAPHANADB |
SAP_CLIENT | 100 |
SAP_LANGUAGE | E |
SAP_HANA_TLS | verify, no-verify per un certificato autofirmato, oppure off |
SAP_HANA_USER / SAP_HANA_PASSWORD | AMCP_READER e la sua password |
L'installazione fa una chiamata di prova (sap_org_structure) e ti dice se credenziali e grant funzionano. La password è salvata cifrata e non viene mai mostrata a Claude.
Passo 4: Aggiungi il server MCP a Claude
Su claude.ai o in Claude Desktop: Personalizza → Connettori → + → Aggiungi connettore personalizzato, incolla l'URL del tuo server MCP (lo trovi sotto MCP Servers in AnythingMCP) ed effettua l'accesso. Per claude.ai l'URL deve essere HTTPS pubblico, perché Claude si collega dai server di Anthropic; va pubblicato solo l'endpoint MCP, mai la porta di HANA. In Claude Code funziona anche un'istanza locale:
claude mcp add --transport http sap-hana <your MCP server URL> --header "X-API-Key: <key>"
Passo 5: Chiedi
Inizia con qualcosa che delimiti i dati, per esempio "Quali società ci sono in questo sistema, e in che valuta?". Il connettore dice a Claude di leggere prima sap_guide; da lì usa da solo i tool del dizionario.
Gli strumenti
| Tool | Cosa dà a Claude |
|---|---|
sap_guide | Il modello dati di SAP spiegato per l'SQL, per argomento: basi (mandante, date, zeri iniziali, valute), finanza (l'Universal Journal ACDOCA), vendite, magazzino, acquisti, operations, trappole e ricette di query. Non costa nulla e non tocca dati. |
sap_org_structure | Società con valuta, piano dei conti e variante di esercizio; aree di controlling, divisioni, organizzazioni commerciali e di acquisto. |
sap_search_tables | Tabelle per nome o descrizione con il numero di righe, segnalando le view di compatibilità di S/4HANA che un SQL semplice leggerebbe male. |
sap_describe_table | Ogni campo con etichetta, flag di chiave, tipo, il campo valuta o unità di ogni importo e la tabella di controllo. |
sap_find_fields | Quali tabelle contengono un campo di business, es. "scadenza netta". |
sap_field_values | Cosa significano i codici di un campo, es. le categorie dei documenti di vendita nelle fatture. |
sap_table_relations | Chiavi esterne con le condizioni di join, e la tabella dei testi. |
sap_search_cds_views | Le CDS view di SAP per nome o etichetta, indicando quelle rilasciate e analitiche. |
sap_describe_cds_view | Colonne di una CDS view con etichette, misure, campi valuta e unità, e associazioni. |
sap_query | Un solo SELECT in sola lettura, limitato a 1.000 righe e con timeout. |
Cosa impone il connettore
- Sola lettura in HANA stesso. La sessione esegue
SET TRANSACTION READ ONLYprima dello statement, oltre a un controllo che lascia passare solo un singoloSELECToWITH … SELECTe rifiutaSELECT … INTOe le letture con lock. Il vero confine restano i grant del database. - Al massimo 1.000 righe, lette in streaming, quindi un
SELECT *su una tabella grande non finisce mai in memoria. - Timeout di 60 secondi per statement di default (fino a 600 s con
statementTimeoutnella connection string); la sessione viene chiusa e HANA annulla lo statement. - Tabelle negate. Le tabelle HR di SAP (
PA####,PB####,PCL#,HRP####) e quelle di utenti e password (USR##,USH##,RFCDES,SSF_PSE_D) sono rifiutate di default, anche se i grant le consentono. L'elenco si modifica nelle impostazioni del connettore. - Valori esatti. I decimali tornano come stringhe, quindi gli importi non vengono arrotondati; i GUID SAP tornano in esadecimale maiuscolo.
- Il mandante SAP. Il connettore imposta la variabile di sessione
CDS_CLIENT, senza la quale le CDS view di SAP non restituiscono righe. Le tabelle normali richiedono comunque un filtro suMANDT(oRCLNT), esap_guidelo dice a Claude.
Usare il driver nativo di SAP
AnythingMCP include hdb, il driver HANA di SAP in puro JavaScript (Apache-2.0). Copre utente e password, TLS, sistemi multi-tenant e tutto ciò che fa il connettore. Il driver nativo di SAP, @sap/hana-client, aggiunge Kerberos, il secure user store (hdbuserstore) e il connection pooling. È pubblicato con la SAP Developer License, che non ci consente di ridistribuirlo, quindi non fa mai parte dell'immagine: lo installi tu nel tuo deployment, estendendo l'immagine oppure montandolo come volume, e lo selezioni con driver=hana-client nella connection string o con HANA_DRIVER=hana-client per tutti i connettori HANA. Verifica che il tuo contratto SAP ne copra l'uso in produzione. Sugli host arm64, resta sul driver hdb incluso o costruisci un'immagine tua basata su Debian. Passo per passo: SAP HANA nella documentazione di AnythingMCP.
Prompt da provare
- "Mostrami il fatturato per periodo contabile della società 1000 nel 2026."
- "Quali clienti hanno crediti aperti più vecchi di 30 giorni, e per quanto ciascuno?"
- "I 10 clienti con il fatturato netto più alto quest'anno, dai documenti di fatturazione."
- "Quali CDS view analitiche rilasciate coprono le registrazioni contabili? Descrivi le misure della prima."
- "Cosa significano i valori della categoria del documento di vendita nelle fatture?"
- "Movimenti di merce per tipo di movimento nella divisione 1000 il mese scorso."
Risoluzione dei problemi
- Una CDS view non restituisce righe.
SAP_CLIENTmanca o è sbagliato; il connettore ne ha bisogno per impostareCDS_CLIENT. - Connessione rifiutata o redirect verso un host sconosciuto. Usa la porta SQL del tenant invece di quella del system database, che può reindirizzare a un nome host interno che il connettore non risolve.
- "Insufficient privilege". La tabella non è concessa all'utente del database. Concedila, oppure chiedi a Claude di usare una tabella o una CDS view che può leggere.
- Errore di certificato. Usa
SAP_HANA_TLS=no-verifyper un certificato autofirmato, oppure installa la CA. - Una query va in timeout. Chiedi a Claude di filtrare per società, periodo o divisione e di aggregare in SQL; aumenta
statementTimeoutsolo se la query è davvero grande.
FAQ
Claude può modificare dati in SAP con questo connettore?
No. La sessione HANA è in sola lettura, gira un solo SELECT, e scritture e letture con lock vengono rifiutate. Crea l'utente del database solo con grant SELECT, così HANA applica la stessa regola.
Rispetta le autorizzazioni SAP? No. L'SQL scavalca le autorizzazioni applicative di SAP, quindi sono i grant del database a decidere cosa può leggere Claude. Se ti servono i controlli di autorizzazione di SAP, usa la via OData, oppure concedi solo tabelle e view che è lecito leggere.
La mia licenza SAP consente l'accesso SQL diretto a S/4HANA? Dipende dalla tua licenza HANA. Una licenza runtime inclusa in S/4HANA di solito non copre l'accesso SQL allo schema ABAP da parte di applicazioni terze; una licenza full-use sì. Verifica il contratto prima di collegare la produzione.
Funziona con S/4HANA Private Cloud (RISE)? Sì, se SAP fornisce un utente del database e un percorso di rete verso la porta SQL di HANA, e AnythingMCP gira dove può raggiungerla. Entrambi si richiedono a SAP.
Posso usare AnythingMCP Cloud invece del self-hosting? Solo se la porta SQL di HANA è raggiungibile da internet, cosa rara e raramente consigliabile. Installa AnythingMCP self-hosted accanto a SAP.
Funziona anche con ChatGPT e Copilot? Sì. Lo stesso server MCP funziona in ChatGPT, GitHub Copilot, Cursor e Claude Code.
Guide correlate
- OData to MCP: l'altra via verso S/4HANA on-premise, con i controlli di autorizzazione di SAP
- Collegare SAP a Claude: tutti i connettori SAP in sintesi
- Database to MCP: SAP HANA come semplice connettore database, accanto a SQL Server, PostgreSQL e Oracle
- SAP HANA su GitHub: opzioni della connection string e driver nativo
Questa guida ti è stata utile?