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可网页运行Security & MonitoringFinanceBusiness & Commerce

概览

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