Injects stored secrets into shell commands at execution time while keeping plaintext out of model context, logs, and audit records.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Vaultshell.
shell_execRun a one-shot command with per-rule injection. Params: `command`, `cwd?`, `profile?`, `extraEnv?` (allowlist), `dryRun?`, `timeoutSeconds?` (β€3600)
shell_session_openOpen a persistent session; secrets injected once at creation
shell_session_sendSend a command to a session
shell_session_closeKill a session; secrets die with the process
shell_session_listList live sessions
shell_session_revokeKill and rebuild the session **without secrets
The vaultshell MCP server manages references to secrets and supplies their values to child processes only when an applicable injection rule matches. Secret plaintext is not returned by MCP tools, written to logs or audit records, or included in redacted command output. Tool responses expose names, metadata, masks, and execution results instead.
Commands can run once with shell_exec, or through persistent sessions whose secrets are loaded when the session starts. Sessions can be closed, listed, or revoked; revocation rebuilds a session without secrets. For API credentials that should not enter a process environment, the server can also run a loopback reverse proxy that adds a configured header in memory.
Secrets are stored through a backend and referenced by name or configured reference. Rules determine when values are injected. The launcher resolves references internally and passes values directly into the child process environment, rather than through the MCP tool layer. shell_exec does not accept an unrestricted environment map; its extraEnv option is allowlisted.
Every command result passes through output redaction. If redaction fails, the output is discarded instead of being returned. Dry runs report the selected rule, injected secret names, environment keys, and deny-list result without starting a command. Execution timeouts, output truncation, concurrency limits, and related flags are recorded in the audit log.
The local proxy accepts HTTP or HTTPS upstreams, validates TLS for HTTPS upstream connections, and does not provide CONNECT tunneling or TLS termination. Its client-to-proxy connection remains plaintext on loopback. Proxy instances have a time-to-live and expose metadata without secret values.
Run the vaultshell MCP server with Node.js 20 or later. It can be installed with npx, installed globally from the GitHub repository, built from source, or run from the published Docker image. The encrypted-file backend uses a MASTER_KEY environment variable containing 64 hexadecimal characters. Configuration and rule files are placed under ~/.vaultshell in the source-based setup.
A Docker deployment mounts /home/node/.vaultshell and passes MASTER_KEY to the container. The image runs as the non-root node user. Container sessions fall back to pipe mode because node-pty is excluded from the image; injection and redaction remain available.
The repository provides a Claude Desktop stdio configuration using npx and MASTER_KEY. The optional web command starts a loopback-only configuration UI with a one-time token. It supports write-only secret management, rule editing, static warnings, configuration editing, and redacted audit browsing; its URL should not be port-forwarded.
127.0.0.1.The default command timeout is 120 seconds and the maximum is 3600 seconds. Output streams default to a 1 MiB limit and are truncated after redaction. At most eight concurrent one-shot executions are allowed by default, and excess calls are rejected rather than queued.
Persistent sessions normally expire after an idle period, defaulting to 900 seconds unless configuration, a rule, or a call changes it. PTY support depends on the optional node-pty native dependency; when unavailable, sessions use a plain child-process shell with reduced interactivity.
The proxy is limited to HTTP and HTTPS upstreams, and the loopback client connection shares the same-UID local-process boundary. The server is designed for local secret storage, so the repository does not publish a hosted Smithery distribution.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/vaultshell)<a href="https://allmcps.com/mcp/vaultshell"><img src="https://allmcps.com/api/badge/vaultshell?style=directory" alt="Vaultshell on AllMCPs" /></a>