Model Context Protocol (MCP) for AI Agents (Node)
Integrate Keeper Secrets Manager into AI agents using Node

AI Agent Integration with Model Context Protocol (MCP)
Keeper Secrets Manager works with AI agents through the Model Context Protocol (MCP), enabling AI Agents to securely interact with specific vault folders. This integration provides a zero-trust architecture where AI agents are explicitly allowed to access designated information from the Keeper Vault.
The Model Context Protocol integration acts as a secure bridge between AI assistants and Keeper Secrets Manager. It allows AI tools to help you manage secrets while maintaining the highest security standards through human-in-the-loop confirmations for sensitive operations.
Key Benefits
Zero Trust Architecture: AI agents are assigned specific folders in the vault Human-in-the-Loop: Confirmation prompts for sensitive operations Enterprise Ready: Comprehensive audit logging and compliance features Multi-Platform: Works on Linux, macOS, and Windows
What Can AI Assistants Do?
With KSM MCP integration, AI assistants can help you:
Secret Operations
List secrets - Browse your accessible secrets Search secrets - Find secrets by title, URL, username, or other fields Retrieve secrets - Get specific secret values (with confirmation for unmasked data) Create secrets - Generate new secret entries Update secrets - Modify existing secret information Delete secrets - Remove secrets (with confirmation)
File Management
List attachments - View file attachments on secrets Upload files - Add file attachments to secrets Download files - Retrieve file attachments Delete files - Remove file attachments
Utilities
Generate passwords - Create secure passwords with customizable parameters Get TOTP codes - Retrieve current time-based one-time passwords Execute KSM notation queries - Use Keeper's notation system for complex operations Health checks - Monitor server status and connectivity
Setup and Installation
(1) Create Secrets Manager Application
From Keeper Secrets Manager, create an Application or use an existing application.

(2) Create a Device Token
Discard the first Device token, and click on "Add Device" to generate a new Base64 configuration that will be provided to your AI agent.

(3) Configure the MCP Server
You have two options for providing your Keeper configuration:
Option A: Configuration File (Recommended)
Place your downloaded configuration file in one of these locations:
~/.keeper/ksm-config.json
(recommended)./ksm-config.json
(in the current directory)
Option B: One-Time Token
If you have a one-time token instead:
export KSM_TOKEN="US:YOUR_ONE_TIME_TOKEN_HERE"
The server will use this token to generate and save a configuration file automatically.
(4) Test the Server
Run the server directly to test:
npm start
You should see: Keeper MCP server is running
Usage with MCP Clients
Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json
):
{
"mcpServers": {
"keeper": {
"command": "node",
"args": ["/path/to/keeper-mcp-node/dist/index.js"]
}
}
}
Postman
In Postman, go to the API Network tab
Create or select an MCP request
Configure the stdio connection:
Command:
node
Arguments:
/path/to/keeper-mcp-node/dist/index.js
Other MCP Clients
The server communicates via stdio, so you can integrate it with any MCP-compatible client by running:
node /path/to/keeper-mcp-node/dist/index.js
Available Tools
Secret Operations
ksm_list_secrets
List all secrets accessible to your application (metadata only)
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_list_secrets",
"arguments": {}
}
}
Response:
[
{
"uid": "XXXXXXXXXXXXXXXXXXXXXX",
"title": "My Secret",
"type": "login"
}
]
ksm_get_secret
Retrieve a complete secret by UID or title (sensitive fields masked by default)
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_get_secret",
"arguments": {
"identifier": "My Secret",
"unmask": false
}
}
}
ksm_search_secrets
Search for secrets by title, notes, or other field content
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_search_secrets",
"arguments": {
"query": "database"
}
}
}
ksm_create_secret
Create a new secret in Keeper Secrets Manager (requires confirmation)
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_create_secret",
"arguments": {
"title": "New Database Credentials",
"type": "login",
"fields": {
"login": "admin",
"password": "secure_password",
"url": "https://db.example.com"
},
"notes": "Production database",
"folderId": "FOLDER_UID"
}
}
}
ksm_update_secret
Update an existing secret (requires confirmation)
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_update_secret",
"arguments": {
"identifier": "My Secret",
"updates": {
"title": "Updated Title",
"fields": {
"password": "new_password"
}
}
}
}
}
ksm_delete_secret
Delete a secret from Keeper Secrets Manager (requires confirmation)
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_delete_secret",
"arguments": {
"identifier": "My Secret"
}
}
}
ksm_get_field
Get a specific field value from a secret
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_get_field",
"arguments": {
"identifier": "My Secret",
"field": "password"
}
}
}
Common field names:
password
- The password fieldlogin
- Username/emailurl
- Website URLCustom field labels
Folder Operations
ksm_list_folders
List all accessible folders in Keeper Secrets Manager
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_list_folders",
"arguments": {}
}
}
ksm_create_folder
Create a new folder (requires confirmation; must specify a parent shared folder)
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_create_folder",
"arguments": {
"name": "Development Secrets",
"parentFolderId": "PARENT_FOLDER_UID"
}
}
}
ksm_delete_folder
Delete a folder (requires confirmation)
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_delete_folder",
"arguments": {
"folderId": "FOLDER_UID",
"force": false
}
}
}
File Management
ksm_upload_file
Upload a file attachment to a secret (requires confirmation)
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_upload_file",
"arguments": {
"identifier": "My Secret",
"filePath": "/path/to/certificate.pem",
"fileName": "server-cert.pem"
}
}
}
ksm_download_file
Download a file attachment from a secret
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_download_file",
"arguments": {
"identifier": "My Secret",
"fileId": "certificate.pem",
"outputPath": "/tmp/downloaded-cert.pem"
}
}
}
Utilities
ksm_generate_password
Generate a secure password
Can optionally save to a new secret without exposing it to the AI
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_generate_password",
"arguments": {
"length": 24,
"includeUppercase": true,
"includeLowercase": true,
"includeNumbers": true,
"includeSpecial": true,
"saveToSecret": {
"title": "Generated API Key",
"login": "api-user",
"url": "https://api.example.com",
"notes": "Auto-generated API key"
}
}
}
}
ksm_get_totp_code
Get the current TOTP code for a secret that has TOTP configured
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_get_totp_code",
"arguments": {
"identifier": "My 2FA Secret"
}
}
}
ksm_get_server_version
Get the current version of the KSM MCP server
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_get_server_version",
"arguments": {}
}
}
ksm_health_check
Check the operational status of the MCP server and its connection to KSM
Request:
{
"method": "tools/call",
"params": {
"name": "ksm_health_check",
"arguments": {}
}
}
Troubleshooting
Error: No Keeper Secrets Manager configuration found
Ensure your configuration file is in one of the supported locations
Check that the file has proper JSON formatting
Verify file permissions (should be readable by your user)
Error: Failed to initialize KSM
Verify your configuration file contains all required fields
Check that your application has access to the shared folders/secrets
Ensure your device hasn't been revoked in Keeper
Connection Issues
Verify you have internet connectivity
Check if your organization has IP restrictions enabled
Ensure your Keeper subscription includes Secrets Manager
For additional setup details, see: https://github.com/Keeper-Security/keeper-mcp-node/
Last updated
Was this helpful?