Supplier Identity and VAT Verification

Verify a supplier's identity and VAT via Irish CRO and EU VIES before paying. Pay per call, x402.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
73%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,410Tokens (tool definitions)
~7.9 KBTypical response size
Moderate attention impact (1.10% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "supplier-payment-verifier": {
      "url": "https://supplier-payment-verifier-production.up.railway.app/mcp/"
    }
  }
}

Remote endpoints

https://supplier-payment-verifier-production.up.railway.app/mcp/streamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪verify_supplier_payment(schema_version, request_id, policy_id, supplier, transaction, ...)

Verify a supplier's identity and VAT registration and return the advisory decision. Identity registry checks are routed to the Irish CRO for IE only. VAT is verified independently through EU VIES. Requires the verification.submit scope. transaction, customer_assertions and payment_destination are only evaluated when payment checks are enabled on the service; otherwise they may be omitted.

Input Schema

{
  "type": "object",
  "properties": {
    "schema_version": {
      "const": "1.0",
      "title": "Schema Version",
      "type": "string"
    },
    "request_id": {
      "format": "uuid",
      "title": "Request Id",
      "type": "string"
    },
    "policy_id": {
      "const": "eu-b2b-payment-v1",
      "title": "Policy Id",
      "type": "string"
    },
    "supplier": {
      "$ref": "#/$defs/SupplierInput"
    },
    "transaction": {
      "anyOf": [
        {
          "$ref": "#/$defs/TransactionInput"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "customer_assertions": {
      "anyOf": [
        {
          "$ref": "#/$defs/AssertionsInput"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "payment_destination": {
      "anyOf": [
        {
          "$ref": "#/$defs/PaymentDestinationInput"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "requested_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Requested At"
    },
    "evidence": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/EvidenceInput"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Evidence"
    },
    "callback": {
      "anyOf": [
        {
          "$ref": "#/$defs/CallbackInput"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "metadata": {
      "anyOf": [
        {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ]
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Metadata"
    }
  },
  "required": [
    "schema_version",
    "request_id",
    "policy_id",
    "supplier"
  ],
  "$defs": {
    "AssertionsInput": {
      "additionalProperties": false,
      "properties": {
        "supplier_approved": {
          "title": "Supplier Approved",
          "type": "boolean"
        },
        "po_matched": {
          "title": "Po Matched",
          "type": "boolean"
        },
        "amount_within_po": {
          "title": "Amount Within Po",
          "type": "boolean"
        },
        "currency_matched": {
          "title": "Currency Matched",
          "type": "boolean"
        },
        "invoice_supplier_matched": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Invoice Supplier Matched"
        },
        "assertion_source": {
          "anyOf": [
            {
              "enum": [
                "SAP",
                "D365",
                "ORACLE",
                "NETSUITE",
                "OTHER"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Assertion Source"
        }
      },
      "required": [
        "supplier_approved",
        "po_matched",
        "amount_within_po",
        "currency_matched"
      ],
      "title": "AssertionsInput",
      "type": "object"
    },
    "CallbackInput": {
      "additionalProperties": false,
      "properties": {
        "url": {
          "title": "Url",
          "type": "string"
        },
        "authentication_reference": {
          "anyOf": [
            {
              "maxLength": 200,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Authentication Reference"
        }
      },
      "required": [
        "url"
      ],
      "title": "CallbackInput",
      "type": "object"
    },
    "EvidenceInput": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "enum": [
            "INVOICE",
            "PURCHASE_ORDER",
            "SUPPLIER_MASTER",
            "BANK_CHANGE_REQUEST",
            "OTHER"
          ],
          "title": "Type",
          "type": "string"
        },
        "sha256": {
          "pattern": "^[a-f0-9]{64}$",
          "title": "Sha256",
          "type": "string"
        },
        "observed_at": {
          "title": "Observed At",
          "type": "string"
        },
        "content_uri": {
          "anyOf": [
            {
              "maxLength": 2048,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Content Uri"
        },
        "media_type": {
          "anyOf": [
            {
              "maxLength": 100,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Media Type"
        }
      },
      "required": [
        "type",
        "sha256",
        "observed_at"
      ],
      "title": "EvidenceInput",
      "type": "object"
    },
    "PaymentDestinationInput": {
      "additionalProperties": false,
      "properties": {
        "fingerprint": {
          "maxLength": 256,
          "minLength": 32,
          "title": "Fingerprint",
          "type": "string"
        },
        "fingerprint_algorithm": {
          "const": "HMAC-SHA-256",
          "title": "Fingerprint Algorithm",
          "type": "string"
        },
        "country_code": {
          "pattern": "^[A-Z]{2}$",
          "title": "Country Code",
          "type": "string"
        },
        "beneficiary_name": {
          "anyOf": [
            {
              "maxLength": 300,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Beneficiary Name"
        },
        "is_declared_change": {
          "default": false,
          "title": "Is Declared Change",
          "type": "boolean"
        }
      },
      "required": [
        "fingerprint",
        "fingerprint_algorithm",
        "country_code"
      ],
      "title": "PaymentDestinationInput",
      "type": "object"
    },
    "SupplierInput": {
      "additionalProperties": false,
      "properties": {
        "customer_supplier_id": {
          "anyOf": [
            {
              "maxLength": 128,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Customer Supplier Id"
        },
        "claimed_legal_name": {
          "maxLength": 300,
          "minLength": 1,
          "title": "Claimed Legal Name",
          "type": "string"
        },
        "country_code": {
          "pattern": "^[A-Z]{2}$",
          "title": "Country Code",
          "type": "string"
        },
        "company_registration_number": {
          "anyOf": [
            {
              "maxLength": 100,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Company Registration Number"
        },
        "vat_number": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Vat Number"
        },
        "lei": {
          "anyOf": [
            {
              "pattern": "^[A-Z0-9]{20}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Lei"
        },
        "claimed_address": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Claimed Address"
        }
      },
      "required": [
        "claimed_legal_name",
        "country_code"
      ],
      "title": "SupplierInput",
      "type": "object"
    },
    "TransactionInput": {
      "additionalProperties": false,
      "properties": {
        "invoice_id": {
          "maxLength": 128,
          "minLength": 1,
          "title": "Invoice Id",
          "type": "string"
        },
        "purchase_order_id": {
          "anyOf": [
            {
              "maxLength": 128,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Purchase Order Id"
        },
        "amount": {
          "pattern": "^(0|[1-9][0-9]*)(\\.[0-9]{1,4})?$",
          "title": "Amount",
          "type": "string"
        },
        "currency": {
          "pattern": "^[A-Z]{3}$",
          "title": "Currency",
          "type": "string"
        },
        "invoice_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Invoice Date"
        },
        "due_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Due Date"
        }
      },
      "required": [
        "invoice_id",
        "amount",
        "currency"
      ],
      "title": "TransactionInput",
      "type": "object"
    }
  },
  "title": "verify_supplier_paymentArguments"
}
🟢get_verification(verification_id)

Retrieve a verification result belonging to the authenticated tenant. Requires the verification.read scope.

Input Schema

{
  "type": "object",
  "properties": {
    "verification_id": {
      "format": "uuid",
      "title": "Verification Id",
      "type": "string"
    }
  },
  "required": [
    "verification_id"
  ],
  "title": "get_verificationArguments"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools