SuperAPI AI Directory

camt053-mcp

ISO 20022 camt.053 bank statement parsing and XSD validation, IBAN/BIC/LEI checks, Xero and QuickBooks journal export and reversing-entry generation.

Open website

About this tool

camt053-mcp is an MCP (Model Context Protocol) server that turns the camt053 ISO 20022 bank statement library into a set of tools that AI agents and assistants can call directly. It targets standardized bank-to-customer account reporting, statements, and debit/credit notifications (camt.05x cash management messages), enabling users to read and reverse-generate these messages in conversation.

Main capabilities The server provides 24 MCP tools (latest version v0.0.22), covering the following areas:

  • Query and validation: list_message_types (lists the 3 declared camt.05x message types), list_return_reasons (lists ISO external return reason codes), get_required_fields (required fields for a message type), get_input_schema (the complete input JSON Schema for a message type), validate_records (validates flat records by message type), validate_identifier (validates IBAN, BIC, or LEI), validate_statement (validates a statement against the XSD and identifies its type).
  • Format conversion: convert_mt940_to_camt053 (converts traditional SWIFT MT940 statement text into camt.053 structure), convert_mt942 (converts traditional SWIFT MT942 interim transaction report text into camt.052 structure).
  • Rules and compliance: check_cbpr_readiness (flags CBPR+ November 2026 cutover issues in statements), get_cbpr_cutover_date (returns the official CBPR+ cutover date 2026-11-16), cite_rulebook (cites SEPA / CBPR+ / HVPS+ rulebook clauses), list_rulebook_clauses (lists available rulebook citations, filterable by criteria), search_rulebook_vector (retrieves rulebook clauses by natural language similarity when the clause id is unknown, requires the [vector] optional dependency).
  • Export and classification: export_journal (exports statement entries as Xero BankTransactions or QBO JournalEntry payloads), list_export_journal_targets (lists the accounting platform targets supported by export_journal), classify_entry (classifies entries using the client LLM via MCP Sampling), list_classify_entry_categories (lists the default categories used by classify_entry).
  • Parsing and analysis: parse_statement (parses an incoming camt.05x statement into data), detect_statement_anomalies (screens for duplicate references, abnormal fee deductions, and velocity spikes using deterministic rules, without relying on models or the network), list_entries (lists all entries across all statements, paginated), filter_entries (returns entries with return reason codes, paginated), generate_reversal (generates a validated reversal bookkeeping XML document).
  • Multi-tenant context: get_tenant_context (reports the multi-tenant scope of the call, from the Camt053-Account request header under HTTP transport, None under stdio).

The core highlight is the one-shot reversal bookkeeping workflow: read an incoming camt.053 statement, find entries with return reason codes (for example AC04 account closed), and generate a validated reversal bookkeeping entry.

How to use Installation and runtime requirements: supports macOS, Linux, and Windows, requires Python 3.10+ and pip, and automatically pulls the core camt053 library and MCP SDK. After starting the server with stdio (FastMCP's default transport), you can add it to the configuration of any MCP client (such as Claude Desktop), and the agent can then call tools on demand to parse statements and generate reversal bookkeeping entries. The server supports switching between four transports with a single command-line option: stdio, streamable HTTP, SSE, and authenticated streamable HTTP (--transport http). --host and --port can change the bind address for streamable-http and sse (default 127.0.0.1 and 8000); these two transports do not carry authentication themselves, so it is recommended to bind them to a loopback address or place them behind a trusted gateway. For shared multi-tenant deployments, streamable HTTP with mandatory bearer-token authentication can be enabled, and per-request tenant scoping can optionally be performed via the Camt053-Account request header. The HTTP transport implements OAuth 2.1 resource server authentication (RFC 9728 metadata), but does not run an authorization server and requires you to bring your own IdP. All tools are lightweight typed wrappers around the shared camt053.services facade, so behavior is consistent with the CLI and REST API; tools return JSON-serializable data and, on error, return an {"error": ...} payload instead of throwing an exception. Tools can also be called directly in-process through the FastMCP instance, without the transport layer.

Use cases Suitable for use with MCP-capable hosts (Claude Desktop, IDE plugins, agent frameworks) for parsing, validation, compliance checking, format migration, accounting-platform journal export, and reverse-entry generation for ISO 20022 bank statements; supports multi-framework agent adapters such as LangChain, CrewAI, and LlamaIndex.

Limitations

  • An MCP client is required: this server only makes sense when paired with an MCP-aware host; script or CI scenarios should use the camt053 CLI and REST API.
  • When a long-running daemon without an MCP client is needed, it can run persistently over streamable HTTP, but consumers must still use MCP JSON-RPC; for pure REST semantics, use the camt053 FastAPI service.
  • Streaming responses are not supported: tool calls return complete values rather than a stream, and large statements are handled via the list_entries(xml, offset, limit) pagination envelope rather than being chunked across multiple responses.
  • It does not handle per-user OAuth flows on your behalf: the HTTP transport only authenticates the caller and scopes by tenant header, and requires you to bring your own identity provider.
  • It does not generate pain.001 outbound payment files; that functionality belongs to pain001-mcp.
  • search_rulebook_vector uses deterministic lexical vectors (256-dimensional term-frequency vectors, including whole words and 3/4-character n-grams, BLAKE2b bucketing, sqlite-vec ranking), not a neural embedding model, and matches wording rather than meaning; it requires the optional extra and Python's SQLite loadable extension support, otherwise it returns an error payload indicating that extra. Retrieval indexes only curated summaries and does not store or retrieve external, copyrighted, or access-restricted rulebook text.

The project is developed with Poetry and mise, with a Makefile orchestrating quality gates synchronized with CI. The latest version also includes multi-framework agent adapters, OAuth 2.1 resource server authentication for the HTTP transport, Prometheus metrics, a tamper-evident audit chain, and real HTTP load benchmarks. On the security side, defense in depth (defusedxml + xml_guard byte limits + DOCTYPE / ENTITY pre-checks) sits in the camt053.services layer. The project is released under dual Apache-2.0 or MIT licenses and is part of the ISO 20022 MCP suite.