Credential Vault MCP

Credential Vault MCP

Enables secure credential storage for AI agents by encrypting secrets and providing agent-invisible references, ensuring sensitive data never leaks to the model.

Category
Visit Server

README

πŸ” Credential Vault MCP

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.

Why Credential Vault?

AI agents are incredibly powerful, but they shouldn't have access to your sensitive credentials. Credential Vault solves this with a security-first architecture:

  • πŸ”’ End-to-End Encryption: ChaCha20-Poly1305 encryption with Argon2i key derivation
  • πŸ‘» Agent-Invisible: Agents see only credential IDs, never actual values
  • πŸ›‘οΈ Zero Trust: Credentials stored separately from AI context
  • πŸ“Š Full Audit Trail: Track every credential access and modification
  • πŸ”„ Conflict Detection: Automatically detect credential changes and duplicates
  • 🎯 Easy Setup: One-command initialization, MCP integration ready

Security 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)       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Quick Start

1. Installation

npm install -g credential-vault-mcp

2. Initialize Vault

credential-vault init

You'll be prompted to set a master password. This password:

  • Never leaves your machine
  • Is never sent to any server
  • Is used to derive an encryption key (not stored directly)
  • Must be at least 8 characters

3. Add Your First Credential

credential-vault add stripe_api_key --type api_key

4. Configure MCP in Claude Code / Claude Desktop

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"]
    }
  }
}

5. Use in Claude

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:

  1. Call initialize_vault tool with your master password
  2. Call get_credential_reference to get credential ID
  3. Never see the actual API key value

CLI Commands

List all credentials

credential-vault list

Get a credential value

credential-vault get stripe_api_key

Delete a credential

credential-vault delete stripe_api_key

View audit log

credential-vault audit 100

Verify vault integrity

credential-vault verify

Available MCP Tools

initialize_vault

Initialize the vault with master password. Call this first.

{
  "master_password": "your-secure-password-8+chars"
}

store_credential

Store 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_reference

Get a credential reference (safe for agents).

{
  "credential_name": "stripe_api_key"
}

Returns: { credential_id: "cred_xxx", name: "...", type: "..." }

list_credentials

List all stored credentials (no values).

delete_credential

Permanently delete a credential.

get_audit_log

View access and modification history.

Security Best Practices

βœ… DO

  • βœ… Use a strong, unique master password (20+ characters recommended)
  • βœ… Store your master password in a password manager
  • βœ… Review audit logs regularly
  • βœ… Rotate sensitive credentials periodically
  • βœ… Run credential-vault verify to check vault integrity
  • βœ… Keep your system and dependencies updated

❌ DON'T

  • ❌ Share your master password
  • ❌ Store master password in plaintext
  • ❌ Use the same master password as other services
  • ❌ Store credentials in public/shared environments without encryption
  • ❌ Ignore audit log warnings about conflicts
  • ❌ Commit .credential-vault-mcp/ to version control

File Structure

~/.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).

Encryption Details

  • Algorithm: ChaCha20-Poly1305 (AEAD)
  • Key Derivation: Argon2i (OPSLIMIT_MODERATE, MEMLIMIT_MODERATE)
  • Nonce: Random 24-byte nonce per credential
  • Integrity: Poly1305 MAC prevents tampering
  • Library: libsodium.js (audited crypto library)

Each credential is encrypted independently with a random nonce. Even if one credential is compromised, others remain secure.

Advanced Usage

Using with different Claude interfaces

Claude.ai Code

Add to MCP settings in Code interface

Claude Desktop App

Edit claude_desktop_config.json:

{
  "mcpServers": {
    "credential-vault": {
      "command": "npx",
      "args": ["credential-vault-mcp"]
    }
  }
}

VS Code Extension

Configure in extension settings for Claude extension

Backing up credentials

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

Handling master password changes

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.

Troubleshooting

"Vault not initialized" error

# Initialize first
credential-vault init

"Permission denied" error

Check file permissions:

ls -la ~/.credential-vault-mcp/vault.json
# Should show: -rw------- (600)

Fix permissions:

chmod 600 ~/.credential-vault-mcp/vault.json

Forgotten master password?

Unfortunately, there's no recovery. The password is required to decrypt credentials.

Prevention: Store master password in a password manager with recovery codes.

"Conflict detected" warning

This means a credential with the same value exists under a different name. This could indicate:

  • Password reuse (audit the old credential)
  • Accidental duplicate entry
  • Shared secret across services

Check audit log:

credential-vault audit

Development

Clone & Install

git clone https://github.com/CipherSatoru/credential-vault-mcp.git
cd credential-vault-mcp
npm install

Build

npm run build

Run in development

npm run dev

Test CLI

npm run cli -- init

Contributing

Contributions welcome! This is security-sensitive software, so:

  1. Security first: Test all encryption paths
  2. No plaintext logging: Credentials must never be logged
  3. Audit trail: Track what happens
  4. Documentation: Update SECURITY.md for significant changes

License

MIT License - See LICENSE file for details

Support

Disclaimer

This tool encrypts credentials locally on your machine. However:

  • The MCP interface is only as secure as its integration
  • Running on a compromised machine still exposes credentials
  • Master password security is your responsibility
  • No encryption is perfect - use defense in depth

Always follow your organization's security policies when handling credentials.


Made with πŸ”’ for secure AI agent workflows

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured