Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Generate + XSD-validate ISO 20022 E&I camt messages (camt.056 cancellation, camt.029 resolution).
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"camt-exceptions": {
"command": "uvx",
"args": [
"camt-exceptions"
]
}
}
}ターミナルでこれを実行します
claude mcp add camt-exceptions -- uvx camt-exceptionsプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"camt-exceptions": {
"command": "uvx",
"args": [
"camt-exceptions"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"camt-exceptions": {
"type": "stdio",
"command": "uvx",
"args": [
"camt-exceptions"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント sebastienrousseau で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.0.20)がレジストリに届いたのは34 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Tethered Trust
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Generate and validate ISO 20022 Exceptions & Investigations (E&I) `camt` messages — with an MCP server. Starts with `camt.056` (FI-to-FI Payment Cancellation Request): the message a bank sends to *recall or cancel* a payment it already dispatched — a duplicate, an erroneous amount, a fraud recall. Output is validated against the official bundled XSD before it's returned.
Latest release: v0.0.20:
camt.056+camt.029generation + validation, 4 MCP
tools over stdio, streamable HTTP or SSE, 100% branch coverage, for Python 3.10+. Part of the
ISO 20022 MCP suite. Additional E&I messages (camt.029, camt.026,
camt.027, camt.087) plug into the same engine.
When a payment goes wrong, the fix is an Exceptions & Investigations message — and these are the *least* tooled corner of ISO 20022. camt.056 alone covers the single most common need: "I need to cancel/recall that payment." This library makes it a one-call, schema-valid operation for an agent, with the same depth as the credit-transfer generators elsewhere in the suite.
pip install camt-exceptions
uvx camt-exceptions
MCP client config (e.g. 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
One command line, three transports:
| Command | Transport | Endpoint | Protocol revisions |
|---|---|---|---|
camt-exceptions-mcp | stdio | the client spawns the process | 2026-07-28, 2025-11-25 |
camt-exceptions-mcp --transport streamable-http | Streamable HTTP | http://127.0.0.1:8000/mcp | 2026-07-28 (stateless, server/discover) and 2025-11-25 (initialize, Mcp-Session-Id) on the same endpoint; responses stream as server-sent events, GET opens the server-to-client stream |
camt-exceptions-mcp --transport sse | HTTP+SSE (2024-11-05) | http://127.0.0.1:8000/sse and /messages/ | for clients that still expect the older transport |
--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 scout in both protocol eras and over SSE with the MCP SDK client; see ADR 0001.
{
"mcpServers": { "camt-exceptions": { "url": "http://127.0.0.1:8000/mcp" } } }
list_message_types — List supported E&I message types and names.get_required_fields — Required top-level fields for a message type.generate_message — Generate a validated E&I XML message from a record (validated against the bundled XSD before return).validate_xml — Validate raw XML against a message type's bundled XSD.| Message | Name | Status |
|---|---|---|
camt.056.001.12 | FI to FI Payment Cancellation Request | ✅ |
camt.029.001.14 | Resolution of Investigation | ✅ |
camt.026 | Unable to Apply | planned |
camt.027 | Claim Non-Receipt | planned |
camt.087 | Request to Modify Payment | planned |
Each new message plugs into the same engine: bundle its official XSD + template.xml and register it in MESSAGE_TYPES. Generated output is always XSD-validated before return, so correctness is machine-checked, not asserted.
Note: the payment-status and return messages of the E&I family —
`pacs.002` (Payment Status Report) and `pacs.004` (Payment Return) —
are already generated, XSD-valid, by
pacs008-mcp.
Part of a family of vendor-neutral, Python-native ISO 20022 MCP servers:
iso20022-mcp — unified gateway across the families.pain001-mcp · pacs008-mcp · camt053-mcp · acmt001-mcp — per-family servers.reconcile-mcp — statement/payment reconciliation.examples/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
Licensed under the Apache License, Version 2.0 or the MIT License, at your option. Bundled ISO 20022 message schemas (*.xsd) are © ISO 20022 and redistributed under the ISO 20022 terms; they are the same schemas published at iso20022.org.
mcp-name: io.github.sebastienrousseau/camt-exceptions