Camt053 MCP
MCP server for ISO 20022 camt.053 bank-to-customer statement parsing and reconciliation.
Connector by sebastienrousseau · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying Camt053 MCP?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/sebastienrousseau-camt053-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 22 read · 0 write · 0 delete · 2 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 24
Read from the source code; the running server may list different tools.
Read 22 · Look things up without changing anything.
check_cbpr_readinesscite_rulebookclassify_entryconvert_mt940_to_camt053convert_mt942detect_statement_anomaliesfilter_entriesget_cbpr_cutover_dateget_input_schemaget_required_fieldsget_tenant_contextlist_classify_entry_categories
Show 10 more tools
list_entrieslist_export_journal_targetslist_message_typeslist_return_reasonslist_rulebook_clausesparse_statementsearch_rulebook_vectorvalidate_identifiervalidate_recordsvalidate_statement
Not yet classified 2 · We could not tell from the name and description.
export_journalgenerate_reversal
Network hosts it talks to 7
api.xero.com· found in codeecb.europa.eu· found in codeeuropeanpaymentscouncil.eu· found in codegithub.com· found in codeglama.ai· found in codesebastienrousseau.github.io· found in codeswift.com· found in code
Tools (24)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
check_cbpr_readinessCheck CBPR+ Nov 2026 readinessCheck a camt.053 statement against the CBPR+ Nov 2026 acceptance rules. Use this to audit a statement for the business-rule changes (schema version, structured postal addresses) enforced from the Nov 2026 cutover. For plain XSD schema validity use ``validate_statement`` instead; for just the cutover date use ``get_cbpr_cutover_date``. A coordinated CBPR+ / Fedwire / CHAPS / T2 cutover lands on **14-16 November 2026**: unstructured-only postal addresses get rejected, ``camt.110/111`` exceptions and investigations become mandatory, and T2S R2026.NOV upgrades camt.053 / 054 to schema revision M…
cite_rulebookCite payments rulebook clauseReturn a curated payments-rulebook citation for a single clause. Use this to quote one specific rule (with its canonical source URL) once you know the ``scheme``/``version``/``clause``. To discover which clauses exist first, call ``list_rulebook_clauses``. Looks up one well-known rule across the SEPA, CBPR+, and HVPS+ rulebooks and returns a short summary together with the canonical source URL so an agent can quote the rule and the operator can verify it against the official document. The registry is a curated convenience layer, not a verbatim reproduction of copyrighted text. Always defer …
classify_entryClassify entry via LLM samplingClassify one statement entry into a category via MCP LLM Sampling. Use this when you want a semantic, model-driven label for an entry (payroll, fee, refund, …) rather than a deterministic rule match. Because it delegates an LLM completion to the client it is open-world and non-idempotent; for the fixed candidate categories it chooses from, call ``list_classify_entry_categories`` first. Uses the **MCP Sampling** protocol primitive: the server (this process) asks the *client* (the agent's host application) to perform an LLM completion on the server's behalf, then receives the model's structure…
convert_mt940_to_camt053Convert legacy MT940 to camt.053Convert a legacy SWIFT MT940 statement into a camt.053 structure. Use this as the Phase-1 migration wedge: SWIFT MT940 customer statements retire in **November 2028**, so this tool bridges the gap by turning raw MT940 text into the same JSON-serialisable camt.053 document shape that ``parse_statement`` returns (group header plus statements, each with its account, balances, and entries). Downstream tools (``list_entries``, ``filter_entries``, ``classify_entry``, ``export_journal``) then work on the result unchanged. Wraps the ``camt053-loader-mt940`` library's ``parse_mt940``; the MT parsing …
convert_mt942Convert legacy MT942 to camt.052Convert a legacy SWIFT MT942 interim report into a camt.052 structure. Use this as the Phase-1 migration wedge for intraday reporting: SWIFT MT94x messages retire in **November 2028**, so this tool bridges the gap by turning raw MT942 *Interim Transaction Report* text into the same JSON-serialisable camt.052 (Bank-to-Customer Account **Report**) document shape the server's parse tools return (group header plus statements, each with its account, balances, and entries). MT942 is the intraday sibling of MT940: where MT940 maps to camt.053 (end-of-day statement), MT942 maps to camt.052, so the re…
detect_statement_anomaliesDetect statement anomaliesScreen a camt.05x statement for deterministic, rule-based anomalies. Use this as a fast, explainable first pass over an incoming statement before deeper review or reversal. It applies three fixed heuristics over the parsed entry list (see ``list_entries``) and never calls out to a model or the network, so the same statement always yields the same result: * **Duplicate references** (severity ``HIGH``) -- two or more entries share an end-to-end id (or, absent one, an entry reference), a classic double-payment signal. * **Unusual fee deductions** (severity ``MEDIUM``) -- a fee/charge debit …
export_journalExport statement to journal entriesExport a camt.053 statement as accounting-platform journal-entry payloads. Use this to reshape a statement's booked entries into ready-to-POST Xero or QuickBooks payloads (the tool builds the payloads only; it does not call any external API or write files). To discover the valid ``target`` values first, call ``list_export_journal_targets``. Parses the supplied statement and re-shapes every booked entry into a target-specific journal-entry payload ready for direct POST to the accounting platform's REST API. Supported targets (see ``camt053_mcp.export_journal.SUPPORTED_TARGETS``): * ``"xero"…
filter_entriesFilter entries by reason codeList only the statement entries carrying a given return reason code. Use this to preview exactly which entries a reversal would touch before calling ``generate_reversal`` with the same ``reason_code``. For every entry regardless of reason code use ``list_entries`` instead. When ``limit`` is ``None`` (the default) the full list of matching entries is returned, preserving the behaviour expected by existing callers. When ``limit`` is given, a paginated envelope ``{"total", "offset", "limit", "entries"}`` is returned instead, exposing the ``offset:offset + limit`` slice. A negative ``offset`` or…
generate_reversalGenerate reversal documentGenerate a validated camt.053.001.14 reversal document from a statement. This is the headline one-shot workflow: pass an incoming statement and a return-reason code and get back the reversal XML (nothing is written to disk). Preview which entries will be reversed first with ``filter_entries`` using the same ``reason_code``. This is the headline one-shot workflow: parse the incoming camt.053, pick the entries with the requested return reason (e.g. AC04 Closed Account), and emit a validated camt.053.001.14 reversal statement. Returns the validated XML document as a string, or an ``{"error": .…
get_cbpr_cutover_dateGet CBPR+ cutover dateReturn the official CBPR+ / Nov 2026 cutover date as ISO 8601. Use this to quote the enforcement date directly, without parsing a document. To actually audit a statement against the rules that take effect on that date, call ``check_cbpr_readiness`` instead. The cutover (``2026-11-16``) is the date after which the rules checked by ``check_cbpr_readiness`` are enforced by the major clearing systems; payments that fail will be rejected at receive-time. Surfaced as a discrete tool so agents can quote it directly without having to call a readiness check first.
get_input_schemaGet input JSON SchemaReturn the full JSON Schema for a message type's flat input record. Use this to learn every field, its type, and its constraints before assembling records, or to drive a form/UI. For just the required-field names use ``get_required_fields``; to actually check records against this schema use ``validate_records``. Args: message_type: A supported ISO 20022 camt.05x message type.
get_required_fieldsGet required input fieldsList only the required input field names for a camt message type. Use this for a quick checklist of the mandatory columns before building reversing-entry records. When you need full type/format constraints (not just which fields are required), call ``get_input_schema`` instead. Args: message_type: A supported ISO 20022 camt.05x message type.
get_tenant_contextGet tenant scoping contextReturn the multi-tenant scoping context of the current call. Use this to confirm which tenant/account scope the server attributes the session to. On the streamable-HTTP transport (D7, #42) the ``tenant`` field carries the value of the optional ``Camt053-Account`` request header the caller sent; over stdio (or when the caller sent no header) it is ``None``. The same value is stamped as the ``scope`` on the server's audit log, so an agent can verify its calls are attributed to the right tenant. The lookup is read-only and deterministic for a given request: nothing is validated or mutated, and …
list_classify_entry_categoriesList classifier categoriesList the default candidate categories the ``classify_entry`` tool uses. Use this to quote the built-in category vocabulary to a user before running the LLM classifier. This is a static list lookup (no model call); to actually classify an entry, call ``classify_entry``. Operators can override the list per call; this tool exposes the default the prompt template ships with so an agent can quote them to the user before invoking the classifier.
list_entriesList all statement entriesList every booked entry across all statements in a camt.05x document. Use this to get the flat, paginable entry list from a statement. To keep only the entries carrying a given return-reason code use ``filter_entries``; for the full nested document structure use ``parse_statement``. When ``limit`` is ``None`` (the default) the full list of entries is returned. When ``limit`` is given, a paginated envelope ``{"total", "offset", "limit", "entries"}`` is returned instead, exposing the ``offset:offset + limit`` slice. A negative ``offset`` or ``limit`` yields an ``{"error": ...}`` payload. Args…
Show 9 more tools
list_export_journal_targetsList journal export targetsList the accounting-platform targets the ``export_journal`` tool supports. Use this to tell a user which ``target`` values ``export_journal`` accepts before invoking it. This lists export destinations only; for the LLM classifier's category vocabulary use ``list_classify_entry_categories``. Returns the sorted list of valid ``target`` arguments accepted by ``export_journal`` (``["qbo", "xero"]`` today). NetSuite and SAP S/4HANA support is a tracked follow-up.
list_message_typesList camt.05x message typesList every supported ISO 20022 camt.05x message type and its name. Use this first, before any validation or generation call, to discover the exact ``message_type`` strings this server accepts. For the return-reason codes rather than message types, call ``list_return_reasons`` instead. Returns a list of ``{"message_type": ..., "name": ...}`` dictionaries, one per supported message type (e.g. ``camt.053.001.14``).
list_return_reasonsList ISO return reason codesList every known ISO external return reason code with its name. Use this to discover the ``reason_code`` values that ``filter_entries`` and ``generate_reversal`` accept (e.g. ``AC04`` Closed Account). For the supported message types rather than reason codes, use ``list_message_types``. Returns a list of ``{"code": ..., "name": ...}`` dictionaries (e.g. ``{"code": "AC04", "name": "Closed Account Number"}``).
list_rulebook_clausesList rulebook clausesList the curated rulebook clauses the server can cite, optionally filtered. Use this to browse the citation registry and pick a ``clause`` id; then pass that id to ``cite_rulebook`` to fetch the full summary and source URL. Returns the full registry, optionally filtered by ``scheme`` and / or ``version``. Use the resulting ``clause`` values as input to ``cite_rulebook``. Args: scheme: Restrict to one scheme (e.g. ``"SEPA"``). ``None`` returns all schemes. version: Restrict to one version (e.g. ``"2026"``). ``None`` returns all versions.
parse_statementParse camt.05x statement XMLParse an incoming camt.05x statement XML string into structured data. Use this to turn a raw statement into a navigable dict (header, statements, accounts, balances, entries). To pull just the flat entry list use ``list_entries``; to only check the document is schema-valid use ``validate_statement``. Returns the parsed document as a JSON-serialisable dict (group header plus statements, each with its account, balances, and entries), or an ``{"error": ...}`` payload if the XML cannot be parsed. Args: xml: The raw statement XML as a string.
search_rulebook_vectorSearch rulebook clauses by similaritySearch the curated rulebook clauses by lexical-vector similarity. Use this when you know *what* a rule is about but not its exact ``scheme``/``version``/``clause`` id: describe it in natural language and get back the closest curated clauses, each with a similarity ``score``. Then pass the winning ``scheme``/``version``/``clause`` to ``cite_rulebook`` for the full citation, or browse everything with ``list_rulebook_clauses``. Retrieval is a **deterministic lexical-vector cosine** search over the same curated SEPA / CBPR+ / HVPS+ summaries that back ``cite_rulebook`` (no external, copyrighted,…
validate_identifierValidate IBAN, BIC or LEIValidate a single financial identifier (IBAN, BIC, or LEI). Use this for a one-off identifier check with a clear pass/fail. To validate identifiers embedded across a whole batch of records, prefer ``validate_records`` rather than calling this per field. Returns ``{"kind": str, "value": str, "valid": bool}``. Args: kind: One of ``"iban"``, ``"bic"``, or ``"lei"`` (case-insensitive). value: The identifier value to check.
validate_recordsValidate records against schemaValidate flat records against a message type's input JSON Schema. Use this on in-memory reversing-entry records to catch structural/type errors per row before generation. To validate a whole camt.05x *document* (XML) against its XSD instead, use ``validate_statement``. Returns a report ``{"valid": bool, "total": int, "valid_count": int, "errors": [...]}``. Args: message_type: A supported ISO 20022 camt.05x message type. records: One or more flat reversing-entry records to validate.
validate_statementValidate statement against XSDValidate an incoming camt.05x statement XML against its XSD schema. Use this to confirm a document is well-formed and schema-valid before processing it. This checks XSD conformance only; for the Nov 2026 CBPR+ business rules use ``check_cbpr_readiness``, and to extract the data use ``parse_statement``. Detects the document's message type, validates it against the matching ISO 20022 schema, and returns a report ``{"valid": bool, "message_type": str, "errors": [...]}``. A well-formed but schema-invalid document yields ``valid=False`` with a populated ``errors`` list (and the detected ``message…
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 222
- Last commit
- Oct 21, 2026 (10 days ago)
- Last release
- Oct 21, 2026 (10 days ago)
- Last package publish
- Oct 21, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.sebastienrousseau/camt053-mcp- Version
- 0.0.23
- Auth
- No auth
- Packages
- pypi camt053-mcp
- License
- Apache-2.0
- Repository
- github.com/sebastienrousseau/camt053-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from sebastienrousseau
- 0.623score
Pain001 MCP
sebastienrousseau
ISO 20022 payment files for agents: generate, validate, and convert pain.001, pain.008, MT101.
ConnectorAFreshness: ALocal★ 1↓ 210/wkClaude Code +5 - 0.623score
Rlg MCP
sebastienrousseau
MCP server exposing rlg log streams to LLM agents via JSON-RPC 2.0 over stdio.
ConnectorAFreshness: ALocal★ 6Claude Code +5 - 0.615score
Camt Exceptions
sebastienrousseau
Generate + XSD-validate ISO 20022 E&I camt messages (camt.056 cancellation, camt.029 resolution).
ConnectorAFreshness: ALocal★ 1↓ 107/wkClaude Code +5 - 0.614score
Ap2 Iso20022
sebastienrousseau
Bridge AP2 / x402 agent-payment mandates into wire-valid ISO 20022 pain.001 / pacs.008 records.
ConnectorAFreshness: ALocal★ 1↓ 95/wkClaude Code +5 - 0.608score
Bankstatementparser MCP
sebastienrousseau
MCP server for parsing bank statements (BAI2, MT940/MT942, CAMT.053, OFX) via stdio.
ConnectorAFreshness: ALocalRead-only★ 2↓ 77/wkClaude Code +5 - 0.607score
corralctl
sebastienrousseau
Search code and symbols across every clone in your corralctl workspace.
ConnectorAFreshness: ALocal★ 1Claude Code +5
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get Camt053 MCP running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
Camt053 MCP. Agent Mart. https://agentmart.dev/connectors/sebastienrousseau-camt053-mcp (last updated 2026-10-24)