Skip to main content
Glama

Imperio — Italian Tax & Compliance Tools

Verifica Fornitore (anti-frode pre-pagamento)

verify_payee
Read-onlyIdempotent

Verifica anti-frode di un beneficiario PRIMA di pagare una fattura (contro la truffa del cambio-IBAN / Business Email Compromise). Controlli: IBAN (checksum MOD-97 + banca dal codice ABI), Partita IVA e Codice Fiscale (checksum), e — quando il servizio UE è raggiungibile — la ragione sociale reale via VIES live con match sul nome atteso. Restituisce un verdetto (ok / non_verificabile / attenzione / alto_rischio) + i red flag puntuali. non_verificabile = nessun segnale di frode MA nessuna fonte autorevole ha confermato chi sia il fornitore (P.IVA italiana non iscritta al VIES, o nessuna P.IVA fornita): non è un allarme, è il rifiuto di dire «ok» su un soggetto non identificato. A differenza degli altri strumenti fa I/O esterno (VIES): se VIES è giù o il budget di verifica è temporaneamente esaurito, il verdetto degrada ONESTAMENTE ad "attenzione" (mai un falso "ok"). Gratis (€0), nessun login. NON sostituisce la verifica out-of-band (telefonata al fornitore su un numero già noto).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ibanNoIBAN del beneficiario (es. IT60X0542811101000000123456).
atecoNoCodice ATECO dichiarato del fornitore (solo cifre e punti, opzionale).
vat_numberNoPartita IVA con o senza prefisso paese (es. IT12345678901).
expected_nameNoRagione sociale attesa del fornitore, confrontata con quella ufficiale VIES.
codice_fiscaleNoCodice Fiscale (persona fisica / ditta individuale).
expected_countryNoPaese atteso del fornitore in ISO2 (default IT). Un IBAN estero è il campanello #1 della frode.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / anyOf
      Added value: +[
      +  {
      +    "required": [
      +      "iban"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "vat_number"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "codice_fiscale"
      +    ]
      +  }
      +]
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint, openWorldHint, idempotentHint and destructiveHint, so the baseline burden is lower. The description adds real behavioral value on top: the tool performs external network I/O to VIES, the verdict degrades HONESTLY to 'attenzione' when VIES is down or the budget is exhausted (never a fake 'ok'), it is free with no login required, and the semantics of each verdict value are defined. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but each sentence earns its place: purpose, check list, verdict enum, non_verificabile nuance, external-I/O caveat with degradation behavior, cost/auth, and the out-of-band disclaimer. It is well front-loaded with the core purpose and scoping. It borders on dense, and the VIES dependency is mentioned twice, so it falls just short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With rich annotations (read-only, idempotent, open-world, non-destructive) and 100% schema coverage, the description's job is to cover the gaps — and it does: no output schema exists, yet the description defines the full verdict enum (ok / non_verificabile / attenzione / alto_rischio) and mentions red flags; failure modes (VIES down, budget exhausted) are disclosed; cost and authentication state are stated; and the security limitation is called out. Nothing an agent needs to invoke this safely and correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: it explains the validation methodology per identifier (IBAN checksum MOD-97 + ABI bank lookup, VAT/CF checksum, expected_name matched against live VIES ragione sociale) and gives expected_country fraud significance ('Un IBAN estero è il campanello #1 della frode'). The ateco parameter receives no extra color, but the overall enrichment justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a concrete verb (verifica anti-frode) and resource (beneficiario/payee) with a clear operational trigger: PRIMA di pagare una fattura, targeting IBAN-change fraud and Business Email Compromise. It distinguishes itself from sibling validators like validate_iban or validate_partita_iva by being a holistic fraud check that returns a verdict plus red flags, and it explicitly calls out 'A differenza degli altri strumenti fa I/O esterno (VIES)'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'when to use' is explicit: before paying an invoice, as an anti-fraud gate. The 'when not to use' is also explicit: 'NON sostituisce la verifica out-of-band (telefonata al fornitore su un numero già noto)'. The description further clarifies the intended interpretation of the non_verificabile verdict so an agent doesn't misread it as an alarm, and differentiates itself from sibling tools through the external-I/O behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources