Verika - Verifica P.IVA, Codice Fiscale e IBAN

io.github.JackPonsv0.3.2更新於 Oct 9, 2026

Verifica partita IVA, codice fiscale e IBAN italiani con dati ufficiali (VIES, IPA, ISTAT)

已驗證Streamable HTTP可網頁執行Business & CommerceSecurity & MonitoringFinance

概覽

AI 產生的概覽

驗證義大利增值稅號、稅碼與 IBAN,並以 VIES、IPA、ISTAT 及歐盟制裁名單等官方資料補充資訊。

功能
提供多種工具驗證義大利識別碼:增值稅號格式與檢查碼、VIES 註冊狀態、稅碼檢查字元、出生地與性別,以及 IBAN 的 mod-97 驗證與義大利 CIN、ABI 銀行、CAB 解析。也可依名稱或地籍代碼查詢市鎮,將姓名與歐盟綜合制裁名單比對,並依增值稅號產生完整檔案,整合形式檢查、依 ISTAT 正規化的 VIES 資料、制裁篩選以及公部門的 IPA 資料。每個回應都會說明資料來源以及服務是否可連線。
適用情境
適合需要在客戶上線、輕量 KYC、向公部門開立發票或清理客戶資料時查核義大利企業與公部門的 AI 代理,無須分別整合多個 API。
執行需求
以遠端 streamable HTTP 端點提供,宣告無需 API 金鑰或註冊。本機執行需要 Node.js,且制裁篩選需先以資料指令碼下載制裁名單與市鎮表一次。
安裝前請注意
制裁篩選僅供參考,不能取代 AML 服務商或人工判斷,音譯姓名可能漏檢;伺服器不存取義大利企業登記冊,因此無法取得股東、高階主管與財務報表。託管 worker 會統計呼叫並限流,保存時間戳、工具名稱、用戶端、國家、結果、耗時與每日 IP 雜湊,但不保存工具參數與 IP 位址;統計儲存為選用。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Verika - Verifica P.IVA, Codice Fiscale e IBAN,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "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

StrumentoCosa faChiamate esterne
valida_partita_ivaControllo formale (11 cifre, cifra di controllo, codice ufficio)no
verifica_partita_ivaStato su VIES: attiva/non attiva, denominazione, indirizzoVIES
valida_codice_fiscaleCarattere di controllo, omocodia, sesso, data e luogo di nascita (comune ISTAT o stato estero); 11 cifre → persona giuridicano
valida_ibanMod 97 per tutti i paesi; per l'Italia anche CIN, ABI → banca, CAB, contono
cerca_comuneComune per nome o codice catastale: provincia, regione, codice ISTATno
controlla_sanzioniScreening indicativo di un nome contro la lista consolidata UE, matching tollerante con punteggiono
scheda_soggettoQuadro completo da partita IVA: formale + VIES con indirizzo normalizzato su ISTAT + screening sanzioni + dati IPA se è una PAVIES, IPA

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)

bash
npm installnpm run dati        # scarica le tabelle ISTAT e la lista sanzioni UE in src/data/ (una volta, poi ogni tanto)npm test            # test unitari, nessuna rete necessarianpm run inspect     # apre MCP Inspector sul server stdionpm run dev         # server HTTP locale su http://localhost:8787/mcp

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:

bash
claude mcp add partita-iva -t http http://localhost:8787/mcp

Deploy su Cloudflare Workers

bash
npx wrangler loginnpm run deploy

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)

bash
npx wrangler d1 create partita-iva-mcp-stats     # copia il database_id in wrangler.jsoncnpm run db:migra                                 # crea la tabella sul D1 remotonpx wrangler secret put STATS_TOKEN              # una stringa lunga a caso: protegge /statsnpx wrangler secret put HASH_SALT                # un'altra stringa a caso: sale per l'hash degli IPnpm run deploy

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

bash
curl -H "Authorization: Bearer $STATS_TOKEN" https://<tuo-worker>/stats?giorni=30

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

  1. Repo pubblico su GitHub.
  2. Aggiorna server.json con il tuo utente GitHub e l'URL del worker.
  3. Registry ufficiale: npx @modelcontextprotocol/publisher login github poi npx @modelcontextprotocol/publisher publish (PulseMCP e Glama lo raccolgono da lì).
  4. Smithery: npx @smithery/cli mcp publish <url> -n <utente>/partita-iva-mcp.
  5. 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 ISTAT
  • sanzioni.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

src/  lib/            algoritmi puri e client delle fonti (testabili senza MCP)    partita-iva.ts    codice-fiscale.ts    iban.ts    vies.ts    ipa.ts    tabelle.ts    accesso alle tabelle locali    sanzioni.ts   matching contro la lista UE  data/           tabelle JSON (seed → aggiornate da npm run dati)  server.ts       definizione degli strumenti MCP (condivisa)  telemetria.ts   conteggio chiamate (D1), rate limit, statistiche  stdio.ts        entrypoint locale  worker.ts       entrypoint Cloudflare Workers (Streamable HTTP, stateless)migrations/       schema SQL del database D1scripts/  aggiorna-dati.ts  scarica e converte le tabelle ufficialitest/             node:test, con fetch finto per VIES e IPA

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.

來源:README.md,提交 faa5cfd

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.3.2最新Oct 9, 2026