loading…
Search for a command to run...
loading…
Enables secure credential storage for AI agents by encrypting secrets and providing agent-invisible references, ensuring sensitive data never leaks to the model
Enables secure credential storage for AI agents by encrypting secrets and providing agent-invisible references, ensuring sensitive data never leaks to the model.
License: MIT Node.js TypeScript Security: Libsodium MCP
Secure credential storage for AI agents. Keep your passwords, API keys, and secrets encrypted and invisible to AI models. When agents need credentials, they get a secure reference—never the actual value.
AI agents are incredibly powerful, but they shouldn't have access to your sensitive credentials. Credential Vault solves this with a security-first architecture:
┌─────────────────────────────────────────┐
│ AI Agent / Claude │
│ (Cannot see credential values) │
└────────────┬────────────────────────────┘
│
│ Requests: "Get stripe_api_key"
│ Receives: {credential_id: "cred_xxx", name: "stripe_api_key"}
│
┌────────────▼────────────────────────────┐
│ MCP Tool Interface │
│ • store_credential │
│ • get_credential_reference │
│ • list_credentials │
└────────────┬────────────────────────────┘
│
┌────────────▼────────────────────────────┐
│ Credential Storage (Encrypted) │
│ ~/.credential-vault-mcp/vault.json │
│ │
│ ChaCha20-Poly1305 Encryption │
│ Argon2i Key Derivation │
│ 600 File Permissions (User Only) │
└──────────────────────────────────────────┘
npm install -g credential-vault-mcp
credential-vault init
You'll be prompted to set a master password. This password:
credential-vault add stripe_api_key --type api_key
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"credential-vault": {
"command": "credential-vault-mcp",
"args": []
}
}
}
Or for development:
{
"mcpServers": {
"credential-vault": {
"command": "npx",
"args": ["credential-vault-mcp"]
}
}
}
Tell Claude:
I have credentials stored in Credential Vault MCP. Can you initialize the vault with my master password, then retrieve my stripe_api_key?
Claude will:
initialize_vault tool with your master passwordget_credential_reference to get credential IDcredential-vault list
credential-vault get stripe_api_key
credential-vault delete stripe_api_key
credential-vault audit 100
credential-vault verify
initialize_vaultInitialize the vault with master password. Call this first.
{
"master_password": "your-secure-password-8+chars"
}
store_credentialStore a new credential (encrypted).
{
"name": "stripe_api_key",
"value": "sk_live_...",
"type": "api_key"
}
Types: api_key, password, token, connection_string, ssh_key, custom
get_credential_referenceGet a credential reference (safe for agents).
{
"credential_name": "stripe_api_key"
}
Returns: { credential_id: "cred_xxx", name: "...", type: "..." }
list_credentialsList all stored credentials (no values).
delete_credentialPermanently delete a credential.
get_audit_logView access and modification history.
credential-vault verify to check vault integrity.credential-vault-mcp/ to version control~/.credential-vault-mcp/
├── vault.json # Encrypted credential storage (mode: 600)
└── [secure directory] # Stored in user home, readable only by user
Permissions: Vault directory and file are created with 0700 / 0600 permissions (user read/write only).
Each credential is encrypted independently with a random nonce. Even if one credential is compromised, others remain secure.
Add to MCP settings in Code interface
Edit claude_desktop_config.json:
{
"mcpServers": {
"credential-vault": {
"command": "npx",
"args": ["credential-vault-mcp"]
}
}
}
Configure in extension settings for Claude extension
Important: Your master password is required to decrypt credentials.
# Backup encrypted vault (safe - encrypted)
cp ~/.credential-vault-mcp/vault.json ~/backup/vault.json.backup
# Never do this:
# ❌ cp ~/.credential-vault-mcp/vault.json /public/location
# ❌ git add vault.json
Currently: Delete old vault and create new one
rm ~/.credential-vault-mcp/vault.json
credential-vault init
Then re-add credentials with new master password.
# Initialize first
credential-vault init
Check file permissions:
ls -la ~/.credential-vault-mcp/vault.json
# Should show: -rw------- (600)
Fix permissions:
chmod 600 ~/.credential-vault-mcp/vault.json
Unfortunately, there's no recovery. The password is required to decrypt credentials.
Prevention: Store master password in a password manager with recovery codes.
This means a credential with the same value exists under a different name. This could indicate:
Check audit log:
credential-vault audit
git clone https://github.com/CipherSatoru/credential-vault-mcp.git
cd credential-vault-mcp
npm install
npm run build
npm run dev
npm run cli -- init
Contributions welcome! This is security-sensitive software, so:
MIT License - See LICENSE file for details
This tool encrypts credentials locally on your machine. However:
Always follow your organization's security policies when handling credentials.
Made with 🔒 for secure AI agent workflows
Выполни в терминале:
claude mcp add credential-vault-mcp -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.