SepaCheck Validator

io.github.wenbotengPublished by GitHub account wenbotengv0.2.0Updated Nov 4, 2026

Validate SEPA pain.001 and camt.053/054 files with the free checksepa.com API.

The publisher's own server: check.tattoo: tattoo size and placement guide

VerifiedSTDIODesktop onlyFinanceDeveloper Tools

Overview

AI-generated overview

Validates SEPA pain.001 payment files and camt.053/054 bank statements, and converts statements to JSON or CSV, via the free checksepa.com API.

What you can do
  • Validate a SEPA pain.001.001.03 or .09 payment file and get validity, format, version, errors and warnings with line numbers
  • Validate camt.053 or camt.054 statements (.02 or .08) against the official XML Schema
  • Convert camt.053 or camt.054 statements to normalized JSON or CSV, including IBAN, balances and entry details
  • Accept input either as a local file path or as the XML document passed directly as a string
When to use it
Useful when an assistant needs to check SEPA payment or bank statement XML before sending it to a bank, or to turn camt statements into JSON or CSV for further analysis. It suits occasional, small-volume checks rather than bulk processing.
Requirements
Runs locally as a stdio process, typically started with npx from the npm package sepa-validator-mcp, so Node.js is needed. No API key or environment variables. Outbound network access to checksepa.com is required for every call.
Before you install
Every call uploads the XML document to a third-party API, so payment and account data leaves the machine; the README states files are not stored. Free limits are 30 requests per IP per hour, 200 per UTC day and 2 MB per file, shared across all three tools. pain.008 is recognised but always reported as invalid.

Installation

In SourceWeft

  1. Open SepaCheck Validator in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

sepa-validator-mcp

Stdio MCP server, version 0.2.0. Tools: validate_sepa (POST https://checksepa.com/v1/validate), camt_validate (POST https://checksepa.com/v1/camt/validate), and camt_convert (POST https://checksepa.com/v1/camt/convert, format json or csv).

Input: exactly one of file_path (read by this process) or xml (the document as a string).

Output: valid, format, version, errors[], and warnings[]. Each finding has code, message, path, and line (line is an integer or null).

validate_sepa covers pain.001.001.03 and pain.001.001.09. camt_validate and camt_convert cover camt.053 and camt.054 versions .02 and .08. pain.008 is recognised by validate_sepa and returned with valid: false. The three routes share the free limit.

Free limit: 30 requests per IP per hour, 200 per UTC day, 2 MB. The file is not stored. The tool calls the network, so it is not a local read-only check. Higher limits and API keys: https://checksepa.com/api-waitlist

Package name: sepa-validator-mcp. Registry name in server.json: io.github.wenboteng/sepa-validator (mcpName matches). Not submitted to the MCP registry yet. Build with npm run build (node dist/index.js) or, after publish, npx -y sepa-validator-mcp.

Claude Desktop

claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json):

json
{  "mcpServers": {    "sepa-validator": {      "command": "npx",      "args": ["-y", "sepa-validator-mcp"]    }  }}

Cursor

~/.cursor/mcp.json or the project file .cursor/mcp.json:

json
{  "mcpServers": {    "sepa-validator": {      "command": "npx",      "args": ["-y", "sepa-validator-mcp"]    }  }}

From a checkout, before the npm publish:

json
{  "mcpServers": {    "sepa-validator": {      "command": "node",      "args": ["mcp/dist/index.js"]    }  }}

VS Code

.vscode/mcp.json:

json
{  "servers": {    "sepa-validator": {      "type": "stdio",      "command": "npx",      "args": ["-y", "sepa-validator-mcp"]    }  }}

Docs: https://checksepa.com/docs · OpenAPI: https://checksepa.com/openapi.json

MIT. Copyright (c) 2026 Bobook Limited.

Source: mcp/README.md at commit eef04df

Tools

3

validate_sepa

Validate SEPA XML

Validate one SEPA XML document (pain.001.001.03 or pain.001.001.09). The file is uploaded to the free keyless API POST https://checksepa.com/v1/validate. Limits: 30 requests per IP per hour, 200 per UTC day, 2 MB. The file is not stored. Provide exactly one of file_path or xml. Returns valid, format, version, errors, and warnings. Each finding has code, message, path, and line.

Parametersxmlfile_path

camt_validate

Validate camt.053 or camt.054

Validate one ISO 20022 bank statement (camt.053.001.02, camt.053.001.08, camt.054.001.02, or camt.054.001.08) against the official XML Schema via POST https://checksepa.com/v1/camt/validate. No API key. This route shares the free limit with pain.001 validate and camt convert: 30 requests per IP per hour, 200 per UTC day, 2 MB. The file is not stored. Provide exactly one of file_path or xml. Returns valid, format, version, errors, and warnings. Each finding has code, message, path, and line.

Parametersxmlfile_path

camt_convert

Convert camt.053 or camt.054

Convert one camt.053 or camt.054 statement (.02 or .08) to normalized JSON or CSV via POST https://checksepa.com/v1/camt/convert. JSON statements include account IBAN, balances, and entries with amount, currency, creditDebit, bookingDate, valueDate, counterpartyName, counterpartyIban, remittanceInfo, and endToEndId. A credit uses the debtor as the counterparty. A debit uses the creditor. No API key. Shares the free limit: 30 per IP per hour, 200 per UTC day, 2 MB. The file is not stored. Provide exactly one of file_path or xml. format is json (default) or csv.

Parametersxmlformatfile_path

Version history

2
  1. v0.2.0LatestOct 20, 2026
  2. v0.1.0Oct 19, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Check integrations