What the model sees
What the model does not see
- Raw plaintext secret values
- Any stdout / stderr text from subprocesses spawned by
use_secret - The filesystem path of mounted secrets
- Decrypted zero-knowledge payloads
- Bearer session tokens, private keys, or any auth material
- The host’s real environment variables
Enforcement
Why no subprocess output
Earlier designs returned redacted subprocess output to the model. Redaction was best-effort string matching on the literal secret bytes and could not catch transformed forms — base64-encoded output, URL-encoded output, JSON-escaped output, output split across chunks. Any of those vectors leaked the secret to the model. The current design drops subprocess output entirely. If the agent needs to inspect output, route it through a separate audited channel (write to a file viamount_secret, then read it explicitly via a tool the model is allowed to call). This collapses the redaction-bypass surface to zero.
Zero-knowledge items
For zero-knowledge items, the MCP server still relies on the local daemon for decrypt operations. The MCP server itself never holds the profile root key — it asks the daemon to decrypt and inject. This means the MCP server’s trust tier matches the daemon’s (Tier 1). A compromised MCP server can ask the daemon to decrypt items it has permissions for, but it can’t extract the root key or decrypt items it lacks permission for.Error responses
Tool errors are returned as JSON text content with the shape:error is always present. code, hint, and meta are included when the underlying failure is an AbadgeApiError (an error returned by the control-plane API). Non-API failures (daemon unavailable, filesystem errors, unexpected throws) emit { "error": "..." } only.
LLM integrators can parse the code field for deterministic branching; hint is a human-remediation string.
Permissions
The MCP server can only access items where the configured agent has an explicit permission. Theuse capability (with delivery: env or delivery: file) is the typical grant for MCP. See Permissions and capabilities for the full matrix.