agentveil-mcp-proxy 0.7.19__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agentveil_mcp_proxy-0.7.19/LICENSE +71 -0
- agentveil_mcp_proxy-0.7.19/MANIFEST.in +4 -0
- agentveil_mcp_proxy-0.7.19/PKG-INFO +388 -0
- agentveil_mcp_proxy-0.7.19/README.md +358 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/__init__.py +188 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/__main__.py +5 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/approval/__init__.py +44 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/approval/headless.py +217 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/approval/manager.py +471 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/approval/notification.py +74 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/approval/server.py +481 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/circuit_breaker.py +202 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/classification.py +290 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/cli.py +2236 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/evidence/__init__.py +63 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/evidence/proof.py +513 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/evidence/store.py +895 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/identity.py +166 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/passthrough.py +1457 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/policy.py +926 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/quickstart_filesystem.py +150 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/runtime_gate.py +417 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy/tool_schema_validation.py +143 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy.egg-info/PKG-INFO +388 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy.egg-info/SOURCES.txt +46 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy.egg-info/dependency_links.txt +1 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy.egg-info/entry_points.txt +2 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy.egg-info/requires.txt +6 -0
- agentveil_mcp_proxy-0.7.19/agentveil_mcp_proxy.egg-info/top_level.txt +1 -0
- agentveil_mcp_proxy-0.7.19/docs/MCP_PROXY_RELEASE_ACCEPTANCE.md +75 -0
- agentveil_mcp_proxy-0.7.19/pyproject.toml +49 -0
- agentveil_mcp_proxy-0.7.19/scripts/mcp_proxy_release_acceptance.py +432 -0
- agentveil_mcp_proxy-0.7.19/setup.cfg +4 -0
- agentveil_mcp_proxy-0.7.19/tests/test_bundle_verifier_v3.py +244 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_approval.py +1610 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_circuit_breaker.py +777 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_classification.py +311 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_cli.py +1510 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_evidence.py +835 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_multi_instance.py +233 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_passthrough.py +1643 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_passthrough_concurrent.py +564 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_policy.py +535 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_proof.py +1117 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_runtime_gate.py +942 -0
- agentveil_mcp_proxy-0.7.19/tests/test_mcp_proxy_tool_surface.py +184 -0
- agentveil_mcp_proxy-0.7.19/tests/test_proxy_packaging.py +38 -0
- agentveil_mcp_proxy-0.7.19/tests/test_strict_bundle_verifier.py +228 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Business Source License 1.1
|
|
2
|
+
|
|
3
|
+
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved.
|
|
4
|
+
"Business Source License" is a trademark of MariaDB Corporation Ab.
|
|
5
|
+
|
|
6
|
+
Parameters
|
|
7
|
+
|
|
8
|
+
Licensor: Agent Veil Protocol Contributors
|
|
9
|
+
Licensed Work: AgentVeil MCP Proxy
|
|
10
|
+
The Licensed Work is (c) 2026 Agent Veil Protocol Contributors.
|
|
11
|
+
Additional Use Grant: You may make production use of the Licensed Work, provided
|
|
12
|
+
that your use does not include offering the Licensed Work,
|
|
13
|
+
or a modified version of it, to third parties on a hosted
|
|
14
|
+
or embedded basis as part of a product or service that
|
|
15
|
+
competes with AgentVeil's paid products or services.
|
|
16
|
+
|
|
17
|
+
For purposes of this license, a "Competing Service" is a
|
|
18
|
+
commercial product or service that provides MCP tool-call
|
|
19
|
+
proxying, agent action control, approval routing, or local
|
|
20
|
+
evidence/audit functionality substantially similar to the
|
|
21
|
+
Licensed Work.
|
|
22
|
+
Change Date: 2029-05-30
|
|
23
|
+
Change License: Apache License, Version 2.0
|
|
24
|
+
|
|
25
|
+
For information about alternative licensing arrangements for the Licensed Work,
|
|
26
|
+
please contact the Licensor.
|
|
27
|
+
|
|
28
|
+
Notice
|
|
29
|
+
|
|
30
|
+
Business Source License 1.1
|
|
31
|
+
|
|
32
|
+
Terms
|
|
33
|
+
|
|
34
|
+
The Licensor hereby grants you the right to copy, modify, create derivative
|
|
35
|
+
works, redistribute, and make non-production use of the Licensed Work. The
|
|
36
|
+
Licensor may make an Additional Use Grant, above, permitting limited production
|
|
37
|
+
use.
|
|
38
|
+
|
|
39
|
+
Effective on the Change Date, or the fourth anniversary of the first publicly
|
|
40
|
+
available distribution of a specific version of the Licensed Work under this
|
|
41
|
+
License, whichever comes first, the Licensor hereby grants you rights under the
|
|
42
|
+
terms of the Change License, and the rights granted in the paragraph above
|
|
43
|
+
terminate.
|
|
44
|
+
|
|
45
|
+
If your use of the Licensed Work does not comply with the requirements currently
|
|
46
|
+
in effect as described in this License, you must purchase a commercial license
|
|
47
|
+
from the Licensor, its affiliated entities, or authorized resellers, or you must
|
|
48
|
+
refrain from using the Licensed Work.
|
|
49
|
+
|
|
50
|
+
All copies of the original and modified Licensed Work, and derivative works of
|
|
51
|
+
the Licensed Work, are subject to this License. This License applies separately
|
|
52
|
+
for each version of the Licensed Work and the Change Date may vary for each
|
|
53
|
+
version of the Licensed Work released by Licensor.
|
|
54
|
+
|
|
55
|
+
You must conspicuously display this License on each original or modified copy of
|
|
56
|
+
the Licensed Work. If you receive the Licensed Work in original or modified form
|
|
57
|
+
from a third party, the terms and conditions set forth in this License apply to
|
|
58
|
+
your use of that work.
|
|
59
|
+
|
|
60
|
+
Any use of the Licensed Work in violation of this License will automatically
|
|
61
|
+
terminate your rights under this License for the current and all other versions
|
|
62
|
+
of the Licensed Work.
|
|
63
|
+
|
|
64
|
+
This License does not grant you any right in any trademark or logo of Licensor
|
|
65
|
+
or its affiliates (provided that you may use a trademark or logo of Licensor as
|
|
66
|
+
expressly required by this License).
|
|
67
|
+
|
|
68
|
+
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN
|
|
69
|
+
"AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS
|
|
70
|
+
OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
71
|
+
FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
|
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: agentveil-mcp-proxy
|
|
3
|
+
Version: 0.7.19
|
|
4
|
+
Summary: Source-available MCP transport proxy for AgentVeil Runtime Gate, approval routing, and local evidence
|
|
5
|
+
Author-email: Oleg Boiko <ob@agentveil.dev>
|
|
6
|
+
Maintainer-email: Oleg Boiko <ob@agentveil.dev>
|
|
7
|
+
License-Expression: BUSL-1.1
|
|
8
|
+
Project-URL: Homepage, https://agentveil.dev
|
|
9
|
+
Project-URL: Documentation, https://github.com/agentveil-protocol/agentveil-sdk/tree/main/packages/agentveil-mcp-proxy#readme
|
|
10
|
+
Project-URL: Repository, https://github.com/agentveil-protocol/agentveil-sdk
|
|
11
|
+
Project-URL: Issues, https://github.com/agentveil-protocol/agentveil-sdk/issues
|
|
12
|
+
Keywords: ai,agents,agent-control,runtime-gate,mcp,mcp-proxy,approval,evidence
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Requires-Dist: agentveil<0.8,>=0.7.19
|
|
25
|
+
Requires-Dist: mcp>=1.0.0
|
|
26
|
+
Provides-Extra: test
|
|
27
|
+
Requires-Dist: pytest>=8.0.0; extra == "test"
|
|
28
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == "test"
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
# agentveil-mcp-proxy
|
|
32
|
+
|
|
33
|
+
MCP transport proxy for **AgentVeil Protocol** - Action Control Plane that
|
|
34
|
+
wraps a downstream MCP server with runtime decision gating, human approval
|
|
35
|
+
routing, durable signed evidence, and replay defense. It is the intercepting
|
|
36
|
+
transport adapter for IDE MCP clients such as Claude Desktop, Cursor, Cline,
|
|
37
|
+
Windsurf, and VS Code.
|
|
38
|
+
|
|
39
|
+
This is one integration adapter for AVP. The trust/control/evidence engine and
|
|
40
|
+
identity foundation live in the core `agentveil` SDK; this package is the
|
|
41
|
+
MCP-transport adapter.
|
|
42
|
+
|
|
43
|
+
- **Status:** stdio passthrough for one downstream MCP server per proxy
|
|
44
|
+
instance. Encrypted identity by default, durable approval evidence, signed
|
|
45
|
+
receipts, offline bundle verification.
|
|
46
|
+
- **Package:** distributed separately as `agentveil-mcp-proxy`. Console script
|
|
47
|
+
`agentveil-mcp-proxy` is preserved.
|
|
48
|
+
- **License:** source-available under the Business Source License 1.1. See
|
|
49
|
+
[`LICENSE`](LICENSE).
|
|
50
|
+
|
|
51
|
+
## Install
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pip install agentveil-mcp-proxy
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
This installs the separately packaged `agentveil-mcp-proxy` console script.
|
|
58
|
+
The core `agentveil` SDK is installed automatically as a dependency. If your
|
|
59
|
+
environment already pins `agentveil`, keep that pin and install
|
|
60
|
+
`agentveil-mcp-proxy` alongside it.
|
|
61
|
+
|
|
62
|
+
## Quick Start
|
|
63
|
+
|
|
64
|
+
For the full step-by-step customer cold path (install → init → doctor →
|
|
65
|
+
configure downstream → run → export evidence → offline verify) and the
|
|
66
|
+
honest list of what the bundle currently does and does not prove, see
|
|
67
|
+
[`docs/MCP_PROXY_QUICKSTART.md`](../../docs/MCP_PROXY_QUICKSTART.md).
|
|
68
|
+
|
|
69
|
+
The short form is:
|
|
70
|
+
|
|
71
|
+
Create a local proxy identity, config, and control grant:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
agentveil-mcp-proxy init
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
By default `init` creates an encrypted identity. Provide a passphrase
|
|
78
|
+
interactively, via `--passphrase-file`, or via the `AVP_PROXY_PASSPHRASE`
|
|
79
|
+
environment variable. See
|
|
80
|
+
[Operations: Security trade-offs by passphrase source][ops-passphrase].
|
|
81
|
+
|
|
82
|
+
Validate the local setup:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
agentveil-mcp-proxy doctor
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
For a local first-run without installing another MCP server, configure the
|
|
89
|
+
built-in sandboxed filesystem downstream:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
agentveil-mcp-proxy init --quickstart-filesystem ./sandbox
|
|
93
|
+
agentveil-mcp-proxy doctor --full
|
|
94
|
+
agentveil-mcp-proxy smoke
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
For a real downstream server, write `downstream.command` and `downstream.args`
|
|
98
|
+
with the helper:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
agentveil-mcp-proxy downstream set \
|
|
102
|
+
--name filesystem \
|
|
103
|
+
--command npx \
|
|
104
|
+
--arg -y \
|
|
105
|
+
--arg @modelcontextprotocol/server-filesystem \
|
|
106
|
+
--arg /Users/me/work
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Then run:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
agentveil-mcp-proxy run
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
The proxy reads stdio from your MCP client, classifies tool calls, evaluates
|
|
116
|
+
them through AVP Runtime Gate, routes approval prompts to a local browser UI
|
|
117
|
+
when needed, persists durable signed evidence, and forwards approved calls to
|
|
118
|
+
the downstream server. Raw MCP arguments, prompts, outputs, tokens, source code,
|
|
119
|
+
secrets, and private logs remain local by default; Runtime Gate receives only
|
|
120
|
+
privacy-filtered metadata and hashes needed for the decision. See
|
|
121
|
+
[Data Handling](../../docs/DATA_HANDLING.md).
|
|
122
|
+
|
|
123
|
+
### Supported invocation paths
|
|
124
|
+
|
|
125
|
+
| Command | Status |
|
|
126
|
+
|---|---|
|
|
127
|
+
| `agentveil-mcp-proxy run` | **canonical** - console script passthrough mode |
|
|
128
|
+
| `python3 -m agentveil_mcp_proxy run` | supported - module form |
|
|
129
|
+
|
|
130
|
+
## Configure Your MCP Client
|
|
131
|
+
|
|
132
|
+
Instead of pointing your IDE directly at a downstream MCP server, point the IDE
|
|
133
|
+
at `agentveil-mcp-proxy`. The proxy reads the actual downstream command from
|
|
134
|
+
`~/.avp/mcp-proxy/config.json` and wraps that server with Runtime Control Layer
|
|
135
|
+
checks.
|
|
136
|
+
|
|
137
|
+
If you installed into a virtual environment, point `command` at the full path of
|
|
138
|
+
`agentveil-mcp-proxy` inside that environment (`which agentveil-mcp-proxy`).
|
|
139
|
+
|
|
140
|
+
### Claude Desktop
|
|
141
|
+
|
|
142
|
+
`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS, or
|
|
143
|
+
`%APPDATA%/Claude/claude_desktop_config.json` on Windows:
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"mcpServers": {
|
|
148
|
+
"filesystem-gated": {
|
|
149
|
+
"command": "agentveil-mcp-proxy",
|
|
150
|
+
"args": ["run"]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
The proxy reads downstream server config from
|
|
157
|
+
`~/.avp/mcp-proxy/config.json`:
|
|
158
|
+
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"downstream": {
|
|
162
|
+
"name": "filesystem",
|
|
163
|
+
"command": "npx",
|
|
164
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/work"]
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Cursor
|
|
170
|
+
|
|
171
|
+
`.cursor/mcp.json` in your project root:
|
|
172
|
+
|
|
173
|
+
```json
|
|
174
|
+
{
|
|
175
|
+
"mcpServers": {
|
|
176
|
+
"github-gated": {
|
|
177
|
+
"command": "agentveil-mcp-proxy",
|
|
178
|
+
"args": ["run"]
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
`~/.avp/mcp-proxy/config.json`:
|
|
185
|
+
|
|
186
|
+
```json
|
|
187
|
+
{
|
|
188
|
+
"downstream": {
|
|
189
|
+
"name": "github",
|
|
190
|
+
"command": "github-mcp-server",
|
|
191
|
+
"args": []
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Windsurf
|
|
197
|
+
|
|
198
|
+
`~/.codeium/windsurf/mcp_config.json`:
|
|
199
|
+
|
|
200
|
+
```json
|
|
201
|
+
{
|
|
202
|
+
"mcpServers": {
|
|
203
|
+
"filesystem-gated": {
|
|
204
|
+
"command": "agentveil-mcp-proxy",
|
|
205
|
+
"args": ["run"]
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
`~/.avp/mcp-proxy/config.json`:
|
|
212
|
+
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"downstream": {
|
|
216
|
+
"name": "filesystem",
|
|
217
|
+
"command": "npx",
|
|
218
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/work"]
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### VS Code (Copilot)
|
|
224
|
+
|
|
225
|
+
`.vscode/mcp.json` in your workspace:
|
|
226
|
+
|
|
227
|
+
```json
|
|
228
|
+
{
|
|
229
|
+
"servers": {
|
|
230
|
+
"filesystem-gated": {
|
|
231
|
+
"command": "agentveil-mcp-proxy",
|
|
232
|
+
"args": ["run"]
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
`~/.avp/mcp-proxy/config.json`:
|
|
239
|
+
|
|
240
|
+
```json
|
|
241
|
+
{
|
|
242
|
+
"downstream": {
|
|
243
|
+
"name": "filesystem",
|
|
244
|
+
"command": "npx",
|
|
245
|
+
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/work"]
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Any MCP Client (generic stdio)
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
agentveil-mcp-proxy run
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## Environment Variables
|
|
257
|
+
|
|
258
|
+
| Variable | Default | Description |
|
|
259
|
+
|---|---|---|
|
|
260
|
+
| `AVP_HOME` | `~/.avp` | Override the proxy home directory. Identity, config, control grant, and evidence DB live here. |
|
|
261
|
+
| `AVP_PROXY_PASSPHRASE` | (unset) | Encrypted-identity passphrase. **See [Security trade-offs by passphrase source][ops-passphrase]** - env vars can leak through `/proc/<pid>/environ` and `ps eww`; prefer `--passphrase-file` for automated and CI setups. |
|
|
262
|
+
|
|
263
|
+
## Built-In Policy Packs
|
|
264
|
+
|
|
265
|
+
`init --policy-pack <name>` selects a starter pack:
|
|
266
|
+
|
|
267
|
+
| Pack | Default behavior |
|
|
268
|
+
|---|---|
|
|
269
|
+
| `default` | All tool calls forwarded to AVP Runtime Gate. |
|
|
270
|
+
| `github` | Reads allowed; writes forwarded to Runtime Gate; destructive verbs (`delete_*`, `revoke_*`, `destroy_*`, `drop_*`, `purge_*`, `remove_*`) require approval. |
|
|
271
|
+
| `filesystem` | Reads allowed; writes require approval; destructive verbs (`delete_*`, `purge_*`, `truncate_*`, `wipe_*`, `format_*`, `rm`, `rmdir_*`, `unlink_*`, `clean_*`) blocked. |
|
|
272
|
+
| `shell` | All shell tool calls require approval. |
|
|
273
|
+
|
|
274
|
+
Customize via the `policy.rules[]` field in
|
|
275
|
+
`~/.avp/mcp-proxy/config.json`. Built-in packs are starter templates, not
|
|
276
|
+
exhaustive; review patterns for your specific downstream server.
|
|
277
|
+
|
|
278
|
+
## CLI Commands
|
|
279
|
+
|
|
280
|
+
| Command | Purpose |
|
|
281
|
+
|---|---|
|
|
282
|
+
| `init` | Create encrypted identity, config, and control grant. |
|
|
283
|
+
| `init --quickstart-filesystem <path>` | Configure the built-in sandboxed filesystem downstream for local first-run. |
|
|
284
|
+
| `doctor` | Validate local files and control grant. |
|
|
285
|
+
| `doctor --check-backend` | Add a read-only preflight that the backend is reachable and the proxy identity is registered. |
|
|
286
|
+
| `doctor --full` | Launch downstream and verify MCP `initialize` / `tools/list`. |
|
|
287
|
+
| `downstream set` | Write downstream MCP server config without hand-editing JSON. |
|
|
288
|
+
| `configure-downstream` | Backward-compatible alias for `downstream set`. |
|
|
289
|
+
| `register` | Register the existing proxy identity with the configured backend. |
|
|
290
|
+
| `smoke` | Launch downstream and run the local MCP smoke check. |
|
|
291
|
+
| `run` | Run stdio passthrough, the proxy mode used by MCP clients. |
|
|
292
|
+
| `reissue-grant` | Refresh the local control grant before expiry. |
|
|
293
|
+
| `export-evidence <path>` | Export durable evidence bundle for offline verification. |
|
|
294
|
+
| `verify <bundle.json>` | Verify a previously exported bundle. |
|
|
295
|
+
| `events list --limit 20` | Print recent privacy-safe evidence records. |
|
|
296
|
+
| `events tail --follow` | Follow privacy-safe evidence records. |
|
|
297
|
+
| `evidence-summary` | Print aggregate local evidence counts. |
|
|
298
|
+
| `events vacuum` / `events --vacuum` | Prune old terminal evidence records. |
|
|
299
|
+
|
|
300
|
+
See [Operations][ops] for full flag reference and headless/CI patterns.
|
|
301
|
+
|
|
302
|
+
Before tagging or publishing MCP Proxy behavior changes, run the release
|
|
303
|
+
acceptance path from [`docs/MCP_PROXY_RELEASE_ACCEPTANCE.md`][release-acceptance].
|
|
304
|
+
It installs the wheel into a clean venv and verifies setup, backend
|
|
305
|
+
registration, stdio passthrough, local approval/retry UX, events, export, and
|
|
306
|
+
offline verification.
|
|
307
|
+
|
|
308
|
+
Setup, registration, doctor, smoke, and event-list commands support
|
|
309
|
+
machine-readable output:
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
agentveil-mcp-proxy init --quickstart-filesystem ./sandbox --json
|
|
313
|
+
agentveil-mcp-proxy register --json
|
|
314
|
+
agentveil-mcp-proxy doctor --full --json
|
|
315
|
+
agentveil-mcp-proxy smoke --json
|
|
316
|
+
agentveil-mcp-proxy events list --json
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
## Evidence And Proof
|
|
320
|
+
|
|
321
|
+
Every approval-gated tool call writes a durable record to a local SQLite
|
|
322
|
+
evidence store (`~/.avp/mcp-proxy/evidence.sqlite`, owner-only). Records are
|
|
323
|
+
hash-chained, fsync'd on write, and reference signed AVP DecisionReceipt
|
|
324
|
+
digests when Runtime Gate authorized the action.
|
|
325
|
+
|
|
326
|
+
Export an evidence bundle for offline verification:
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
agentveil-mcp-proxy export-evidence ./bundle.json
|
|
330
|
+
agentveil-mcp-proxy verify ./bundle.json --trusted-signer-did did:key:...
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
The verifier validates chain integrity, receipt signature against pinned signer
|
|
334
|
+
DIDs, schema, `audit_id` binding, `payload_hash` binding, risk class, and policy
|
|
335
|
+
context hash. See [Operations: Evidence][ops-evidence].
|
|
336
|
+
|
|
337
|
+
## Headless Mode
|
|
338
|
+
|
|
339
|
+
For automation and CI, run without a browser approval UI. Either auto-deny every
|
|
340
|
+
approval-required action, or load a bounded headless policy that pre-approves
|
|
341
|
+
specific `(server, tool, risk_class, payload_hash)` tuples.
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
agentveil-mcp-proxy run --headless --auto-deny
|
|
345
|
+
agentveil-mcp-proxy run --headless --headless-policy ./headless.json
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
See [Operations: Headless][ops-headless].
|
|
349
|
+
|
|
350
|
+
## Operations And Security
|
|
351
|
+
|
|
352
|
+
For full operational depth - passphrase handling, policy override semantics,
|
|
353
|
+
multi-instance deployment, evidence vacuum, identity migration, and security
|
|
354
|
+
trade-offs - see [`docs/MCP_PROXY_OPERATIONS.md`][ops].
|
|
355
|
+
|
|
356
|
+
## Relationship To AVP
|
|
357
|
+
|
|
358
|
+
`agentveil-mcp-proxy` is one integration adapter for Agent Veil Protocol. The
|
|
359
|
+
core trust/control/evidence primitives - Runtime Gate, DecisionReceipt
|
|
360
|
+
verification, controlled-action flow, identity, and audit chain - live in the
|
|
361
|
+
[`agentveil`](../../README.md) SDK. This package is the MCP-transport adapter for
|
|
362
|
+
IDE clients; other adapters exist for direct SDK use, framework integrations
|
|
363
|
+
(CrewAI, LangGraph, AutoGen, OpenAI), AWS Bedrock, and Microsoft AgentMesh.
|
|
364
|
+
|
|
365
|
+
See the top-level [README](../../README.md) for the full integration matrix and
|
|
366
|
+
the [API docs](https://agentveil.dev/docs) for endpoint-level detail.
|
|
367
|
+
|
|
368
|
+
## Roadmap
|
|
369
|
+
|
|
370
|
+
v0.1 ships with these documented limitations targeted for v0.1.1:
|
|
371
|
+
|
|
372
|
+
- **Backend protocol nonce/freshness:** local replay cache mitigates
|
|
373
|
+
same-process replays within a 5-minute window; full protocol fix adds
|
|
374
|
+
backend-issued nonce plus `issued_at` and `expires_at` to
|
|
375
|
+
`decision_receipt/3`.
|
|
376
|
+
- **Windows orphan process containment:** Linux and macOS handle downstream
|
|
377
|
+
orphan cleanup correctly; Windows Job Object assignment has a narrow race
|
|
378
|
+
window during `start()`. Run under a supervisor on Windows in production for
|
|
379
|
+
now.
|
|
380
|
+
- **OS keychain identity storage:** v0.1 uses passphrase-encrypted Argon2id
|
|
381
|
+
identity files. v0.1.1+ adds opt-in macOS Keychain, Linux Secret Service, and
|
|
382
|
+
Windows Credential Manager integration.
|
|
383
|
+
|
|
384
|
+
[ops]: ../../docs/MCP_PROXY_OPERATIONS.md
|
|
385
|
+
[ops-passphrase]: ../../docs/MCP_PROXY_OPERATIONS.md#security-trade-offs-by-passphrase-source
|
|
386
|
+
[ops-evidence]: ../../docs/MCP_PROXY_OPERATIONS.md#local-evidence-storage
|
|
387
|
+
[ops-headless]: ../../docs/MCP_PROXY_OPERATIONS.md#headless-approval-mode
|
|
388
|
+
[release-acceptance]: docs/MCP_PROXY_RELEASE_ACCEPTANCE.md
|