← Back to Docs
MCP Integration
Give AI assistants like Claude direct access to your Sirr vault. The @sirrlock/mcp server exposes 13 tools for managing secrets, audit logs, webhooks, and API keys — all from within a conversation.
Installation
npm install -g @sirrlock/mcpOr use npx without a global install — see the configuration examples below.
Configuration
Add Sirr to your project's .mcp.json or ~/.claude/settings.json:
{
"mcpServers": {
"sirr": {
"command": "sirr-mcp",
"env": {
"SIRR_SERVER": "http://localhost:39999",
"SIRR_TOKEN": "your-sirr-master-key"
}
}
}
}Using npx without a global install:
{
"mcpServers": {
"sirr": {
"command": "npx",
"args": ["-y", "@sirrlock/mcp"],
"env": {
"SIRR_SERVER": "http://localhost:39999",
"SIRR_TOKEN": "your-sirr-master-key"
}
}
}
}| Variable | Default | Description |
|---|---|---|
| SIRR_SERVER | http://localhost:39999 | Sirr server URL |
| SIRR_TOKEN | — | Bearer token — must match SIRR_MASTER_KEY on the server |
Available Tools
Secrets
| Tool | Description |
|---|---|
| get_secret(key) | Retrieve a secret value (increments read counter; burns if max_reads reached) |
| push_secret(key, value, ttl_seconds?, max_reads?) | Store a secret with optional expiry and read limit |
| list_secrets() | List all active secrets — metadata only, values never returned |
| delete_secret(key) | Burn a secret immediately, regardless of TTL or read count |
| prune_secrets() | Delete all expired secrets in one sweep |
| health_check() | Verify the Sirr server is reachable and healthy |
Audit
| Tool | Description |
|---|---|
| sirr_audit(since?, action?, limit?) | Query the audit log — secret creates, reads, deletes, and key events |
Webhooks
| Tool | Description |
|---|---|
| sirr_webhook_create(url, events?) | Register a webhook URL; returns ID and signing secret (shown once) |
| sirr_webhook_list() | List all registered webhooks (signing secrets redacted) |
| sirr_webhook_delete(id) | Remove a webhook by ID |
API Keys
| Tool | Description |
|---|---|
| sirr_key_create(label, permissions, prefix?) | Create a scoped API key; raw key returned once — save it |
| sirr_key_list() | List all scoped API keys (key hashes never returned) |
| sirr_key_delete(id) | Delete an API key by ID |
Inline Secret References
Reference secrets inline in any prompt using the sirr: prefix:
"Use sirr:DATABASE_URL to run a migration"
"Deploy with sirr:DEPLOY_TOKEN"Claude automatically fetches the secret from the vault when it sees the sirr:KEYNAME pattern.
Security Notes
- Claude only sees secret values when you explicitly ask it to fetch via
get_secret list_secretsreturns metadata only — values are never included- Set
max_reads=1on any secret shared for a single AI session - The MCP server never logs secret values
- Use HTTPS when
SIRR_SERVERpoints to a remote host — plain HTTP transmits secrets unencrypted
Troubleshooting
| Symptom | Fix |
|---|---|
| Sirr 401 | SIRR_TOKEN doesn't match SIRR_MASTER_KEY — verify both values match exactly |
| Sirr 402 | Free-tier limit of 100 secrets reached — delete unused secrets or add a license key |
| Secret not found | Secret expired, was burned, or key was mistyped — re-push if needed |
| Did not respond within 10s | Sirr server is unreachable — check SIRR_SERVER URL and run sirr-mcp --health |
| MCP server not found | sirr-mcp not on PATH — install globally or use the npx config variant |
Open source
The MCP server is open source under the MIT license. Bug reports, feature requests, and pull requests are welcome.
github.com/sirrlock/mcp →