Skip to main content

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 rumps for native GUI)
  • Python 3.8+

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secretbutler-0.1.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

secretbutler-0.1.0-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

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

Hashes for secretbutler-0.1.0.tar.gz
Algorithm Hash digest
SHA256 21d30ef01a03b67869c30b863fa6e2af9ed64c3339db69e5d121026d6c74a68d
MD5 83da1bdb96b346bb7ab9991d501f540b
BLAKE2b-256 825bf9557aee872c3a134467b0d52f9a07eb21599ff8cf2c4a885cfc6fb6c4c2

See more details on using hashes here.

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

Hashes for secretbutler-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e4e59ee92d7baa98c50549e81a5dfc2eebfa3812b612efb5de8150f7a148c9d5
MD5 e669968551a28e690ec6a1487fa83833
BLAKE2b-256 d236c801eebd20faef90a4642fe33a3bb1189b0367ac74f39b26928f34b1a559

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page