If you're juggling secrets across dozens of projects and don't want to pay for Doppler or 1Password, this gives your AI agent direct access to a git-backed secrets.json vault. It exposes tools to generate .env files from templates, rotate shared keys across repos, sync to GitHub Actions via the gh CLI, and list what's stored without leaking plaintext to the model. Works with Cursor, Claude Desktop, Windsurf, Cline, and anything else that speaks MCP over stdio. The underlying secenv-cli handles the vault clone and encryption. Reach for this when you need centralized secret management that stays local, costs nothing, and lets your editor's AI help without exposing credentials.
SECENV_REPO_URLsecretGit URL of your private secrets vault. Required on first run.
MCP (Model Context Protocol) server for centralized secrets management.
Expose secrets.json to Cursor, Claude Desktop, Windsurf, Cline, GitHub
Copilot, Codex, and any MCP-compatible editor. Your AI agent can generate
.env files on demand, rotate shared keys across projects, and sync secrets
to GitHub Actions — without ever exposing plaintext to the model.
Built on top of secenv-cli.
| Registry | Status | URL |
|---|---|---|
| npm | v1.0.0 | npmjs.com/package/secenv-mcp |
| Smithery | live | smithery.ai/servers/chirag127/secenv-mcp |
| Official MCP Registry | v1.1.4 | io.github.chirag127/secenv-mcp |
| MCP.Directory | submitted | mcp.directory/servers/secenv-mcp |
| Glama | pending OAuth | glama.ai/mcp/servers |
| PulseMCP | auto-crawl | pulsemcp.com/servers |
| MCPB bundle | v1.1.0 | secenv-mcp.mcpb in GitHub Releases |
| GitHub | source | github.com/chirag127/secenv-mcp |
The server.json in .well-known/mcp/ is the source of truth for the official
MCP registry. PulseMCP and MCP.Directory auto-crawl from it; Glama requires a
one-time GitHub OAuth login.
| Tool | Limit / cost |
|---|---|
| Doppler free | 10 projects — too few for 100+ repos |
| Infisical Cloud free | 3 projects |
| 1Password | $36/year minimum |
| dotenvx / SOPS / git-crypt | per-repo, no shared references |
| GitHub Secrets | no local .env generation for AI agents |
SecEnv: $0, unlimited projects, shared references, one-line rotation, local AI agent integration, no SaaS dependency.
npm install -g secenv-mcp
Or use npx (no install):
npx -y secenv-mcp
secrets.json (see secenv-cli)npx secenv-cli --init <repo-url> once to clone the vault locallygh) — only required for the sync_github toolAdd to your MCP client config:
{
"mcpServers": {
"secenv": {
"command": "npx",
"args": ["-y", "secenv-mcp"]
}
}
}
Config file locations:
~/.cursor/mcp.json (or Settings → MCP → Add new global MCP server)~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.codeium/windsurf/mcp_config.jsonsettings.json under "cline.mcpServers"~/.continue/config.json under "experimental.mcpServers"You can scope secenv to a single project by adding the same JSON to
<project>/.cursor/mcp.json or <project>/.vscode/mcp.json. This keeps
~/.secenv/secrets/ isolated to one repo at a time.
Claude Code has built-in MCP support via the claude CLI:
claude mcp add secenv -- npx -y secenv-mcp
Verify with claude mcp list. The server will be available in all
claude sessions.
The official installer for MCP servers. One-line install:
npx -y @smithery/cli install secenv-mcp --client claude
# or
npx -y @smithery/cli install secenv-mcp --client cursor
When prompted, paste your private secrets repo URL.
GitHub Copilot supports MCP via the official
@github/copilot-cli wrapper and
VS Code's MCP extension.
# .github/copilot/mcp.json or VS Code user settings
{
"mcpServers": {
"secenv": {
"command": "npx",
"args": ["-y", "secenv-mcp"]
}
}
}
For VS Code, install the Copilot MCP extension
and add the same config under mcp.servers in your user settings.json.
OpenAI's Codex CLI supports MCP since v0.46+:
# ~/.codex/config.toml
[mcp_servers.secenv]
command = "npx"
args = ["-y", "secenv-mcp"]
For ChatGPT (Developer Mode → Apps SDK), see the official Apps SDK docs for connecting remote MCP servers — point it at the HTTP endpoint described below.
| Tool | Description |
|---|---|
generate_env | Generate .env from .env.example + central secrets |
list_projects | List all projects in secrets.json |
list_shared | List shared secret key names (values redacted) |
add_secret | Add or update a project secret |
rotate_secret | Rotate a shared secret, reports affected projects |
sync_github | Sync secrets to GitHub Actions via gh CLI |
clean_stale_projects | Remove projects whose local directory no longer exists |
delete_project | Remove a project entry from secrets.json |
remove_secret | Remove a single secret key (project or shared) |
The list_shared tool never returns plaintext — only masked values
(e.g., sk-p••••mnop) so the AI cannot exfiltrate your secrets.
| Mode | Command | Use case |
|---|---|---|
| stdio (default) | npx secenv-mcp | Local AI clients (Cursor, Claude Desktop, Windsurf, Cline, Codex) |
| Streamable HTTP | npx secenv-mcp --http | Remote / hosted / Vercel / Cloudflare / Render |
The MCP server is designed for local stdio as the primary mode. The
secrets vault is read from ~/.secenv/secrets/ which only exists on your
machine.
If you want to expose the server over HTTP (e.g., for a remote LLM or team access), the bundled server supports any Node.js host.
npm run build
vercel link
vercel env add SECENV_REPO_URL production
# paste your private repo URL
vercel --prod
Endpoint: https://<your-deployment>.vercel.app/mcp
Health: https://<your-deployment>.vercel.app/health
wrangler secret put SECENV_REPO_URL
# paste your private repo URL
wrangler deploy
Click "New Web Service" on Render, import this repo. The included
render.yaml configures everything automatically.
npm run build # produces dist/index.js (768KB single file)
npm run pack # produces dist/secenv-mcp.mcpb
npx -y @anthropic-ai/mcpb validate dist/secenv-mcp.mcpb
list_shared — only key names with masked valuesgh secret set uses stdin — values never appear in process args or shell historyMCP_API_KEY to require Bearer authsecenv-cli (installed automatically as a dependency)gh) — only for the sync_github toolnpm install
npm test # run unit tests
npm run test:tools # MCP tool tests only
npm run build # bundle to dist/index.js
npm run pack # bundle + zip to .mcpb
MIT
ray0907/git-mcp-server
cyanheads/git-mcp-server
io.github.b1ff/atlassian-dc-mcp-bitbucket
io.github.b1ff/atlassian-dc-mcp-jira
com.mcparmory/atlassian-jira
aashari/mcp-server-atlassian-bitbucket