The NSA CSI MCP compliance mapping claims structural coverage of every NSA-enumerated concern and recommendation (U/OO/6030316-26, May 2026) and anchors each claim to a substrate feature. This page answers the follow-up question a reviewer should ask: what automated check actually exercises each control? Every cell below names the exact test (file::test_name), the CI workflow job, and/or the do-1461 live-fleet harness check id. Where no automated check exists, the cell says so — honestly.
Each control row carries up to three independent evidence columns. A control is only as verified as the strongest check you can run yourself.
tests/ or in-module #[cfg(test)] blocks, run by AI_MEMORY_NO_CONFIG=1 cargo test. Cited as file::test_name; reproduce any single row with cargo test <test_name>..github/workflows/*.yml: CI · check (full test suite + the Security audit cargo audit step), Fuzz Testing · fuzz, token-budget · budget, Bench · bench, Batman Mode acceptance gate · rust-integration / bash-integration / surface-stability.deploy/do-1461/test/run.sh (groups regression / crypto / federation / zerotouch / a2a / ai_nhi / nsa_gaps / curator), deploy/do-1461/validate/run.sh, and deploy/do-1461/test/encrypted_legs.sh. Cited rows reference the run artifacts test-20260609T161203Z.tsv (150/150 PASS), verify-20260609T133956Z.tsv (119/119 PASS), and encrypted-legs-20260608T205716Z.tsv under .local-runs/do-1461/reports/. See the reference architecture page for the fleet itself.No coverage is claimed that cannot be cited by name. Some mitigations are deployed on the reference fleet purely by configuration (named constants and env battery in deploy/do-1461/provision/lib.sh + provision/46_batman.sh) but have no live-fleet harness PASS row exercising them end-to-end. Those cells say config-asserted — the control is wired and unit-tested, but the fleet harness does not (yet) prove it over the wire. The seven such mitigations are listed in full below the matrix.
| NSA concern | Unit / integration tests (file::test_name) | CI gate (workflow · job) | do-1461 live-fleet harness check |
|---|---|---|---|
| a · Access control |
|
CI · check |
harness PASS
|
| b · Insecure context or data serialization |
|
Fuzz Testing · fuzzCI · check |
harness PASS
|
| c · Poor approval workflows |
|
CI · check |
config-asserted Pending-actions HMAC-mandatory dispatch — config-asserted ( provision/lib.sh) — no harness PASS row. |
| d · Token or session security |
|
CI · check |
harness PASS
|
| e · Misconfigurations and poor implementation |
|
Batman Mode acceptance gate · rust-integration / bash-integration / surface-stabilityCI · check |
harness PASS
|
| f · Inconsistent behaviors |
|
CI · check |
config-asserted 409 optimistic-concurrency conflict — config-asserted ( provision/lib.sh) — no harness PASS row. |
| g · Poor or missing audit logs |
|
CI · check |
harness PASS
|
| h · Denial of service and fatigue-based techniques |
|
token-budget · budgetCI · check |
config-asserted K8 quota surface / 2 MB body cap / bounded federation DLQ — config-asserted ( provision/lib.sh) — no harness PASS row. |
| i · Tool parameter injection (real-world) |
|
Fuzz Testing · fuzzCI · check |
config-asserted Malformed-payload RequestValidator rejection — config-asserted (provision/lib.sh) — no harness PASS row. |
| j · Tool invocation path confusion (real-world) |
|
CI · check |
config-asserted MCP TOFU Ed25519-signed serverInfo at initialize — config-asserted ( provision/lib.sh) — no harness PASS row (the fleet harness probes the HTTP surface; MCP stdio initialize is not exercised by run.sh). |
| NSA recommendation | Unit / integration tests (file::test_name) | CI gate (workflow · job) | do-1461 live-fleet harness check |
|---|---|---|---|
| a · Choose supported MCP projects when possible | Process control (maintenance + advisory channel), not a test target. Dependency hygiene is mechanically gated: the Security audit step runs cargo audit against the RustSec advisory DB. |
CI · check (Security audit step) |
not harness-applicable Release/registry process — no fleet probe. |
| b · Design for boundaries |
|
CI · check |
harness PASS
|
| c · Validate parameters | Same named tests as concern (i): src/validate.rs::tests::test_validate_id_rejects_path_traversal_1051, ::test_namespace_rejects_dot_segments_redteam_240, ::test_agent_id_rejects_path_traversal_1251; plus tests/per_namespace_quota.rs::global_sentinel_is_backwards_compat_landing_zone (schema-v50 quota dimension, #1156). |
Fuzz Testing · fuzzCI · check |
config-asserted Malformed-payload RequestValidator rejection — config-asserted (provision/lib.sh) — no harness PASS row. |
| d · Constrain and sandbox tool execution |
|
CI · check |
no harness row The Track G hook pipeline is default-off and is not enabled on the do-1461 fleet — no harness PASS row; not claimed. |
| e · Sign and verify MCP messages |
|
CI · check |
harness PASS
|
| f · Filter and monitor output pipelines and chained execution |
|
CI · check |
harness PASS
|
| g · Instrument for logging and detection |
|
CI · check |
harness PASS nsa_gaps::signed_events_chain_ok[peer] ×9 (audit chain live).config-asserted /metrics reachability — config-asserted (provision/lib.sh) — no harness PASS row. |
| meta · Track and patch MCP-related vulnerabilities | cargo audit against the RustSec advisory database (Security audit step, .github/workflows/ci.yml), Cargo.lock dependency pinning. |
CI · check (Security audit step) |
not harness-applicable Process control — no fleet probe. |
| meta · Scan local network for open or vulnerable MCP servers | no automated check Operator-side network scanning is out of substrate scope (per the honest boundaries). The substrate-side mitigation (first-party verify-* CLI family, not MCP-Inspector) is exercised by the concern-(g) tests above. |
— | not harness-applicable |
These mitigations are wired into the reference fleet by configuration (named constants + env battery in deploy/do-1461/provision/lib.sh and provision/46_batman.sh) and are unit-/integration-tested in the repo, but the do-1461 live-fleet harness has no PASS row that exercises them end-to-end over the wire. Listing them here is the point: a reviewer should not have to discover an evidence gap by grepping TSVs.
RequestValidator rejection (concerns i, rec c)/metrics reachability (rec g)Each carries the named unit/integration tests cited in its matrix row — the gap is specifically the absence of a live-fleet harness probe, not the absence of any automated check.
Every citation on this page is reproducible from a fresh checkout of release/v0.7.0:
AI_MEMORY_NO_CONFIG=1 cargo test <test_name> — e.g. cargo test http_put_with_stale_if_match_returns_409_with_envelope..github/workflows/*.yml; job names cited verbatim.deploy/do-1461/README.md (make seed up provision validate test); the check ids cited here are the group::test columns of the emitted TSV/JSON reports.Feature-level mapping (what addresses each control, with capability_id + file anchors) lives on the companion page: NSA CSI MCP Security Compliance. Reproducibility contracts for the fleet, bench, and full-suite baselines live at Reproducible baselines.