npm @validatefin/mcpstdioMITupdated 2mo ago
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.
What can you do with ValidateFin?
@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.
Install
Add ValidateFin to your client. Pick the one you use.
claude mcp add mcp -- npx -y @validatefin/mcpcodex mcp add mcp -- npx -y @validatefin/mcpamp mcp add mcp -- npx -y @validatefin/mcp{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@validatefin/mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@validatefin/mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp","command":"npx","args":["-y","@validatefin/mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@validatefin/mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@validatefin/mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@validatefin/mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@validatefin/mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"@validatefin/mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @validatefin/mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
8 tools
ValidateFin exposes 8 tools to a connected agent.
- 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.
Score
69 / 100
Good
- Documentation22/25
- Maintenance16/25
- Trust13/20
- Capability6/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 57 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 8 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 1.2.1Latest | Jul 5, 2026 |