Sirr MCP Server
The Sirr MCP Server enables AI assistants to securely store, retrieve, and manage ephemeral secrets with built-in expiration and access controls.
Secret Management
Store secrets with optional TTL and max read limits (burn-after-read behavior)
Retrieve secrets by key name or ID (increments read counter; auto-deletes at limit)
Check secret metadata (status, read counts, expiry) without consuming a read
List all active secrets — metadata only, no values exposed
Update a secret's value, TTL, or max read count
Delete secrets immediately, regardless of TTL or read count
Trigger a server-side sweep to prune all expired secrets
Secure Sharing
Create burn-after-read share links via sirrlock.com — expire after 1 read or 24 hours, no account required
Monitoring & Auditing
Health check to verify server connectivity
Query audit logs (filter by action, time range) for security monitoring
Register, list, and delete webhooks for events like
secret.createdandsecret.burned
API Key Management
Create, list, and revoke API keys for the current principal (raw key shown once on creation)
User/Principal Profile
View account details and plan info
Update principal metadata
Organization & Access Control (Admin)
Create, list, and delete organizations
Create, list, and delete principals (users/services) within an org
Create custom roles with granular permissions (create, read, patch, delete, list, manage, admin)
List and delete built-in or custom roles
Security Highlights
Secrets auto-expire or self-destruct after use; values are never logged or included in list responses
HTTPS support and API token authentication with granular, role-based permissions
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Sirr MCP Serverfetch the DATABASE_URL secret from my vault"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@sirrlock/mcp — Sirr MCP Server
Gives AI assistants like Claude direct access to your Sirr secret vault. Store, read, and share ephemeral secrets without leaving a conversation.
Demo
Anonymous dead drop — store and burn
Session 1 — store a secret (no name, no org needed)
❯ stash this deploy token: 123asdzxc
⏺ sirr-mcp - store_secret (MCP)(value: "123asdzxc")
⎿ Secret pushed.
ID: a1b2c3d4e5f6…
URL: https://sirr.sirrlock.com/s/a1b2c3d4e5f6…
Burns after 1 read(s).
⏺ Stored. Share the URL — it burns after one read.Session 2 — retrieve by ID (the vault burns it)
❯ get the secret at a1b2c3d4e5f6…
⏺ sirr-mcp - read_secret (MCP)(id: "a1b2c3d4e5f6…")
⎿ 123asdzxc
⏺ Got it. Deploying to staging with the token. Done.Session 3 — secret is already gone
❯ get that secret again
⏺ sirr-mcp - read_secret (MCP)(id: "a1b2c3d4e5f6…")
⎿ Secret not found, expired, or already burned.
⏺ The secret no longer exists on the server.Org-scoped named secret — store and read by name
❯ store the BITBUCKET_TOKEN as 123asdzxc
⏺ sirr-mcp - store_secret (MCP)(value: "123asdzxc", name: "BITBUCKET_TOKEN")
⎿ Secret 'BITBUCKET_TOKEN' stored in org 'acme'.
❯ deploy to staging using sirr:BITBUCKET_TOKEN
⏺ sirr-mcp - read_secret (MCP)(name: "BITBUCKET_TOKEN")
⎿ 123asdzxcThe secret existed just long enough to be used. The vault enforces expiry server-side. Claude is instructed by the tool description not to memorize or repeat the value. Even if a different agent, session, or attacker asks — there is nothing left to return.
Install
One-liner for Claude Code:
claude mcp add --transport stdio sirr -- npx -y @sirrlock/mcpOr install globally:
npm install -g @sirrlock/mcpBoth methods work with Claude Code, Cursor, Windsurf, and any MCP client.
Quick start
Zero config (public dead drops + share links)
Works immediately. No account, no token, no org needed:
❯ stash this API key: sk-abc123
⏺ [calls store_secret] → burn URL
❯ share this password with the contractor: hunter2
⏺ [calls share_secret] → sirrlock.com burn linkSirr Cloud (org-scoped named secrets)
Sign up at sirrlock.com — free tier includes 3 seats and unlimited secrets.
Get your principal key from the dashboard (Settings → API Keys).
Add to
.mcp.json— paste the config block below with your key and org ID.Verify — run
sirr-mcp --healthto confirm the connection.
Self-Hosted
Start Sirr — run
sirrd serveand note theSIRR_MASTER_API_KEYyou set.Set your token —
SIRR_TOKENin your MCP config must equal that key value.Add to
.mcp.json— use the self-hosted config block below.Verify — run
sirr-mcp --healthto confirm the connection.
Configuration
Sirr Cloud (default)
No SIRR_SERVER needed — defaults to https://sirr.sirrlock.com.
# Claude Code one-liner
claude mcp add --transport stdio --env SIRR_TOKEN=your-principal-key --env SIRR_ORG=your-org-id sirr -- npx -y @sirrlock/mcp{
"mcpServers": {
"sirr": {
"command": "npx",
"args": ["-y", "@sirrlock/mcp"],
"env": {
"SIRR_TOKEN": "your-principal-key",
"SIRR_ORG": "your-org-id"
}
}
}
}Self-Hosted
Point SIRR_SERVER at your own sirrd instance:
# Claude Code one-liner
claude mcp add --transport stdio --env SIRR_SERVER=http://localhost:39999 --env SIRR_TOKEN=your-master-key sirr -- npx -y @sirrlock/mcp{
"mcpServers": {
"sirr": {
"command": "npx",
"args": ["-y", "@sirrlock/mcp"],
"env": {
"SIRR_SERVER": "http://localhost:39999",
"SIRR_TOKEN": "your-master-api-key"
}
}
}
}What is
SIRR_TOKEN? On Sirr Cloud, use a principal key from the sirrlock.com dashboard. For self-hosted, use theSIRR_MASTER_API_KEYvalue (full access) or a principal key for org-scoped access. A mismatch is the most common cause of 401 errors. See sirr.dev/errors#401.
Environment variables
Variable | Default | Description |
|
| Sirr server URL. Omit for Cloud; set to your instance URL for self-hosted. |
| — | Bearer token — a principal key (Cloud or org-scoped) or |
| — | Organization ID. Required for named secrets (store/read by name). Optional for anonymous dead drops. |
CLI flags
# Print the installed version and exit
sirr-mcp --version
# Check connectivity (Cloud)
SIRR_TOKEN=your-principal-key SIRR_ORG=your-org-id sirr-mcp --health
# Check connectivity (self-hosted)
SIRR_SERVER=http://localhost:39999 SIRR_TOKEN=your-master-key sirr-mcp --health--health exits with code 0 on success and 1 on failure, making it safe to use in scripts and CI.
Available tools
Tool | Description |
| Store a secret. With |
| Read a secret. By |
| Check if a secret exists and view metadata — without consuming a read. |
| Create a burn-after-read link via sirrlock.com. Burns after 1 read or 24h. No account needed. |
| Query the audit log — secret creates, reads, deletes. |
That's it. Five tools. Everything else (webhooks, keys, orgs, roles, principals) is managed via the CLI or web dashboard.
Inline secret references
You can reference org-scoped secrets inline in any prompt:
"Use sirr:DATABASE_URL to run a migration"
"Deploy with sirr:DEPLOY_TOKEN"The sirr:KEYNAME prefix tells Claude to fetch from the vault automatically (requires SIRR_ORG to be set).
Secret lifecycle
Sirr secrets expire by design. store_secret supports expiry controls:
Option | Behavior |
| Secret expires after 1 hour, regardless of reads |
| Secret is deleted after the first read (default for anonymous dead drops) |
No options | Secret persists until explicitly deleted |
Use check_secret to inspect a secret's status without consuming a read — useful when you want to verify a secret is still available before fetching it.
Security notes
Claude only sees secret values when you explicitly ask it to fetch via
read_secretSet
max_reads=1on any secret shared for a single AI sessionThe MCP server never logs secret values
SIRR_TOKENlives in your MCP config'senvblock — it is never passed as a tool argument or in promptsUse HTTPS (
https://) whenSIRR_SERVERpoints to a remote host — plain HTTP transmits secrets unencrypted
Troubleshooting
Symptom | Cause | Fix |
|
| Verify both values match exactly — no extra spaces or newlines. sirr.dev/errors#401 |
| Free-tier limit reached | Delete unused secrets or upgrade. sirr.dev/errors#402 |
| Token lacks the required permission | Use a token with the needed scope. sirr.dev/errors#403 |
| Name already exists ( | Delete the existing secret first, or choose a different name. sirr.dev/errors#409 |
| Secret expired, was burned, or name was mistyped | Re-store the secret if you still need it. sirr.dev/errors#404 |
| Sirr server is unreachable | Check |
| Token missing from MCP config | Add |
MCP server not found by Claude |
| Install globally ( |
Related
Package | Description |
Rust monorepo: | |
Node.js / TypeScript SDK | |
Python SDK | |
.NET SDK | |
Documentation | |
Managed cloud + license keys |
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sirrlock/mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server