Secrets management is a critical security layer in Argus MCP. Sensitive values like API keys, tokens, and credentials are stored encrypted and referenced indirectly in configuration — they never appear in plaintext in config files or logs.
How It Works
- Secrets are stored via
argus-mcp secret set <name> <value> - Config files reference secrets with the
secret:prefix:token: "secret:my_api_key" - At startup, Argus resolves all
secret:references from the configured provider - Log redaction automatically masks resolved secret values in all output
Providers
| Provider | Storage | Best For |
|---|---|---|
file (default) | Fernet-encrypted JSON at ~/.argus/secrets.enc | Development, single-machine |
env | Environment variables | CI/CD, containers |
keyring | OS keychain (macOS Keychain, GNOME Keyring, Windows Credential Locker) | Desktop development |
Note:
For the full configuration reference including provider setup, strict mode, resolution process, SecretStore API, and CLI commands, see Configuration — Secrets Management.
Security Properties
- Encryption at rest: File provider uses Fernet (AES-128-CBC + HMAC-SHA256)
- Log redaction: All resolved secret values are automatically masked in logs and audit events
- Strict mode: When
strict: true, missing secrets cause a startup failure instead of a warning - No plaintext storage: Secret values never appear in
config.yamlor environment when using thesecret:reference pattern
Recommendations
- Use the
fileprovider withstrict: truefor production - Rotate secrets regularly using
argus-mcp secret setto overwrite - Use
keyringprovider on developer workstations for OS-level protection - Enable audit logging to track secret resolution events