Protected assets
- Account-wide Poppy API key
- Private board/chat/conversation content and identifiers
- Poppy credits and conversation integrity
- Local board/chat allowlist
- Local configuration and audit metadata
Protect the account-wide Poppy credential on the user’s computer, approve exact destinations, minimize content, treat returned material as untrusted, and keep the MCP boundary local.
stdioNo inbound network trust boundary exists because TentaClaw opens no listener.
| Threat | Primary control | Residual risk |
|---|---|---|
| Credential enters model or transcript | Hidden init input, separate owner-protected key file, no key or key path in client configuration | A compromised local user/client can access local process or files |
| Unsafe key/config file | POSIX symlink, type, owner, mode, and size checks; Windows setup applies an owner-only ACL | Administrator/root or later ACL changes |
| Wrong board or chat | Guided explicit selection, fail-closed allowlists, filtered discovery | User can deliberately approve broad access |
| Redirect or destination substitution | HTTPS origin validation, exact host allowlist, redirect denial, fixed API paths | Trusted upstream compromise |
| Credit/state duplication | Poppy POST operations are never retried automatically; tools are marked non-read-only | User/client can intentionally repeat a call |
| Prompt injection in Poppy content | Skills treat output as data and forbid operational obedience | Model may still mishandle persuasive content |
| Oversized/slow response | Request/response limits, streaming response cap, timeout, GET-only bounded retries | Upstream work can occur before the cap is observed |
| Sensitive logging | Metadata-only audit events, generic errors, recursive credential redaction | The local MCP client controls its own transcript/log behavior |
poppy_api_keyContains only the Poppy key. tentaclaw-mcp init writes it after live validation and protects it for the current user.
config.jsonContains non-secret settings and explicit approved destination IDs. New destinations remain denied until setup is rerun.
additional_context.tentaclaw-mcp init with the replacement key and explicit policy.status, doctor, and a disposable six-tool canary before returning to production data.