camt-exceptions について
camt-exceptionsは、ISO 20022の例外・調査メッセージを生成・検証するMCPサーバーです。camt.056の取消依頼とcamt.029の調査結果に対応し、XMLを同梱の公式XSDで検証します。
主な機能
- 01camt.056とcamt.029のXML生成
- 02公式XSDによる生成結果の検証
- 03XMLの検証
- 04メッセージ種別と必須項目の一覧
- 05stdio、HTTP、SSEの各トランスポート
活用シーン
- 01銀行間の支払い取消依頼の作成
- 02調査結果メッセージの生成
- 03E&I XMLのスキーマ適合確認
MCP 対応
メッセージ種別の一覧、必須項目の取得、メッセージ生成、XML検証を行う4つのツールを提供します。stdio、Streamable HTTP、SSEに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
camt-exceptions:ISO 20022 の例外処理と調査、生成および XSD 検証済み
ISO 20022 の例外処理と調査(E&I)camt メッセージを生成・検証します — MCP サーバーを利用します。 camt.056(金融機関間支払取消依頼)から始められます。これは銀行がすでに送信した支払いの取消または回収を依頼するメッセージです。二重払い、金額の誤り、不正利用による回収などに対応します。返却前に、同梱された公式 XSDで出力を検証します。
最新リリース:v0.0.20:
camt.056とcamt.029の生成・検証、stdio、Streamable HTTP、SSE に対応した 4 つの MCP ツール、100% のブランチカバレッジを提供します。Python 3.10 以降に対応しています。ISO 20022 MCP スイートの一部です。追加の E&I メッセージ(camt.029、camt.026、camt.027、camt.087)も同じエンジンに組み込めます。
E&I を選ぶ理由
支払いに問題が発生したときは、例外処理と調査のメッセージで解決します。しかし、これらは ISO 20022 の中でも特にツールが不足している領域です。camt.056 だけでも、最もよくあるニーズである **「あの支払いを取り消す/回収する必要がある」**に対応します。このライブラリを使えば、スイート内のほかの信用振替ジェネレーターと同等の機能を備えた、エージェント向けのスキーマ検証済み処理を 1 回の呼び出しで実行できます。
インストール
pip install camt-exceptions
# or run the MCP server without installing:
uvx camt-exceptions
MCP クライアントの設定(例:Claude Desktop):
{
"mcpServers": {
"camt-exceptions": {
"command": "camt-exceptions-mcp"
}
}
}
クイックスタート — 支払いを取り消す
from camt_exceptions import generator as g
xml = g.generate_message("camt.056.001.12", {
"assignment_id": "CXL-001",
"assigner_agent_bic": "DEUTDEFF",
"assignee_agent_bic": "COBADEFF",
"creation_date_time": "2026-03-02T10:00:00",
"original_msg_id": "MSG-ORIG-001",
"original_msg_nm_id": "pacs.008.001.08",
"transactions": [{
"original_end_to_end_id": "E2E-001",
"original_interbank_settlement_amount": "1000.00",
"original_interbank_settlement_currency": "EUR",
"cancellation_reason_cd": "DUPL", # duplicate payment
}],
})
assert g.validate_xml("camt.056.001.12", xml)["is_valid"] # True
トランスポート
1 つのコマンドラインで、3 つのトランスポートを利用できます。
| コマンド | トランスポート | エンドポイント | プロトコルのリビジョン |
|---|---|---|---|
camt-exceptions-mcp | stdio | クライアントがプロセスを起動します | 2026-07-28、2025-11-25 |
camt-exceptions-mcp --transport streamable-http | Streamable HTTP | http://127.0.0.1:8000/mcp | 2026-07-28(ステートレス、server/discover)および 2025-11-25(initialize、Mcp-Session-Id)を同一エンドポイントで利用できます。応答はサーバー送信イベントとしてストリームされ、GET でサーバーからクライアントへのストリームを開きます |
camt-exceptions-mcp --transport sse | HTTP+SSE (2024-11-05) | http://127.0.0.1:8000/sse および /messages/ | 古いトランスポートを引き続き想定するクライアント向け |
--host と --port でバインドアドレスを変更できます(デフォルトは 127.0.0.1 と
8000 です)。HTTP トランスポート自体には認証機能がありません。ループバックにバインドするか、到達可能なアドレスにバインドする前に、信頼できるゲートウェイの背後にサーバーを配置してください。すべてのリリースについて、両方のプロトコル世代で scout を使用した Streamable HTTP、および MCP SDK クライアントを使用した SSE で動作を検証しています。詳しくは
ADR 0001 を参照してください。
{
"mcpServers": {
"camt-exceptions": { "url": "http://127.0.0.1:8000/mcp" }
}
}
ツール
list_message_types— 対応する E&I メッセージの種類と名称を一覧表示します。get_required_fields— メッセージの種類ごとに、トップレベルで必須となるフィールドを表示します。generate_message— レコードから検証済みの E&I XML メッセージを生成します(返却前に同梱の XSD で検証します)。validate_xml— 生の XML をメッセージの種類に対応する同梱 XSD で検証します。
サポート対象のメッセージ
| メッセージ | 名前 | 状態 |
|---|---|---|
camt.056.001.12 | 金融機関間の支払取消依頼 | ✅ |
camt.029.001.14 | 調査の解決 | ✅ |
camt.026 | 適用不可 | 計画中 |
camt.027 | 未受領の申し立て | 計画中 |
camt.087 | 支払変更依頼 | 計画中 |
新しいメッセージはそれぞれ、同じエンジンに追加できます。公式の XSD と
template.xml を同梱し、MESSAGE_TYPES に登録します。生成された出力は返却前に
必ず XSD で検証されるため、正確性は主張ではなく、機械的に確認されます。
注:E&I ファミリーの支払状況メッセージと返金メッセージ、
pacs.002(支払状況レポート)とpacs.004(支払返金)は、pacs008-mcpですでに生成され、XSD 検証にも合格しています。
スイート
ベンダーに依存しない、Python ネイティブな ISO 20022 MCP サーバー群の一部です。
iso20022-mcp— 各ファミリーを統合するゲートウェイです。pain001-mcp·pacs008-mcp·camt053-mcp·acmt001-mcp— ファミリー別のサーバーです。reconcile-mcp— 明細書と支払を照合します。
ドキュメント
- レンダリング済みドキュメント: sebastienrousseau.github.io/camt-exceptions — API リファレンス、ADR、ロードマップ、変更履歴
- 実行可能なサンプル:
examples/ - リリース履歴: CHANGELOG.md
開発
git clone https://github.com/sebastienrousseau/camt-exceptions
cd camt-exceptions
python -m venv .venv && . .venv/bin/activate
pip install -e . && pip install pytest pytest-cov hypothesis ruff black mypy interrogate "mutmut>=3.7,<4"
pytest # 100% branch coverage gate; output is XSD-validated
ruff check camt_exceptions tests && black --check camt_exceptions tests && mypy camt_exceptions
interrogate -c pyproject.toml camt_exceptions # 100% docstring gate
mutmut run && mutmut export-cicd-stats && python scripts/mutation_gate.py --floor 90
ライセンス
Apache License, Version 2.0 または
MIT License のいずれかを選択して利用できます。同梱されている ISO 20022 メッセージスキーマ
(*.xsd)の著作権は © ISO 20022 に帰属し、ISO 20022 の規約に基づいて再配布されています。これらは
iso20022.org で公開されているものと同じスキーマです。
mcp-name: io.github.sebastienrousseau/camt-exceptions
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。