
Reconcile Mcp
io.github.sebastienrousseau由 GitHub 帳號 sebastienrousseau 發布v0.0.7更新於 Oct 24, 2026
Reconcile camt.053 statements vs expected pain.001 payments with explainable matching.
概覽
本機 MCP 伺服器,將預期的 pain.001 付款與實際的 camt.053 銀行對帳單項目進行對帳,並提供附評分與說明的比對結果。
- 可以做什麼
- 對帳預期付款與實際對帳單項目,回傳含評分與理由的完整報告
- 針對單一組預期/實際紀錄逐項評分,方便調校參數
- 將解析後的 pain.001 與 camt.053 文件轉換為標準的預期紀錄與實際紀錄
- 列出、載入並執行內建沙箱情境,無須真實資料即可首次試用
- 依相似度比對交易對手名稱、透過指定匯率比對不同幣別金額,並將單筆入帳對應到多張發票的組合
- 適用情境
- 適合財務或資金團隊需要確認預期轉帳是否實際入帳、每筆入帳對應哪張發票的情境,包括短付、分期結清與批次付款。也適合需要每個比對都有可解釋依據、而非只有結論的場合。
- 執行需求
- 以本機 Python 套件形式執行(需 Python 3.10+),可用 pip 安裝或透過 uvx 執行;預設為 stdio,也可選用綁定 127.0.0.1:8000 的 streamable HTTP 或 SSE 傳輸。多對多比對工具需要 ilp 額外相依套件。未宣告任何帳號、金鑰或環境變數。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Reconcile Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
reconcile-mcp: An MCP Server for ISO 20022 Cash Reconciliation
[Build Status] [PyPI version] [Glama MCP server score] [OpenSSF Scorecard] [License] [Python Version]
A Model Context Protocol server that matches expected payments
(from pain.001 credit transfers) against observed booked entries (from a
camt.053 statement) and returns an explainable reconciliation — exact
matches, short/over payments, split settlements (one-to-many), batch credits
(many-to-one), and the residual unmatched items on each side, every match
carrying a score and the reasons it was made.
Latest release: v0.0.7: 10 MCP tools over stdio, streamable HTTP or SSE, pure-Python matching engine, deterministic sandbox test-mode, for Python 3.10+. Part of the ISO 20022 MCP suite: you own both sides of the match.
Why this exists
Reconciliation is the treasury team's daily pain: did the money we expected
actually arrive, and which invoice does each credit belong to? It is rarely
one-to-one — customers underpay, settle an invoice in instalments, or a payout
aggregator sends one lump covering a dozen receivables. reconcile-mcp does
this matching as an agent tool, and — critically for finance — shows its
work: every pairing comes with a numeric score and a plain list of the
signals (reference, amount, date, counterparty) that drove it.
The ISO 20022 MCP Suite
reconcile-mcp is the reconciliation workflow of eight coordinated,
vendor-neutral MCP servers that together cover the ISO 20022 bank-statement
workflow and the November 2026 structured-address cutover, plus a high-level orchestration layer — readiness scoring, clearing-profile linting, and audit evidence — statement depth,
whole-catalogue routing, reconciliation, multi-format ingestion, and address
remediation. Dependency ranges are kept aligned across the suite,
so the servers co-install cleanly in a single Python environment: start with
one, add the rest as your workflow grows.
In one line each: camt053-mcp is the bank-statement flagship (deepest
camt.05x surface, stdio + authenticated streamable HTTP);
iso20022-mcp is the generic message toolkit (a handful of verbs over
the whole catalogue); reconcile-mcp is the reconciliation workflow
(did the money we expected actually arrive?);
bankstatementparser-mcp is the ingestion layer (many formats in, one
transaction shape out); and structured-address-fix-mcp is the
postal-address specialist (debtor/creditor addresses cliff-ready for the
Nov 2026 cutover).
The suite also includes per-family servers — pain001-mcp
(credit transfer initiation), pacs008-mcp (FI-to-FI credit
transfers), and acmt001-mcp (account management) — whose
parsed output feeds straight into this server's normalize_* adapters.
Install
MCP client config (e.g. Claude Desktop claude_desktop_config.json):
Quick start (zero real data)
The server ships a sandbox test-mode: deterministic scenarios so you can run the whole flow with no setup and no real cash data. One call gets you a full, explainable result:
returns a realistic mixed close — one clean match, one short payment, one split settlement, and an unexpected credit correctly left unmatched:
List every scenario with list_sandbox_scenarios; load one to inspect or edit
its inputs with load_sandbox_scenario.
Transports
One command line, three transports:
--host and --port change the bind address (defaults 127.0.0.1 and
8000). The HTTP transports carry no authentication of their own: bind
loopback, or put the server behind a gateway you trust before binding a
routable address. Every release is verified over streamable HTTP with
passmcp in both protocol
eras and over SSE with the MCP SDK client; see
ADR 0001.
Bring your own data
Records are small canonical objects — id and amount required, everything
else optional and used to sharpen matching:
Already using the rest of the suite? Feed parsed output straight in — the adapters map it for you:
normalize_pain001(document)→ the expected side, frompain001-mcp.normalize_camt053(document)→ the observed side, fromcamt053-mcp.
Then call reconcile(expected, observed).
Tools
reconcile— Match expected payments against observed entries; full explainable report.explain_match— Score a single expected/observed pair with a per-signal breakdown (tuning aid).normalize_pain001— Adapt parsedpain.001output into canonical expected records.normalize_camt053— Adapt parsedcamt.053output into canonical observed records.list_sandbox_scenarios— List the built-in test-mode scenarios and magic references.load_sandbox_scenario— Return one scenario's expected/observed inputs to inspect or edit.run_sandbox_scenario— Load a scenario and reconcile it in one call — the fastest first run.match_names_probabilistic— Score two counterparty names by Jaro-Winkler similarity and flag a match at a threshold.match_amounts_with_fx_drift— Compare two amounts in different currencies through a supplied FX rate, within a percentage tolerance.reconcile_many_to_many— Match each deposit to a disjoint subset of invoices whose amounts sum to it (subset-sum ILP; needs theilpextra).
Plus one prompt and two resources:
- Prompt
reconcile_workflow— Step-by-step guidance from rawpain.001/camt.053to an explained match report. - Resource
reconcile://sandbox-scenarios— The built-in scenario catalogue. - Resource
reconcile://sandbox/{scenario_id}— One scenario's expected/observed inputs.
How matching works
Each candidate pair is scored on four weighted signals, then classified:
- Reference (0.45) — exact / partial equality of references and end-to-end ids, normalised to bare alphanumerics.
- Amount (0.35) — exact within tolerance, or a linearly-decaying closeness with the delta reported.
- Date (0.10) — proximity within a configurable window; neutral if unknown.
- Counterparty (0.10) — token-set overlap of names; neutral if unknown.
Assignment is greedy, highest-score-first and fully deterministic (a total tiebreak order), so the same inputs always produce the same result. Residuals are then tested for one-to-many (a bounded subset-sum: one expected settled by several entries) and many-to-one (one entry covering several expected).
Tune any of it via the options argument: abs_tol / rel_tol,
date_window_days, high_threshold, review_threshold, currency_strict,
enable_one_to_many, max_combination.
Development
License
Licensed under the Apache License, Version 2.0 or the MIT License, at your option.
mcp-name: io.github.sebastienrousseau/reconcile-mcp
來源:README.md,提交 e956a06
工具
0版本歷史
3- v0.0.7最新Oct 4, 2026
- v0.0.6Oct 4, 2026
- v0.0.5Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分