mcp-secrets-plugin
Secure credential management for MCP servers leveraging system-native keychain storage across macOS, Windows, and Linux platforms
Documentation
Secrets Manager for MCP Server
Overview
`secrets_manager.py` is a Python utility that enables MCP servers to securely store and retrieve sensitive information using the system's native keychain/credential manager instead of relying on `.env` files. This approach significantly improves security by leveraging the operating system's built-in secure storage mechanisms.
Key Features
- Cross-Platform Support: Works on macOS (Keychain), Windows (Credential Locker), and other platforms (using appropriate keyring backends)
- Secure Storage: Stores sensitive data like API keys in the system's secure credential storage
- Simple API: Provides straightforward functions for storing and retrieving secrets
- Command-Line Interface: Includes a CLI for managing secrets directly
Core Functionality
Secret Storage
The script uses the `keyring` library to store secrets in the system's native credential manager:
- On macOS: Stores secrets in the macOS Keychain
- On Windows: Uses the Windows Credential Locker
- On other platforms: Uses the best available keyring backend
Main Functions
1. `get_secret(service_name, secret_key)`: Retrieves a secret from the system keyring
2. `set_secret(service_name, secret_key, secret_value)`: Stores a secret in the system keyring
3. `setup_secrets()`: Interactive function to collect and store initial secrets
4. `test_get_secret()`: Tests the retrieval of stored secrets
5. `get_keyring_name()`: Returns the name of the current keyring backend based on the platform
Command-Line Interface
The script can be run directly with the following options:
- `--store`: Initiates the interactive secret storage process
- `--test`: Tests retrieving stored secrets
- `--info`: Displays information about the current keyring backend
Usage Example
Instead of storing API keys in `.env` files:
# Old approach with .env files
API_KEY = os.getenv("API_KEY") # Insecure, stored in plaintext
# New approach with secrets_manager
from secrets_manager import get_secret
API_KEY = get_secret("MyMCPServer", "api_key") # Secure, stored in system keychainBenefits for MCP Servers
1. Enhanced Security: Secrets are stored in the operating system's secure storage rather than in plaintext files
2. Simplified Management: No need to manage `.env` files or worry about them being accidentally committed to version control
3. User-Friendly: Provides an interactive interface for setting up secrets
4. Reliable Access: Consistent API for accessing secrets across different platforms
Implementation Note
The script includes a commented example of how to access the stored secret directly from the macOS terminal:
security find-generic-password -l "MyMCPServer" -a "api_key" -gFrequently asked questions
What is mcp-secrets-plugin?
mcp-secrets-plugin is Secure credential management for MCP servers leveraging system-native keychain storage across macOS, Windows, and Linux platforms
How do I install mcp-secrets-plugin?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is mcp-secrets-plugin open source?
Yes — it is hosted on GitHub at https://github.com/amirshk/mcp-secrets-plugin and has 48 stars.
Related MCP tools
An LLM agent that conducts deep research (local and web) on any given topic and generates a long report with citations. Built for the Model Context Protocol to
Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth! Python-based implementation. Trusted by 11000+ developers.
AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP. Python-based implementation. Trusted by 4100+ developers.
An MCP server that autonomously evaluates web applications. Python-based implementation. Trusted by 1100+ developers. Trusted by 1100+ developers.
An official Qdrant Model Context Protocol (MCP) server implementation Python-based implementation. Trusted by 1000+ developers.
A middleware to provide an openAI compatible endpoint that can call MCP tools Python-based implementation. Trusted by 800+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP