Imperio Utilities

Leggi questa pagina in italiano

MCP server — Italian tax and compliance tools for AI agents, no login

Connect an AI agent (Claude, Cursor or any MCP client) to verified Italian tax tools: Codice Fiscale, VAT number, IBAN, ATECO, Italian VAT, IMU, flat-rate regime, F24, FatturaPA/SDI, INTRASTAT, NIS2 and anti-fraud payee verification. JSON-RPC 2.0 over streamable-HTTP, deterministic — no LLM inference in the results. The tax tools are anonymous; the supplier-guardian tools need an API key from a free account. Copy-paste connection command and JSON config included.

MCP (Model Context Protocol) server exposing verified Italian tax and compliance tools to an AI agent: Codice Fiscale / VAT number / IBAN / PEC validation, ISTAT ATECO codes, Italian VAT computation (including reverse charge and split payment), IMU property tax, flat-rate regime, F24 lines, FatturaPA/SDI parsing, INTRASTAT, NIS2 scope and anti-fraud payee verification against live EU VIES. Streamable-HTTP transport, JSON-RPC 2.0, stateless. Authentication is OPTIONAL: the tax tools answer anonymously, while the supplier-guardian tools require an API key. The algorithms are official and deterministic: no language model produces the results.

What it includes

  • Single endpoint: POST /api/mcp — JSON-RPC 2.0, streamable-HTTP, stateless
  • Tax tools: no login and no credits consumed
  • Supplier guardian: needs an API key (free account), always at zero credits
  • Official algorithms and tables: no LLM inference in the result
  • Only two tools reach an external service (live VIES), degrading honestly when VIES is down
  • Published on the official Model Context Protocol registry
  • Anonymous calls are rate-limited per IP

Price: free

The platform is in beta: payments are not live yet, so paid plans cannot be purchased — they open in 2027. Everything you see can be used right now for free, on the free-plan quotas, with no credit card.

How to connect

Endpoint: POST https://imperioutils.com/api/mcp — JSON-RPC 2.0, streamable-HTTP transport, stateless (no session id). Methods: initialize, tools/list, tools/call.

Claude Code (CLI)

One command. The server is remote: there is nothing to install.

claude mcp add --transport http imperio-fisco https://imperioutils.com/api/mcp

JSON configuration (.mcp.json, compatible clients)

The declarative form, for clients that read a configuration file. `type` also accepts `streamable-http`, the name used by the MCP specification.

{
  "mcpServers": {
    "imperio-fisco": {
      "type": "http",
      "url": "https://imperioutils.com/api/mcp"
    }
  }
}

Clients that only speak stdio

Some clients cannot yet speak HTTP to a remote server. The official `mcp-remote` bridge translates: same URL, no key.

{
  "mcpServers": {
    "imperio-fisco": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://imperioutils.com/api/mcp"
      ]
    }
  }
}

No client: plain JSON-RPC 2.0

The server is stateless (no session id): one POST is enough. Useful to try it in ten seconds before configuring anything.

curl -s -X POST https://imperioutils.com/api/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

An entry with `url` but no `type` is read as a stdio server and skipped: `type` is not optional.

A real call, and its real response

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "validate_partita_iva",
    "arguments": {
      "partita_iva": "00743110157"
    }
  }
}
{
  "valid": true,
  "partita_iva": "00743110157",
  "formatted": "0074311 015 7",
  "province_code": "015",
  "progressive_code": "0074311",
  "check_digit": "7"
}

The 28 tools exposed

The descriptions below are the ones the server returns in tools/list, in Italian: they are exactly what your agent will read.

