A local MCP server that manages API keys with user approval
Project description
SecretButler
🔐 A local MCP (Model Context Protocol) server that manages API keys with user approval.
SecretButler provides a secure way to manage and share API keys with MCP clients like Claude Desktop. It runs as a local server with a GUI that requires explicit user approval before sharing any secrets.
Features
- Secure secret management: Stores API keys locally in
~/.secretbutler.toml - User approval required: GUI popup asks for permission before sharing any secrets
- MCP compatible: Works with any MCP client
- Easy configuration: Simple TOML configuration file
- macOS native: Uses native macOS GUI components
Installation
Install using uvx (recommended):
uvx secretbutler
Or install with pip:
pip install secretbutler
Configuration
On first run, SecretButler will create a configuration file at ~/.secretbutler.toml with example entries:
[secrets]
OPENAI_API_KEY = "sk-..."
ANTHROPIC_API_KEY = "sk-ant-..."
HF_API_KEY = "hf_..."
MODAL_SECRET = "ak-..."
Edit this file to add your actual API keys.
Usage
Running SecretButler
secretbutler
This will start both the GUI application and the MCP server.
Using with Claude Desktop
Add this to your Claude Desktop MCP configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"secretbutler": {
"command": "uvx",
"args": ["secretbutler"],
"env": {
"CLIENT_NAME": "Claude"
}
}
}
}
Available MCP Tools
list_secrets(): Returns a list of available secret names (no approval required)request_secrets(secret_names, client_name): Request specific secrets with user approval
Security
- Secrets are stored locally in your home directory
- No secrets are shared without explicit user approval
- Each request shows which secrets are being requested and by which client
- GUI runs in the foreground with clear approval dialogs
Requirements
- macOS (uses
rumpsfor native GUI) - Python 3.8+
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file secretbutler-0.1.0.tar.gz.
File metadata
- Download URL: secretbutler-0.1.0.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21d30ef01a03b67869c30b863fa6e2af9ed64c3339db69e5d121026d6c74a68d
|
|
| MD5 |
83da1bdb96b346bb7ab9991d501f540b
|
|
| BLAKE2b-256 |
825bf9557aee872c3a134467b0d52f9a07eb21599ff8cf2c4a885cfc6fb6c4c2
|
File details
Details for the file secretbutler-0.1.0-py3-none-any.whl.
File metadata
- Download URL: secretbutler-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4e59ee92d7baa98c50549e81a5dfc2eebfa3812b612efb5de8150f7a148c9d5
|
|
| MD5 |
e669968551a28e690ec6a1487fa83833
|
|
| BLAKE2b-256 |
d236c801eebd20faef90a4642fe33a3bb1189b0367ac74f39b26928f34b1a559
|