Keeper Secrets Manager MCP server
Read-only multitenant Streamable HTTP bridge over Keeper Secrets Manager's MCP server.
0 stars
Reviews
Write oneNobody has reviewed Keeper Secrets Manager yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Keeper Secrets Manager tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.10 · 2026-10-31 · same rubric, same numbers if you re-run it
- –Code scanpackage could not be scannedn/a
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 10 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
How Keeper Secrets Manager compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 85/100
- higher than 70% of 48,255 servers
Release history: 3 versions in the registry since 2026-09-21, latest 2026-10-20, typically one every 29 days.
Install Keeper Secrets Manager in Claude Code, Cursor or VS Code
claude mcp add keeper-mcp -- docker run -i --rm ghcr.io/wyre-ai/keeper-mcp:v1.0.4
What the publisher says
From the Keeper Secrets Manager repository's README, as published. We do not edit it. Read it on GitHub
keeper-mcp
Multitenant Streamable HTTP bridge over Keeper-Security/keeper-mcp-golang-docker — Keeper's official Secrets Manager MCP server — built so the WYRE conduit gateway can forward per-tenant Keeper credentials as HTTP headers.
Upstream pin: v2.5.0 (MIT), built from source. See Bumping the upstream pin.
v1 is READ-ONLY. See Read-only in v1 — for this vendor that is a security boundary, not a scoping decision.
Why
Keeper's server is stdio-only. There is no HTTP or SSE listener anywhere in its source — the EXPOSE 8080 in its own Dockerfile is vestigial, and its docker-entrypoint.sh is unreachable because the published image is FROM scratch with no shell. It reads its credential from KSMCONFIGBASE64 at process start, which makes it single-tenant per process.
Our gateway is multi-tenant: every request carries the calling org's credentials as HTTP headers, and the vendor container has to translate those headers into something the upstream understands.
Because the upstream has no HTTP mode to proxy to, this bridge holds an MCP client session over stdio to each tenant child and re-serves it over Streamable HTTP:
- Listens on :8080 with POST /mcp and GET /health.
- 401-gates every /mcp request on X-Keeper-Config-Base64 — including validating that it decodes to a usable KSM config. Missing/invalid credentials never fall through to environment credentials; that would be a cross-tenant leak.
- Lazily spawns one ksm-mcp serve --batch child per credential (keyed by a hash), with the tenant's KSMCONFIGBASE64 set, and connects an MCP client to it over stdio.
- Serves both protocol eras on /mcp via the v2 SDK's createMcpHandler(factory, { legacy: 'stateless' }) — 2025-era initialize-handshake clients (the conduit gateway today) and modern 2026-07-28 envelope clients.
- Filters the child's surface through a read-only allowlist in both directions.
- Evicts idle children after 15 minutes (IDLEEVICTMS).
Tool names pass through unchanged.
Read-only in v1 — deliberate, and load-bearing
Boundary 1 (the strong one): a read-only KSM application
Provision the Keeper application with non-editable shares. A KSM application's shared-folder grant is read-only unless explicitly made editable (secrets-manager share add --app --secret ; the Vault's Application Access panel shows Read-Only vs Editable). With a non-editable grant, every write fails at Keeper's own server — regardless of this bridge, its allowlist, batch mode, or prompt injection.
This is a provisioning precondition of the credential contract, not a nice-to-have. The bridge cannot verify it: the Keeper SDK carries IsEditable per record, but ksm-mcp never reads it, so nothing here can detect an over-granted application. Scope the application to the narrowest folder set the use case needs, read-only, and treat that as the real control.
Boundary 2: this bridge's allowlist
Keeper's upstream has no read-only mode — verified against the v2.5.0 pin: serve has six flags and none restrict the surface, getAvailableTools() returns a hardcoded 19-element slice that consults no config, and Confirmation.DefaultDeny is hardcoded false with no plumbing. Nothing upstream can un-register a tool.
On batch mode. Keeper's own Docker documentation tells you to set KSMMCPBATCH_MODE=true, and this bridge does. What that actually changes:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Keeper Secrets Manager: common questions
- Is Keeper Secrets Manager MCP server safe?
- Yes, by our scan: it is graded A (85/100). Read the Keeper Secrets Manager safety report
- How do I install Keeper Secrets Manager?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Keeper Secrets Manager need an API key?
- No secret keys are declared. It reads 5 settings from the environment.
- Is Keeper Secrets Manager maintained?
- The last commit was 14 days ago (2026-10-21). The latest release is v1.0.4.