validate_codice_fiscale
Valida un Codice Fiscale italiano (formato + carattere di controllo, con gestione omocodia).
generate_codice_fiscale
Genera il Codice Fiscale "base" da dati anagrafici (cognome, nome, data, sesso, comune/stato di nascita o codice Belfiore). La variante omocodica in caso di collisione è assegnata dall'Agenzia delle Entrate, non calcolabile.
validate_partita_iva
Valida una Partita IVA italiana (11 cifre + checksum).
validate_iban
Valida un IBAN (checksum MOD-97) e, per gli IBAN italiani, identifica la banca dal codice ABI.
lookup_cap
Restituisce l'area/provincia INDICATIVA di un CAP italiano dal prefisso a 2 cifre (non il comune): approssimativo per le grandi città e per le province istituite dopo il 2004.
validate_pec
Valida un indirizzo PEC: formato + dominio confrontato con l'elenco dei provider certificati AGID, con livello di confidenza.
lookup_ateco
Cerca e valida un codice ATECO 2007 ISTAT e restituisce la descrizione dell'attività.
search_ateco
Ricerca full-text sui codici ATECO ISTAT partendo dalla descrizione dell'attività ("fotografo", "sviluppo software") invece che dal codice; accetta anche un prefisso di codice. Da usare quando il codice NON è noto — `lookup_ateco` serve al caso opposto.
calc_forfettario
Calcola imposta sostitutiva e contributi INPS del regime forfettario dal fatturato e (opzionale) dal codice ATECO.
parse_fatturapa
Estrae dati strutturati (cedente, cessionario, righe, imposte) da un XML FatturaPA/SDI. Solo parsing: nessuna verifica VIES.
parse_verify_fatturapa
Estrae i dati da un XML FatturaPA/SDI E verifica anti-frode il fornitore nella stessa chiamata: le parti sono estratte deterministicamente dall'XML (nessun LLM), poi IBAN, P.IVA/CF e — quando raggiungibile — la ragione sociale VIES live producono un verdetto. Secondo e ultimo tool con I/O esterno: stessa cache, stesso budget VIES e stessa degradazione onesta di `verify_payee`, una sola interrogazione VIES per chiamata.
calc_iva
Calcola l'IVA italiana su un imponibile (22/10/5/4/0/esente/fuori campo), con ritenuta d'acconto opzionale, e decide la territorialità delle operazioni con l'estero: beni o servizi, impresa o privato, UE o extra-UE → imponibile in Italia, non imponibile, non soggetta o IVA del paese di destinazione (aliquota ordinaria ufficiale TEDB), con Natura FatturaPA, annotazione in fattura e norma alla data dell'operazione (DPR 633/72 fino al 2026, Testo unico IVA dal 2027). Soglia UE di 10.000 € non dichiarata → due scenari calcolati. Tiene distinte le due basi della fattura di un professionista.
calc_reverse_charge
Calcola l'IVA che il cessionario deve autoliquidare in regime di inversione contabile e gli obblighi delle due parti con la norma applicabile: distingue reverse charge intracomunitario (art. 46 DL 331/93 / art. 17 c.2 DPR 633/72), interno (art. 17 c.6 — solo settori tassativi) e paese non-UE (errore esplicito).
calc_split_payment
Calcola la scissione dei pagamenti per le forniture alla PA (art. 17-ter DPR 633/72): il fornitore incassa il solo imponibile, l'IVA la versa la PA all'Erario. Restituisce i due importi, l'impatto di liquidità e le istruzioni FatturaPA (EsigibilitaIVA=S, niente codici Natura N6).
calc_imu
Calcola l'IMU (L. 160/2019) per fabbricati, terreni agricoli e aree edificabili, con acconto e saldo. L'aliquota (‰) è quella deliberata dal Comune e va fornita in input.
compose_f24
Compone le RIGHE del modello F24 (Erario, INPS, IMU) con codici tributo e causali ufficiali a partire da importi già calcolati. Componibile con gli output di calc_forfettario e calc_imu. NON genera il modello ministeriale né un suo facsimile.
intrastat_periodicity
Determina se gli elenchi riepilogativi INTRASTAT vanno presentati e con quale periodicità (mensile, trimestrale o nessun obbligo) dagli ammontari dei quattro trimestri precedenti, e calcola la scadenza (giorno 25 del mese successivo, con slittamento per sabato, domenica e festività nazionali). Restituisce la soglia applicata con la sua fonte normativa.
intrastat_compose
Compone e valida le sezioni dell'elenco riepilogativo INTRASTAT (INTRA-1bis/ter/quater/quinquies/sexies e INTRA-2bis/ter/quater/quinquies) dalle righe di operazione: Stato membro ammesso, partita IVA della controparte, nomenclatura combinata, campi obbligatori per sezione. NON genera il file telematico per il Servizio Telematico Doganale: produce struttura-dati e prospetto di controllo.
intrastat_reference
Senza input: Stati membri ammessi, sezioni dei modelli INTRASTAT, ogni soglia vigente con criterio, effetto e fonte normativa (inclusa quella acquisti di beni innalzata a € 2.000.000 dal periodo 01/2026), termine di presentazione e la lista esplicita di ciò che NON viene generato.
nis2_tipologie
Elenco ufficiale delle tipologie di soggetto degli allegati I–IV del D.Lgs. 138/2024 (recepimento NIS2), verbatim dal testo di Gazzetta Ufficiale, con ricerca testuale. Serve a trovare il `tipologia_id` da passare a `nis2_ambito`. Non esiste alcuna mappa ATECO → tipologia e questo strumento non ne usa una: l'ambito si determina sulla tipologia di attività, non sul codice ATECO.
nis2_ambito
Dice se un soggetto rientra nel campo di applicazione del D.Lgs. 138/2024 (NIS2) e se è soggetto ESSENZIALE o IMPORTANTE, citando articolo e comma per ogni passo del ragionamento. Logica a tre valori: se un dato mancante non cambia l'esito non viene chiesto; se lo blocca, il tool risponde `indeterminato` e dice esattamente quale dato serve.
nis2_reference
Senza input: le soglie dimensionali NIS2 con la formula esatta di superamento e la fonte (raccomandazione 2003/361/CE, allegati I–IV, artt. 3 e 6 del D.Lgs. 138/2024), le categorie sempre-essenziali e le avvertenze (DORA per banche e mercati finanziari, consolidamento di gruppo).
verify_payee
Verifica anti-frode di un beneficiario prima di pagare una fattura (truffa del cambio-IBAN / BEC): IBAN, P.IVA, CF e — quando raggiungibile — ragione sociale via VIES live. Uno dei due soli tool con I/O esterno (l'altro è `parse_verify_fatturapa`, che riusa questa stessa verifica): se VIES è giù o il budget è esaurito il verdetto degrada onestamente ad "attenzione", mai a un falso "ok".
guardian_list_suppliers
I fornitori sorvegliati da questo account, con lo stato dell'ultima verifica VIES e quanti IBAN risultano confermati o in attesa. Gli IBAN escono mascherati.
guardian_supplier_ledger
Il libretto degli IBAN di un fornitore: quali sono confermati, quali in attesa di conferma umana, quali rifiutati, e da quando. È la memoria contro cui si giudica un IBAN nuovo.
guardian_supplier_status
Se un fornitore è sorvegliato e com'è andata l'ultima verifica: esito VIES, se la risposta era autorevole, da quando non se ne ottiene una, anomalie rilevate.
guardian_check_iban
Il gesto anti-BEC: confronta l'IBAN letto su una fattura con lo storico di quel fornitore e dice se è già confermato, già visto ma mai confermato, o MAI VISTO. Modifica lo stato (registra l'IBAN come "in attesa") e invia un'email di avviso. La CONFERMA di un IBAN non è esposta agli agenti: richiede una persona.
guardian_watch_supplier
Mette uno o più fornitori sotto sorveglianza, perché i loro cambi di IBAN e le variazioni VIES vengano intercettati dalle verifiche notturne. Gli IBAN indicati entrano come "in attesa di conferma", mai come confermati.

Official registry

The server is published on the official Model Context Protocol registry as com.imperioutils/fisco-it.