Atlas / MCP servers / sebastienrousseau / sebastienrousseau-camt-exceptions

sebastienrousseau-camt-exceptionsSAFE

mcp/sebastienrousseau/camt-exceptions

XSD-valid ISO 20022 Exceptions & Investigations (E&I) generation -- camt.056 FI-to-FI Payment Cancellation Request -- with an MCP server.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
—
Transport
stdio · streamable-http
License
Apache-2.0
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/sebastienrousseau/camt-exceptions/actions) [](https://pypi.org/project/camt-exceptions/) [](https://glama.ai/mcp/servers/sebastienrousseau/camt-exceptions) [](https://scorecard.dev/viewer/?push_pull=true&repo=github.com/sebastienrousseau/camt-exceptions) [](LICENSE) [](https://pypi.org/project/camt-exceptions/)

Generate and validate ISO 20022 Exceptions & Investigations (E&I) `camt` messages — with an [MCP][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.029 generation + 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.

Why E&I

When a payment goes wrong, the fix is an Exceptions & Investigations message — and these

Read from source at commit a59f10b146a9OBSERVED · 2026-10-10
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code (pypi)
claude mcp add camt-exceptions -- None camt-exceptions==0.0.20
03

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (2 observation(s))
Shell
declared (1 observation(s))
Dependencies
pinned
Secrets in source
none-found

Findings (8)

MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
camt_exceptions/_mcp_compat.py:96
base = importlib.import_module(path)
LOWInventory / provenance · inv.hidden_file · CWE-1104
.pre-commit-config.yaml
.pre-commit-config.yaml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
.github/workflows/mcp-inspect.yml:41
curl -sf -o /dev/null -X POST http://127.0.0.1:8000/mcp \
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
.github/workflows/mcp-inspect.yml:47
run: npx -y @modelcontextprotocol/inspector --cli http://127.0.0.1:8000/mcp --transport http --method tools/list
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
.github/workflows/mcp-inspect.yml:50
run: npx -y @modelcontextprotocol/inspector --cli http://127.0.0.1:8001/sse --transport sse --method tools/list
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:87
| `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 s
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
README.md:88
| `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 |
LOWInventory / provenance · mcp.no_tools_extracted · CWE-1104
server.json
Why it matters. the tool list is enumerated at runtime by tools/list, not declared in source
Fix. the page says so rather than showing an empty table

Gates applied: no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha a59f10b146a9full audit observations/trust-audit/mcp-server/sebastienrousseau__camt-exceptions.json · Report an issue / request a re-scan
04

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-10a59f10b146a9SAFEB89first audit
05

Questions

What is the sebastienrousseau-camt-exceptions MCP server?

XSD-valid ISO 20022 Exceptions & Investigations (E&I) generation -- camt.056 FI-to-FI Payment Cancellation Request -- with an MCP server.

Is sebastienrousseau-camt-exceptions safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does sebastienrousseau-camt-exceptions need?

No credential environment variables were found in its source, so it appears to need none.

How does sebastienrousseau-camt-exceptions run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on PyPI as camt-exceptions.

How current is this page?

The grade is for one exact copy of the source (a59f10b146a9), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement