
API Locker
io.github.apilockerPublished by GitHub account apilockerv1.0.3Updated Oct 25, 2026
Encrypted credential vault: LLM, service & OAuth keys. 21-tool MCP server for your AI agent.
Overview
A local MCP bridge to API Locker, an encrypted credential vault, letting an assistant read and manage stored LLM, service and OAuth keys.
- What you can do
- Read and list stored credentials, grouped into LLM, service and OAuth buckets, with filtering by tag, provider, category or search term. Store, rotate, rename, pause, resume and delete credentials, including multi-field OAuth entries. Retrieve a single secret value or emit shell export statements for use in a command. Manage registered devices and scoped access tokens, including revocation. Review the audit log of reveals, proxy calls, renames and rotations, and run a security health check.
- When to use it
- Useful when you keep API keys and OAuth client credentials in API Locker and want an assistant to look up, add, rotate or audit them without opening the dashboard. Best for developers already using the API Locker CLI who want vault management inside Claude Code, Claude Desktop, Cursor, Zed or Continue.
- Requirements
- Runs locally over stdio via the apilocker npm package, started with the mcp subcommand; Node.js 18 or newer. An API Locker account and a device registered through the browser-based authorization flow are needed; the bridge reads the master token from the local config file. Network access to the API Locker service.
Installation
In SourceWeft
- Open API Locker in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
API Locker
One vault, three types of credentials. LLM API keys, service API keys, and OAuth credentials — all encrypted, all injectable into your code with a single command.
API Locker replaces the .env file with one encrypted vault. Store your OpenAI key, your Stripe secret, your Google OAuth client — all in one place — and inject them into any command with apilocker run -- npm start. Your raw credentials never touch disk, never live in shell history, never get committed to git.
This is the command-line interface. Website · Dashboard
Install
Requires Node.js 18 or newer.
Get started in three commands
That's it. Your process.env.OPENAI_API_KEY, process.env.STRIPE_SECRET_KEY, process.env.GOOGLE_OAUTH_CLIENT_SECRET — everything you'd normally drop in a .env file — is now injected into the subprocess for exactly the duration of that command. When the command exits, the secrets are gone.
One vault, three types of credentials
🧠 LLM API Keys
OpenAI, Anthropic, Gemini, Groq, Mistral.
⚡ Service API Keys
Stripe, Twilio, Resend, ElevenLabs, Cloudflare, GitHub, Clerk, Sentry, PostHog, Cloudinary, Mux, SendGrid, Vercel, Upstash, LemonSqueezy — plus custom for anything else.
🔗 OAuth Credentials
Google, GitHub, Slack, Microsoft, Notion, Spotify, Twitter/X, LinkedIn, Discord, Zoom, Dropbox, Salesforce, HubSpot — plus custom OAuth for anything else.
The full command set
The .apilockerrc file
Pin a project to a specific set of credentials with a committable config file. apilocker init walks you through creating one:
After apilocker init, anyone cloning your repo who runs apilocker run -- npm start gets the same env vars — assuming they have access to those aliases in their own vault. It's like a package.json for credentials: the file declares what the project needs, each developer has their own vault.
Why the CLI doesn't ask for a pasted master token
Unlike most developer tools, apilocker register doesn't want you to paste a secret from the dashboard. Instead:
- You run
apilocker register - Your browser opens to a single-card confirmation page
- You click "Authorize"
- The CLI receives a per-device master token over an authenticated polling channel — it never touches your clipboard, shell history, or screen
This is the RFC 8628 device authorization flow (the same pattern gh, vercel, wrangler, flyctl, and gcloud use). It's strictly safer than pasted tokens because the secret never appears anywhere a human can accidentally leak it.
New users? The same flow handles signup — your first OAuth click with GitHub/Google creates the account automatically. No separate visit to the web portal required.
MCP integration — connect your AI assistant
API Locker exposes a full Model Context Protocol server with 25 tools so Claude Code, Claude Desktop, Cursor, Zed, Continue, and any other MCP-compatible client can read and manage your vault directly.
Claude Code — one command
Verify with claude mcp list. You should see apilocker: apilocker mcp - ✓ Connected. The server is available in your next Claude Code session automatically.
Claude Desktop, Cursor, Zed, Continue
The CLI ships with apilocker mcp — a stdio bridge that handles the connection automatically. Configure any MCP client with:
The bridge reads your master token from ~/.apilocker/config.json automatically. No credentials go in the client config itself.
Print client-specific config with the built-in helper:
Full docs: https://www.apilocker.app/docs/mcp — includes config file locations for each client, troubleshooting, and the full 25-tool catalog.
Visual status: the dashboard has a dedicated MCP panel at https://www.apilocker.app/dashboard#mcp showing server status, a test-connection button, copy-pasteable config for every major client, and a live feed of recent MCP activity.
Security posture
- AES-256-GCM encryption on every stored credential. Keys never leave the vault in plaintext except when revealed to an authenticated master-token holder (you).
- Per-device tokens with independent revocation. Stolen a laptop? Revoke that one device; every other device keeps working.
- OAuth CSRF protection with state tokens bound to a 10-minute KV window.
- Strict file permissions (
0600) on~/.apilocker/config.json. - Audit-logged everywhere: every reveal, every proxy call, every rename, every rotation. Watch them live with
apilocker activity --follow. - Lossless rename with previous_names fallback: renaming a credential never breaks existing code. Old aliases transparently resolve to the current credential with a gentle nudge to update configs.
- Pause/resume to freeze proxy access during incident response without losing the credential itself.
Configuration
Config lives at ~/.apilocker/config.json (mode 0600). Don't check it in.
Override the API endpoint for self-hosted deployments:
Status
API Locker is free to use with unlimited keys, unlimited tokens, and unlimited proxy calls. Early adopters get grandfathered into free Pro permanently when paid plans launch.
Links
- Website: www.apilocker.app
- Dashboard: www.apilocker.app/dashboard
- API: api.apilocker.app
- Changelog: www.apilocker.app/changelog
License
MIT © 2026 API Locker
Source: cli/README.md at commit babe588
Tools
0Version history
1- v1.0.3LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts