A personal MCP (Model Context Protocol) server for securely storing and accessing API keys across projects using the macOS Keychain. > **🔒 SECURITY FIRST**: ServeMyAPI is designed to run LOCALLY on your machine. API keys are NEVER transmitted over the internet and should NEVER be deployed to cloud services. **Read the critical security guidelines** before using. > **Cross-Platform Support**: ServeMyAPI now includes a storage abstraction layer that enables support for multiple platforms: > - **macOS**: Uses the native Keychain (default) > - **Windows/Linux**: Uses encrypted file storage > - **Docker**: Automatically uses encrypted file storage > - **Memory**: Available for testing and temporary storage Overview ServeMyAPI allows you to store API keys securely in the macOS Keychain and access them through a consistent MCP interface. This makes it easy to: - Store API keys securely (they're never visible in .env files or config files) - Access the same keys across multiple projects - Use natural language to store and retrieve keys (when used with LLMs like Claude) - Provide keys directly to your AI assistant when it needs to access services Why ServeMyAPI over .ENV Files? Using ServeMyAPI instead of traditional .ENV files solves several common problems: 1. **GitHub Security Conflicts**: - .ENV files need to be excluded from Git repositories for security (via .gitignore) - This creates a "hidden context" problem where important configuration is invisible to collaborators and LLMs - New developers often struggle with setting up the correct environment variables 2. **LLM Integration Challenges**: - LLMs like Claude can't directly access your .ENV files due to security constraints - When LLMs need API keys to complete tasks, you often need manual workarounds - ServeMyAPI lets your AI assistant request keys through natural language 3. **Cross-Project Consistency**: - With .ENV files, you typically need to duplicate API keys across multiple projects - When keys change, you need to update multiple files - ServeMyAPI provides a central storage location accessible from any project This approach gives you the best of both worlds: secure storage of sensitive credentials without sacrificing visibility and accessibility for your AI tools. Features - Secure storage of API keys in the macOS Keychain - Simple MCP tools for storing, retrieving, listing, and deleting keys - Convenient CLI interface for terminal-based key management - Support for both stdio and HTTP/SSE transports (with authentication) - Compatible with any MCP client (Claude Desktop, etc.) - **Enhanced Security Features:** - Input validation to prevent path traversal attacks - Encrypted file storage for Docker deployments - Bearer token authentication for HTTP endpoints - Rate limiting and session management - Security headers and CORS protection - Secure logging with automatic redaction of sensitive data Installation Usage CLI Interface ServeMyAPI comes with a command-line interface for quick key management directly from your terminal: Running as a stdio server This is the simplest way to use ServeMyAPI as an MCP server, especially when working with Claude Desktop: Running as an HTTP server For applications that require HTTP access: This will start the server on port 3000 (or the port specified in the PORT environment variable). ⚠️ IMPORTANT SECURITY WARNING **DO NOT USE THE SMITHERY HOSTED VERSION** for storing real API keys. The Smithery deployment exists for demonstration purposes only. Using it would: 1. **Transmit your API keys over the internet** (even with HTTPS, this violates the principle of keeping keys local)