
Verika - Verifica P.IVA, Codice Fiscale e IBAN
io.github.JackPonsv0.3.2Updated Oct 9, 2026
Verifica partita IVA, codice fiscale e IBAN italiani con dati ufficiali (VIES, IPA, ISTAT)
Overview
Verifies Italian VAT numbers, tax codes and IBANs, enriching them with official VIES, IPA, ISTAT and EU sanctions data.
- What it does
- Provides tools to validate Italian identifiers: VAT number format and check digit, VIES registration status, tax code control character, birthplace and sex, and IBAN mod-97 with Italian CIN, ABI bank and CAB. It also looks up municipalities by name or cadastral code, screens names against the consolidated EU sanctions list, and builds a full profile from a VAT number combining formal checks, VIES data normalised against ISTAT, sanctions screening and IPA data for public bodies. Each response states the source and whether the service was reachable.
- When to use it
- Useful for AI agents that need to check Italian companies and public bodies during onboarding, light KYC, invoicing to public administration, or cleaning up customer records, without integrating several separate APIs.
- Requirements
- Available as a remote streamable HTTP endpoint; no API key or registration is declared. Running it locally needs Node.js, and the sanctions and municipality tables must be downloaded once with the data script before sanctions screening works.
Installation
In SourceWeft
- Open Verika - Verifica P.IVA, Codice Fiscale e IBAN in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"partita-iva-mcp": {
"type": "http",
"url": "https://partita-iva-mcp.pons-labs.workers.dev/mcp"
}
}
}README
partita-iva-mcp
Server MCP per verificare identificativi italiani — partita IVA, codice fiscale, IBAN — e arricchirli con fonti ufficiali gratuite (VIES, IPA, ISTAT, lista sanzioni UE). Nessuna chiave, nessuna registrazione.
Pensato per chi costruisce agenti AI che devono fare controlli su aziende ed enti italiani (onboarding, KYC leggero, fatturazione verso la PA, pulizia anagrafiche) senza integrare quattro API diverse.
Strumenti
Ogni risposta indica la fonte e se il servizio era raggiungibile, così l'agente non confonde "non attiva" con "non ho potuto verificare".
Avvio rapido (locale)
In VS Code il file .vscode/mcp.json registra già il server stdio: apri la palette → MCP: List Servers → partita-iva-locale.
Da Claude Code, con il server HTTP locale avviato:
Deploy su Cloudflare Workers
L'endpoint sarà https://partita-iva-mcp.<tuo-subdominio>.workers.dev/mcp. La home page (/) mostra le istruzioni di collegamento, /health risponde {ok:true}.
Statistiche d'uso e privacy
Il worker conta le chiamate su Cloudflare D1 e applica un rate limit di 60 richieste al minuto per utente. Entrambi sono opzionali: senza configurazione il server funziona uguale.
Cosa viene salvato per ogni chiamata: data e ora, metodo MCP, nome dello strumento, client (es. claude-ai), paese, esito, durata, e un identificativo utente che è un hash di IP + giorno + sale segreto.
Cosa NON viene salvato: gli argomenti degli strumenti (partite IVA, codici fiscali, IBAN, nomi) e gli indirizzi IP. L'hash cambia ogni giorno, quindi permette di contare gli utenti distinti in una giornata ma non di seguirli nel tempo. Le righe più vecchie di 90 giorni vengono cancellate ogni notte.
Configurazione (una volta)
Per lo sviluppo locale: npm run db:migra-locale e un file .dev.vars (escluso da git) con STATS_TOKEN=... e HASH_SALT=....
Leggere le statistiche
oppure dal browser https://<tuo-worker>/stats?token=.... Restituisce totali, chiamate e utenti per giorno, chiamate ed errori per strumento, client e paesi.
Pubblicazione nei registry
- Repo pubblico su GitHub.
- Aggiorna
server.jsoncon il tuo utente GitHub e l'URL del worker. - Registry ufficiale:
npx @modelcontextprotocol/publisher login githubpoinpx @modelcontextprotocol/publisher publish(PulseMCP e Glama lo raccolgono da lì). - Smithery:
npx @smithery/cli mcp publish <url> -n <utente>/partita-iva-mcp. - Catalogo italiano: PR su bsab/italia-mcp-servers.
Tabelle locali (src/data/)
I JSON partono come seed (poche voci, giusto per i test). npm run dati li sostituisce con:
comuni.json— tutti i comuni ISTAT con codice catastale, provincia, regione, codice ISTATsanzioni.json— lista consolidata sanzioni finanziarie UE (id, tipo, nomi/alias, programmi)
stati-esteri.json (codici Z) e abi.json (banche) sono tabelle compilate a mano, parziali: vanno verificate ed estese. Per gli ABI la fonte autorevole è l'elenco degli intermediari di Banca d'Italia; se trovi un CSV ufficiale, aggiungi un caso allo script.
Ogni strumento che usa una tabella dichiara nell'output se la tabella è seed o aggiornata (infoTabelle), e controlla_sanzioni risponde lista_non_caricata finché non hai lanciato npm run dati: meglio un "non so" esplicito che un falso "nessuna corrispondenza".
Struttura
Fonti e limiti
- VIES (Commissione Europea): stato della partita IVA ai fini IVA intracomunitaria. Per l'Italia restituisce di solito denominazione e indirizzo; a volte è temporaneamente non disponibile, e il server lo segnala.
- IPA (indicepa.gov.it, open data CKAN): usato per riconoscere le Pubbliche Amministrazioni e recuperare codice IPA, PEC e sito.
- ISTAT (elenco comuni): normalizzazione di comuni e codici catastali.
- Lista consolidata sanzioni UE: screening per nome, indicativo. Non sostituisce un provider AML né il giudizio di un operatore; i nomi traslitterati (arabo, cirillico) possono sfuggire al matching su token.
- Il server non accede al Registro Imprese: soci, cariche, bilanci e protesti sono dati a pagamento e restano fuori da questa versione.
- La data di nascita estratta dal codice fiscale ha il secolo dedotto (
anno_ambiguo: true).
I dati restituiti sono soggetti alle licenze delle fonti originali.
Roadmap
- Comune da codice catastale, stato estero da codice Z
- Banca da ABI (tabella parziale)
- Screening sanzioni UE
- Conteggio chiamate per strumento (D1), senza dati personali
- Rate limit di base
- API key opzionale con limiti più alti
- CAP → comune (ISTAT/Poste)
- ANAC (appalti aggiudicati) e RNA (aiuti di Stato) nella scheda soggetto
- Descrizione codice ATECO
- Registro Imprese via rivenditore (soci, cariche, bilanci, protesti) — a pagamento
Licenza
MIT.
Source: README.md at commit faa5cfd
Tools
0Version history
1- v0.3.2LatestOct 9, 2026

