acmt001-mcp について
acmt001-mcpは、acmt001 ISO 20022口座管理ライブラリをMCPサーバーとして提供し、金融分野のAIエージェントやアシスタントがメッセージを調べ、データを検証し、XMLを生成できます。7つのツールは共通のサービス層を使い、stdio、Streamable HTTP、SSEに対応します。
主な機能
- 01メッセージ種別と必須項目の一覧
- 02完全な入力JSON Schemaの提供
- 03レコード、IBAN、BIC、LEIの検証
- 04検証済みISO 20022 XMLの生成
- 05LEIのオンライン登録情報検索
活用シーン
- 01口座管理メッセージの必須項目を確認
- 02口座レコードと金融識別子を検証
- 03口座開設や変更のXMLを生成
MCP 対応
MCPサーバーは、メッセージの確認、データ検証、XML生成を行う7つのacmt001ツールをクライアントに公開します。stdio、Streamable HTTP、SSEに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 今日に更新
このツールにパラメーターはありません。
詳細
acmt001-mcp:ISO 20022 アカウント管理用 MCP サーバー
acmt001 ISO 20022 アカウント管理ライブラリを、AI エージェントやアシスタント向けのツールとして公開する Model Context Protocol サーバーです —
メッセージタイプの検出、入力スキーマの確認、レコードや金融識別子の検証、検証済み XML の生成を、お気に入りの MCP クライアントからすべて実行できます。
最新リリース:v0.0.13:stdio、ストリーマブル HTTP、または SSE 経由で利用できる 7 つの MCP ツールを提供します。すべて共有の
acmt001.servicesレイヤーを基盤とし、Python 3.10 以降に対応しています。acmt0010.0.13 と同時にリリースされ、すべての CI とイメージのインストールは ハッシュで固定されており、ツールにはファジングテストを実施しています。新機能を見る →
目次
概要
Model Context Protocol(MCP)は、AI エージェントやアシスタントが外部ツールを一貫した方法で検出し、呼び出せるようにするオープン標準です。acmt001-mcp は、acmt001 ライブラリを、エージェントがすぐに使える一連のツールに変換する MCP サーバーです。これにより、アシスタントは、銀行口座のライフサイクル(開設、維持、閉鎖、識別、切り替え)を管理する標準化された指示、確認、レポートである ISO 20022 acmt Account Management XML メッセージを会話から直接生成し、検証できます。
すべてのツールは、CLI と REST API でも使用される共通の単一ファサードである acmt001.services を薄く型付けしてラップしています。そのため、すべてのインターフェースは同じように動作します。ツールは JSON にシリアライズ可能なデータを返し、検証エラーが発生した場合は例外を送出するのではなく、{"error": ...} ペイロードを返します。
- ウェブサイト: https://acmt001.com
- ソースコード: https://github.com/sebastienrousseau/acmt001-mcp
- バグ報告: https://github.com/sebastienrousseau/acmt001-mcp/issues
このパッケージは、acmt001.services レイヤーを共有する、個別にインストール可能なパッケージ群である acmt001 スイートの一部です。
acmt001— コアライブラリ(CLI + REST API)acmt001-mcp— このパッケージ。Model Context Protocol サーバーacmt001-lsp— エディター向けの Language Server Protocol サーバー
flowchart LR
A["MCP client<br/>(Claude Desktop, IDE, agent)"] -->|stdio| B["acmt001-mcp"]
B -->|delegates to| C["acmt001.services"]
C -->|render + validate| D["ISO 20022 acmt XML"]
インストール
acmt001-mcp は macOS、Linux、Windows で動作し、Python 3.10+ と pip が必要です。コアの acmt001 ライブラリと MCP SDK は自動的にインストールされます。
python -m pip install acmt001-mcp
注記: コアの
acmt001ライブラリはまだ PyPI に登録されていないため、先にソースからインストールしてください。python -m pip install "git+https://github.com/sebastienrousseau/acmt001.git" python -m pip install acmt001-mcp
分離された仮想環境を使用する(推奨)
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
python -m pip install -U acmt001-mcp
クイックスタート
stdio(デフォルトのトランスポート)でサーバーを起動します。
acmt001-mcp
MCP クライアント(例:Claude Desktop)に登録するには、クライアントの設定に追加します。
{
"mcpServers": {
"acmt001": { "command": "acmt001-mcp" }
}
}
これで、エージェントは以下のツールを呼び出して、必要に応じて口座データを検証し、ISO 20022 メッセージを生成できます。
トランスポート
1 つのコマンドラインで、3 種類のトランスポートを使用できます。
| コマンド | トランスポート | エンドポイント | プロトコルのリビジョン |
|---|---|---|---|
acmt001-mcp | stdio | クライアントがプロセスを起動 | 2026-07-28、2025-11-25 |
acmt001-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 でサーバーからクライアントへのストリームを開きます |
acmt001-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": {
"acmt001": { "url": "http://127.0.0.1:8000/mcp" }
}
}
ツール
すべてのツールは共有の acmt001.services レイヤーに処理を委譲するため、CLI や REST API と同じように動作します。
list_message_types— サポートされている 34 種類の acmt メッセージタイプを一覧表示しますget_required_fields— メッセージタイプに必要な入力フィールドを取得しますget_input_schema— メッセージタイプの完全な入力 JSON Schema を取得しますvalidate_records— メッセージタイプに対してフラットレコードを検証しますvalidate_identifier— IBAN、BIC、または LEI を検証しますgenerate_message— 検証済みの acmt XML メッセージを生成しますverify_lei_online— ライブの GLEIF レジストリで LEI を検索します(onlineエクストラが必要です)
ツールの使用
トランスポートを介さず、サーバーインスタンスから直接、プロセス内でツールを呼び出せます。これは、エージェントが標準入出力経由で受け取る内容を再現します。このスニペットの実行可能なバージョンは、examples/mcp_tools.py にあります。
import asyncio
from acmt001_mcp.server import server
# A single flat account-opening record.
record = [
{
"msg_id": "ACMT-MSG-0001",
"creation_date_time": "2026-01-15T10:30:00",
"process_id": "ACMT-PRC-0001",
"account_id": "GB29NWBK60161331926819",
"account_currency": "EUR",
"account_name": "Treasury Operating Account",
"account_type_cd": "CACC",
"account_servicer_bic": "NWBKGB2LXXX",
"account_owner_name": "Acme Embedded Finance Ltd",
"account_owner_country": "GB",
"org_full_legal_name": "Acme Embedded Finance Limited",
"org_country_of_operation": "GB",
"org_id_lei": "5493001KJTIIGC8Y1R12",
}
]
async def main() -> None:
async def call(name, args):
result = await server.call_tool(name, args)
content = result[0] if isinstance(result, tuple) else result
return content[0].text if content else ""
# Validate an identifier.
print(await call("validate_identifier",
{"kind": "lei", "value": "5493001KJTIIGC8Y1R12"}))
# -> {"kind": "lei", "value": "5493001KJTIIGC8Y1R12", "valid": true}
# Generate a validated ISO 20022 Account Opening Request.
xml = await call("generate_message",
{"message_type": "acmt.007.001.05", "records": record})
print(xml[:46]) # -> <?xml version="1.0" encoding="UTF-8"?> ...
asyncio.run(main())
直接実行します。
python examples/mcp_tools.py
ベンチマーク
python benches/bench_tool_dispatch.py # full run
python benches/bench_tool_dispatch.py --quick # what CI runs
ベンチマークでは、エージェントが待つ時間を測定します。ディスパッチの最低時間(list_message_types は約 1 マイクロ秒)、リクエストの構築に使われるメタデータの参照、そして 2 つのバッチツールを並べて測定します。
知っておくべき結果は、この 2 つの非対称性です。
validate_records はすべてのレコードをチェックするため、バッチサイズに対して線形に処理時間が増えます。
一方、generate_message は、既定の acmt.007.001.05 のような単一アカウント向けのメッセージタイプでは、最初のレコードだけをレンダリングします。34 個のテンプレートのうち 27 個はこのように動作します。そのため、100 件のレコードを検証してメッセージを生成する場合、検証に約 260 ms、生成に 6 ms かかり、100 件ではなく 1 件のメッセージが返されます。
これは ISO 20022 の正しい動作ですが、バッチ処理では実際に注意が必要です。そのため、ベンチマークでは処理時間とともに出力サイズも表示します。入力を増やしてもバイト数が変わらない場合、バッチの残りの部分がレンダリングされていないことがわかります。詳しくは docs/benchmarks.md を参照してください。
ドキュメント
- レンダリング済みドキュメント(API リファレンス、ADR、ベンチマーク、変更履歴): sebastienrousseau.github.io/acmt001-mcp
- 実行可能なサンプル:
examples/mcp_tools.py - アーキテクチャ上の決定: docs/adr/
- リリース履歴: CHANGELOG.md
- コアライブラリのドキュメント: acmt001.com
- MCP 仕様: modelcontextprotocol.io
開発
acmt001-mcp は Poetry と mise を使用します。
git clone https://github.com/sebastienrousseau/acmt001-mcp.git && cd acmt001-mcp
mise install
poetry install
poetry shell
このパッケージはコアの
acmt001ライブラリに依存しています。PyPI に登録されるまでは、先にソースからインストールしてください。pip install "git+https://github.com/sebastienrousseau/acmt001.git"。
Makefile が品質チェック(CI と同じ内容を維持)を統括します。
make check # all gates (REQUIRED before commit)
make test # pytest, 100% line and branch coverage
make lint # ruff + black
make type-check # mypy --strict
make doc-coverage # interrogate, 100% docstrings
make mutate # mutmut over the tool handlers, gated on the score
make docs # Sphinx site, warnings are errors
プロパティベーステスト(Hypothesis)は make test の一部として実行されます。ミューテーションテストで使用する、より軽量なプロファイルを設定するには、HYPOTHESIS_PROFILE=mutation を指定してください。
関連する MCP サーバー
ISO 20022 MCP Suite の一部です。銀行および金融サービス向けの AI エージェントを対象とした、Apache-2.0 ライセンスのオープンソース MCP サーバーです。
| サーバー | 用途 |
|---|---|
pain001-mcp | ISO 20022 の pain.001 支払いファイル(v03~v12、pain.008、SEPA)を生成・検証し、ルールブックをチェック |
pacs008-mcp | ISO 20022 の pacs.008 FI 間クレジット振替を生成、検証、解析、スキームチェックし、2026 年 11 月の住所 lint に対応 |
camt053-mcp | ISO 20022 の camt.053 銀行から顧客向け明細書を解析・照合 — CBPR+/HVPS+ 対応 |
bankstatementparser-mcp | 銀行明細書(BAI2、MT940/MT942、CAMT.053、OFX、CSV)を解析し、構造化された取引データに変換 |
noyalib-mcp | ロスレスな YAML 1.2 の解析、書式設定、検証(Rust、仕様への準拠率 100%) |
MCP Registry
mcp-name: io.github.sebastienrousseau/acmt001-mcp
ライセンス
Apache License, Version 2.0 に基づいてライセンスされています。収録のために提出された貢献も、追加条件なしで上記と同じライセンスが適用されます。
貢献
貢献を歓迎します。貢献ガイドをご覧ください。貢献者の皆さん、ありがとうございます。
謝辞
acmt001 ISO 20022 アカウント管理ライブラリと
Model Context Protocol Python SDK を基盤として構築されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。