Run your agents, not your infrastructure.
mcpd is a tool to declaratively manage Model Context Protocol (MCP) servers, providing a consistent interface to define and run tools across environments, from local development to containerized cloud deployments.
Built by Mozilla AI
Today, mcpd
launches MCP servers as subprocesses using STDIO (Standard Input/Output) and acts as an HTTP proxy between agents and the tools they expose. This enables agent-compatible workflows with support for secrets, runtime arguments, and reproducible configurations, no matter where mcpd
is running.
We're developing a Kubernetes operator, guided by our internal roadmap, to extend mcpd
for deploying and managing MCP servers as long-lived services in production. It will use the same .mcpd.toml
configuration and proxy model, making it easier to scale and manage lifecycles without changing the developer experience.
ML teams build agents that work perfectly locally. Operations teams get handed Python scripts and told "make this production-ready across dev/UAT/prod." The gap between local development and enterprise deployment kills AI initiatives.
mcpd
solves this with declarative configuration, secure secrets management, and seamless environment promotion - all while keeping the developer experience simple.
Zero-Config Tool Setup
No cloning repos or installing language-specific dependencies. mcpd add
and mcpd daemon
handle everything.
Language-Agnostic Tooling
Use MCP servers written in Python, JavaScript, TypeScript via a unified HTTP API.
Declarative Configuration
Version-controlled .mcpd.toml
files define your agent infrastructure. Reproducible, auditable, CI-friendly.
Enterprise-Ready Secrets
Separate project configuration from runtime variables, and export sanitized secrets templates. Never commit secrets to Git again.
Seamless Local-to-Prod
Same configuration works in development, CI, and cloud environments without modification.
Development Workflow | Production Benefit |
---|---|
mcpd daemon runs everything locally |
Same daemon runs in containers |
.mcpd.toml version-controlled configs |
Declarative infrastructure as code |
Local secrets in ~/.config/mcpd/ |
Secure secrets injection via control plane |
mcpd config export exports version-control safe snapshot of local configuration |
Sanitized secrets config and templates for CI/CD pipelines |
- Focus on Developer Experience via
mcpd
CLI - Declarative configuration (
.mcpd.toml
) to define required servers/tools - Run and manage language-agnostic MCP servers
- Secure execution context for secrets and runtime args
- Smooth dev-to-prod transition via the
mcpd
daemon - Rich CLI and SDK tooling, see supported languages below:
Add the Mozilla.ai tap:
brew tap mozilla-ai/tap
Then install mcpd
:
brew install mcpd
Or install directly from the cask:
brew install --cask mozilla-ai/tap/mcpd
Official releases can be found on mcpd's GitHub releases page.
The following is an example of manually downloading and installing mcpd
using curl
and jq
by running install_mcpd
:
function install_mcpd() {
command -v curl >/dev/null || { echo "curl not found"; return 1; }
command -v jq >/dev/null || { echo "jq not found"; return 1; }
latest_version=$(curl -s https://api.github.com/repos/mozilla-ai/mcpd/releases/latest | jq -r .tag_name)
os=$(uname)
arch=$(uname -m)
zip_name="mcpd_${os}_${arch}.tar.gz"
url="https://github.com/mozilla-ai/mcpd/releases/download/${latest_version}/${zip_name}"
echo "Downloading: $url"
curl -sSL "$url" -o "$zip_name" || { echo "Download failed"; return 1; }
echo "Extracting: $zip_name"
tar -xzf "$zip_name" mcpd || { echo "Extraction failed"; return 1; }
echo "Installing to /usr/local/bin"
sudo mv mcpd /usr/local/bin/mcpd && sudo chmod +x /usr/local/bin/mcpd || { echo "Install failed"; return 1; }
rm -f "$zip_name"
echo "mcpd installed successfully"
}
# Clone and build
git clone [email protected]:mozilla-ai/mcpd.git
cd mcpd
make build
sudo make install # Install mcpd 'globally' to /usr/local/bin
# Initialize a new project
mcpd init
# Add an MCP server
mcpd add time
# Set the local timezone for the MCP server
mcpd config args set time -- --local-timezone=Europe/London
# Start the daemon in dev mode with debug logging
mcpd daemon --dev --log-level=DEBUG --log-path=$(pwd)/mcpd.log
# You can tail the log file
tail -f mcpd.log
API docs will be available at http://localhost:8090/docs.
mcpd
is runtime-flexible and infrastructure-agnostic:
- βοΈ Works in any container or host with
uv
andnpx
- βοΈ Multi-cloud ready (AWS, GCP, Azure, on-prem)
- β»οΈ Low resource overhead via efficient server management
Full documentation: https://mozilla-ai.github.io/mcpd/
SDKs available:
Language | Repository | Status |
---|---|---|
Python | mcpd-sdk-python | β |
JavaScript | Coming soon | π‘ |
Build local code:
make build
Run tests:
make test
Run the local documentation site (requires uv
), dynamically generates command line documentation:
make docs
Please see our Contributing to mcpd guide for more information.
Licensed under the Apache License 2.0.