Overview
Secure MCP Gateway can be installed in three ways:- pip installation (recommended) - Fastest method using PyPI
- Docker installation - Containerized deployment with full observability stack
- From source - Clone the repository and install manually
Prerequisites
All installation methods require:Python requirements
Python requirements
- Python 3.8 or higher (3.11+ recommended)
- pip 25.0.1 or higher
- uv 0.7.9 or higher (for package management)
uv is not installed:MCP client
MCP client
You’ll need at least one MCP client:
- Claude Desktop - Download from claude.ai/download
- Cursor - Download from cursor.sh
- Claude Code - Install with
npm install -g @anthropic-ai/claude-code - Any MCP-compatible client - See MCP documentation
Optional: Docker (for Docker installation)
Optional: Docker (for Docker installation)
For Docker installation:
- Docker Desktop or Docker Engine - Install Docker
- Docker Compose - Typically included with Docker Desktop
Optional: Cache server
Optional: Cache server
For production deployments with external caching:
- Redis 4.0+ or KeyDB (Redis-compatible)
Method 1: pip installation
The fastest way to install Secure MCP Gateway.Create a virtual environment
Your prompt should now show
(secure-mcp-gateway-venv) indicating the virtual environment is active.Install from PyPI
- Secure MCP Gateway (version 2.1.7)
- MCP SDK with CLI (
mcp[cli]>=1.10.1) - All required dependencies (FastMCP, Flask, Redis client, etc.)
Generate configuration
enkrypt_mcp_config.json at:- macOS/Linux:
~/.enkrypt/enkrypt_mcp_config.json - Windows:
%USERPROFILE%\.enkrypt\enkrypt_mcp_config.json
- Default project, user, and API key
- Echo test server configured
- Common gateway settings (log level, cache, telemetry)
Example output
Configuration files created
enkrypt_mcp_config.json (macOS example)
enkrypt_mcp_config.json (macOS example)
claude_desktop_config.json (macOS example)
claude_desktop_config.json (macOS example)
Method 2: Docker installation
Use Docker for containerized deployment with the full observability stack.Build the Docker image
- Python 3.12 with pip, uv, pipx
- Node.js 22.x LTS with npm, npx
- Build tools (gcc, g++, make)
- Utilities (git, jq, yq, curl, wget)
Generate configuration
If you have the CLI installed locally, use the shorthand:
secure-mcp-gateway --docker generate-config- macOS/Linux:
~/.enkrypt/docker/enkrypt_mcp_config.json - Windows:
%USERPROFILE%\.enkrypt\docker\enkrypt_mcp_config.json
Install for Claude Desktop
The Docker config includes
MCP_TRANSPORT=stdio for proper communication with Claude Desktop.Docker Compose with observability stack
For production deployments with full monitoring:- Gateway - Main service on port 8000
- API Server - REST API on port 8001
- OpenTelemetry Collector - OTLP receiver on port 4317
- Prometheus - Metrics on port 9090
- Grafana - Dashboards on port 3000 (admin/admin)
- Jaeger - Traces on port 16686
- Loki - Log aggregation
- Redis/KeyDB - External cache on port 6379
- Grafana: http://localhost:3000
- Jaeger: http://localhost:16686
- Prometheus: http://localhost:9090
Claude Desktop config for Docker
Method 3: From source
Install from the GitHub repository for development or customization.Run setup script
- Creates config at
~/.enkrypt/enkrypt_mcp_config.json - Generates unique gateway key and UUIDs
- Sets up echo server with correct path
- Installs gateway for Claude Desktop
Alternative: Manual installation
If you prefer manual setup:Installing for other clients
Cursor installation
For Cursor IDE:- macOS/Linux:
~/.cursor/mcp.json - Windows:
%USERPROFILE%\.cursor\mcp.json
Cursor usually doesn’t require a restart, but if it shows a loading state for a long time, restart the IDE.
Claude Code installation
For Claude Code CLI:Claude Code requires the
claude CLI to be installed. See Claude Code docs.Verification
After installation, verify the gateway is working:Check gateway connection
In your MCP client (Claude Desktop, Cursor, etc.), look for the MCP server indicator (usually a 🔌 icon).You should see “Enkrypt Secure MCP Gateway” listed.
Test echo server
Ask: “Use the echo server to send the message ‘test’.”The gateway should forward the request and return the echoed message.
Configuration file locations
Gateway config
- macOS/Linux (pip/source):
~/.enkrypt/enkrypt_mcp_config.json - Windows (pip/source):
%USERPROFILE%\.enkrypt\enkrypt_mcp_config.json - Docker:
~/.enkrypt/docker/enkrypt_mcp_config.json
MCP client configs
Claude Desktop:- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS/Linux:
~/.cursor/mcp.json - Windows:
%USERPROFILE%\.cursor\mcp.json
- Managed via
claude mcpcommands (no JSON file)
Uninstallation
To remove the gateway:Troubleshooting
Python version issues
Python 3.8 minimum requirement
Python 3.8 minimum requirement
The gateway requires Python 3.8 or higher, but 3.11+ is recommended.On macOS with Homebrew:On Windows, download from python.org.
uv not found
Install uv package manager
Install uv package manager
If If
uv --version fails:python -m uv works, use it for all uv commands.mcp command not found
MCP CLI installation
MCP CLI installation
The MCP CLI should be installed with the gateway. If not:
Virtual environment issues
Virtual environment activation
Virtual environment activation
If your virtual environment doesn’t activate:macOS/Linux:Windows:If PowerShell blocks scripts:
Docker permission denied
Docker socket permissions
Docker socket permissions
On Linux, if you get permission denied:
Config file not found
Missing configuration file
Missing configuration file
If the gateway can’t find the config:
-
Verify the file exists:
-
Regenerate if missing:
-
Check permissions:
Next steps
Quick start
Follow the quick start guide to test your installation
Configuration
Configure servers, guardrails, and advanced settings
CLI reference
Learn all CLI commands for managing the gateway
Deployment
Deploy to production with observability