feat(mcp-proxy): close customer cold path#9
Merged
Conversation
Record verified Runtime Gate ALLOW/BLOCK decisions in local evidence, add backend registration and doctor preflight commands, and document the customer quickstart from init through offline verification. Includes tests for evidence export, backend preflight, registration edge cases, and receipt verification. Implemented with assistance from Codex.
Keep shutil.which results as strings in the Paperclip doctor so tests and show-paths output preserve the resolved path instead of normalizing POSIX-like fake paths through pathlib on Windows. Implemented with assistance from Codex.
Honor explicit HOME overrides in the Paperclip doctor and make POSIX mode assertions conditional in register tests, since Windows does not preserve chmod semantics in the same way. Implemented with assistance from Codex.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Close the MCP Proxy customer cold path for P4/P7: a developer can now go from local proxy setup to an offline-verified evidence bundle through the proxy CLI path, without claiming production parity beyond the controlled MCP Proxy adapter path.
Source branch:
feat/mcp-proxy-cold-pathCommits:
f526571 feat(mcp-proxy): close customer cold path64cce6d fix(paperclip): preserve which paths on Windows20f1623 fix(ci): handle Windows path compatibilityWhat changed
ALLOW/BLOCKdecisions now record verifieddecision_receipt/2metadata in local evidence and can export bundles with signed DecisionReceipts attached.agentveil-mcp-proxy doctor --check-backendadds opt-in read-only backend preflight for health + onboarding status while preserving offlinedoctorby default.agentveil-mcp-proxy registerbridges local proxy identity creation to backend registration while preserving the proxy identity format and encrypted-at-rest key file.docs/MCP_PROXY_QUICKSTART.mddocuments the customer cold path from install/init through export and offline verification, including explicit boundary statements.shutil.which()path strings, honors explicitHOMEoverrides for dry-run tests, and Windows-incompatible POSIX chmod assertions are gated to POSIX platforms.What this PR is not claiming
agentveil.devbackend signed the v1.2 internal proof harness artifact.human_approval_receipt/2to proxy bundles.execution_receipt/2for proxy-forwarded downstream MCP calls.Tests run in the clean-branch gate
python3 -m pytest tests/test_mcp_proxy_cli.py tests/test_mcp_proxy_runtime_gate.py tests/test_mcp_proxy_evidence.py tests/test_mcp_proxy_proof.py tests/test_mcp_proxy_approval.py tests/test_mcp_proxy_passthrough.py -q->274 passed, 1 skippedpython3 -m pytest tests/test_mcp_proxy_circuit_breaker.py tests/test_mcp_proxy_multi_instance.py tests/test_mcp_proxy_policy.py tests/test_mcp_proxy_classification.py -q->115 passedpython3 -m pytest tests/test_paperclip_doctor.py -q->28 passedpython3 -m pytest tests/test_mcp_proxy_cli.py -q -k "register or doctor"->25 passed, 28 deselectedgit diff --check-> cleanagentveil_mcp_proxy/,docs/, and MCP Proxy tests -> only the explicit denial in the quickstart's "does NOT prove" section.Remaining non-blocking gaps
human_approval_receipt/2integration for proxy approvals remains a future design slice.agentveil.devwas not run in this PR.decision_receipt/3replay hardening remain future slices.Notes
This PR intentionally excludes the unrelated
AGENTS.mdhardening commit from the earlier working branch.