ValidateFin

Validate SEPA, UBL/Peppol, XRechnung, camt, ACH & IBAN files locally — no data leaves your machine.

OtherTypeScriptv1.2.1

@validatefin/mcp

MCP server to validate SEPA, UBL/Peppol, camt.052/053/054 and ACH/NACHA e-invoice / payment files — 100% locally, no data leaves your machine. Powered by ValidateFin.

Tools

  • validate_sepa — SEPA Credit Transfer (pain.001) & Direct Debit (pain.008): validates against the official ISO 20022 XSD schemas and the EPC Rulebook business rules (IBAN mod-97, BIC, SEPA character set, mandates, Creditor Scheme Identifier, control sums).
  • validate_ubl — UBL / Peppol BIS Billing 3.0: runs the official EN 16931 + Peppol BIS 3.0 Schematron — the same rule sets used by the official European e-invoicing validators — and returns the failed business rules with their official IDs (BR-, BR-CO-, Peppol rules). Accepts both the UBL and CII syntaxes (auto-detected).
  • validate_xrechnung — German XRechnung (the German CIUS of EN 16931, mandatory for B2G): runs the official EN 16931 core Schematron + the KoSIT XRechnung BR-DE rules — the same rule sets as the official German validator. Accepts UBL and CII. Returns failed rules with their IDs (BR-, BR-DE-).
  • validate_camt — ISO 20022 camt cash-management file — camt.053 (bank-to-customer statement), camt.052 (account report / intraday) or camt.054 (debit/credit notification), versions .02/.06/.08/.10/.11: extracts account, balances and entries (camt.053 also validated against the official ISO 20022 XSD schema).
  • convert_mt940 — convert a legacy SWIFT MT940 bank statement (Customer Statement Message) to an ISO 20022 camt.053.001.02 XML statement: parses the balances and transactions, checks that opening balance + turnover = closing balance (RC/RD reversals handled), and returns the camt.053 XML.
  • validate_ach — US ACH / NACHA file (fixed-width Nacha format): validates the 94-character record structure (File Header, Batch Header, Entry Detail, Addenda, Batch/File Control), the ABA routing-number check digit (3-7-1), the entry hash, and all batch & file control totals (debits, credits, entry/addenda count, block count).
  • validate_iban — IBAN (mod-97 checksum, country & length).
  • generate_camt_test — generate a camt.053 test statement from a pain.001 / pain.008 file.

The XML validation tools take the file content as xml (a string) and return the result (valid/invalid, errors, summary) as JSON. validate_ach and convert_mt940 take the raw file as content, validate_iban takes an iban string, and generate_camt_test and convert_mt940 return the generated camt.053 XML.

Install

Add this to your MCP client configuration (Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "validatefin": { "command": "npx", "args": ["-y", "@validatefin/mcp"] }
  }
}

Then ask your assistant to validate a SEPA, UBL/Peppol, camt.052/053/054 or ACH/NACHA file.

Privacy

Validation runs entirely on your machine. No file or data is ever uploaded to a server — the same privacy guarantee as the ValidateFin website.

License

The MCP server code is MIT. It bundles third-party components under their own licenses:

  • SaxonJS (© Saxonica) — runs the official Schematron; redistributed under the SaxonJS license (free, used unmodified).
  • EN 16931 validation rules (© European Union / ConnectingEurope) — Apache-2.0.
  • Peppol BIS 3.0 validation rules (© OpenPEPPOL).
  • libxml2 (libxml2-wasm) — MIT.

ValidateFin is an independent tool and is not certified or endorsed by OpenPEPPOL, the European Commission, or any Peppol Authority. "Official" refers to the rule sets/schemas used, not to any accreditation of this tool.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @validatefin/mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-elnicaise-validatefin": {
      "command": "npx",
      "args": [
        "-y",
        "@validatefin/mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@validatefin/mcpnpm

Compatible MCP Clients

ValidateFin works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More