Skip to content

Commit 142bb4f

Browse files
authored
Update README and docs (including logo) (#122)
* Update README (and add logo) * Configure MKDocs site to use favicon and additional custom CSS * Added docs/assets folder for images, CSS etc.
1 parent 4b72398 commit 142bb4f

File tree

11 files changed

+212
-64
lines changed

11 files changed

+212
-64
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,6 @@ docs/commands/
5050
.venv/
5151
# Added by goreleaser init:
5252
dist/
53+
54+
# Image thumbnails
55+
.DS_Store

README.md

Lines changed: 141 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,100 +1,196 @@
1-
# mcpd
1+
# <img src="docs/assets/mcpd-logo.png" alt="mcpd" width="300"/>
2+
3+
> **Run your agents, not your infrastructure.**
24
35
**mcpd** is a tool to declaratively manage [Model Context Protocol](https://modelcontextprotocol.io/overview) (MCP) servers, providing a consistent interface to define and run tools across environments, from local development to containerized cloud deployments.
46

7+
Built by [Mozilla AI](https://mozilla.ai)
8+
9+
---
10+
511
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.
612

713
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.
814

9-
> Built by [Mozilla AI](https://mozilla.ai)
1015

11-
## 🚀 Features
16+
## The Problem
1217

13-
- Declarative `.mcpd.toml` to define servers/tools
14-
- Run and manage language-agnostic MCP servers via a single CLI
15-
- Secure execution context for secrets and runtime args
16-
- Smooth dev-to-prod transition via the `mcpd` daemon
17-
- Rich CLI and SDK tooling, see supported languages below:
18+
ML teams build agents that work perfectly locally. Operations teams get handed Python scripts and told "make this production-ready across dev/UAT/prod."
19+
The gap between local development and enterprise deployment kills AI initiatives.
20+
21+
`mcpd` solves this with declarative configuration, secure secrets management, and seamless environment promotion - all while keeping the developer experience simple.
1822

1923

20-
| Language | Repository | Status |
21-
|------------|------------------------------------------------------------------|--------------------|
22-
| Python | [mcpd-sdk-python](https://github.com/mozilla-ai/mcpd-sdk-python) | :white_check_mark: |
23-
| JavaScript | _Coming soon_ | :yellow_circle: |
24+
## Why mcpd?
2425

25-
## 📖 Documentation
26+
**Zero-Config Tool Setup**
27+
No cloning repos or installing language-specific dependencies. `mcpd add` and `mcpd daemon` handle everything.
2628

27-
Full documentation available at:
29+
**Language-Agnostic Tooling**
30+
Use MCP servers written in Python, JavaScript, TypeScript via a unified HTTP API.
2831

29-
👉 **[https://mozilla-ai.github.io/mcpd/](https://mozilla-ai.github.io/mcpd/)**
32+
**Declarative Configuration**
33+
Version-controlled `.mcpd.toml` files define your agent infrastructure. Reproducible, auditable, CI-friendly.
3034

31-
Covers setup, CLI usage, configuration, secrets, the daemon, Makefile commands, and full tutorials.
35+
**Enterprise-Ready Secrets**
36+
Separate project configuration from runtime variables, and export sanitized secrets templates. Never commit secrets to Git again.
3237

33-
Explore the Python SDK, with a list of examples using it with different agent frameworks, at:
38+
**Seamless Local-to-Prod**
39+
Same configuration works in development, CI, and cloud environments without modification.
40+
41+
42+
## Built for Dev & Production
43+
44+
| Development Workflow | Production Benefit |
45+
|-----------------------------------------------------------------------------------|------------------------------------------------------------|
46+
| `mcpd daemon` runs everything locally | Same daemon runs in containers |
47+
| `.mcpd.toml` version-controlled configs | Declarative infrastructure as code |
48+
| Local secrets in `~/.config/mcpd/` | Secure secrets injection via control plane |
49+
| `mcpd config export` exports version-control safe snapshot of local configuration | Sanitized secrets config and templates for CI/CD pipelines |
50+
51+
## Features
52+
53+
- Focus on Developer Experience via `mcpd` CLI
54+
- Declarative configuration (`.mcpd.toml`) to define required servers/tools
55+
- Run and manage language-agnostic MCP servers
56+
- Secure execution context for secrets and runtime args
57+
- Smooth dev-to-prod transition via the `mcpd` daemon
58+
- Rich CLI and SDK tooling, see supported languages below:
3459

35-
👉 **[https://github.com/mozilla-ai/mcpd-sdk-python](https://github.com/mozilla-ai/mcpd-sdk-python)**
3660

37-
## ⚙️ Quickstart
61+
## 🚀 Quick Start
3862

39-
Install dependencies:
63+
### Prerequisites
4064

41-
- [Go](https://go.dev/doc/install)
65+
- [Go](https://go.dev/doc/install) (only required for development of `mcpd`)
4266
- [npx](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
4367
- [uvx](https://docs.astral.sh/uv/getting-started/installation/)
4468

45-
Clone the repo:
69+
### Installation
70+
71+
#### via Homebrew
72+
73+
Add the Mozilla.ai tap:
74+
4675
```bash
47-
git clone [email protected]:mozilla-ai/mcpd.git
48-
cd mcpd
76+
brew tap mozilla-ai/tap
4977
```
5078

51-
Build the binary:
79+
Then install `mcpd`:
80+
5281
```bash
53-
make build
54-
```
82+
brew install mcpd
83+
````
84+
85+
Or install directly from the cask:
5586

56-
Install globally:
5787
```bash
58-
sudo make install
88+
brew install --cask mozilla-ai/tap/mcpd
5989
```
6090

61-
In your agentic application code...
91+
#### via GitHub releases
92+
93+
Official releases can be found on [mcpd's GitHub releases page](https://github.com/mozilla-ai/mcpd/releases).
94+
95+
The following is an example of manually downloading and installing `mcpd` using `curl` and `jq` by running `install_mcpd`:
6296
63-
Initialize a new project:
6497
```bash
65-
mcpd init
98+
function install_mcpd() {
99+
command -v curl >/dev/null || { echo "curl not found"; return 1; }
100+
command -v jq >/dev/null || { echo "jq not found"; return 1; }
101+
102+
latest_version=$(curl -s https://api.github.com/repos/mozilla-ai/mcpd/releases/latest | jq -r .tag_name)
103+
os=$(uname)
104+
arch=$(uname -m)
105+
106+
zip_name="mcpd_${os}_${arch}.tar.gz"
107+
url="https://github.com/mozilla-ai/mcpd/releases/download/${latest_version}/${zip_name}"
108+
109+
echo "Downloading: $url"
110+
curl -sSL "$url" -o "$zip_name" || { echo "Download failed"; return 1; }
111+
112+
echo "Extracting: $zip_name"
113+
tar -xzf "$zip_name" mcpd || { echo "Extraction failed"; return 1; }
114+
115+
echo "Installing to /usr/local/bin"
116+
sudo mv mcpd /usr/local/bin/mcpd && sudo chmod +x /usr/local/bin/mcpd || { echo "Install failed"; return 1; }
117+
118+
rm -f "$zip_name"
119+
echo "mcpd installed successfully"
120+
}
66121
```
67122
68-
Add a server (e.g. `time`):
123+
#### via local Go binary build
124+
69125
```bash
70-
mcpd add time
126+
# Clone and build
127+
git clone [email protected]:mozilla-ai/mcpd.git
128+
cd mcpd
129+
make build
130+
sudo make install # Install mcpd 'globally' to /usr/local/bin
71131
```
72132
73-
Start the daemon:
133+
### Using mcpd
134+
74135
```bash
75-
mcpd daemon
136+
# Initialize a new project
137+
mcpd init
138+
139+
# Add an MCP server
140+
mcpd add time
141+
142+
# Set the local timezone for the MCP server
143+
mcpd config args set time -- --local-timezone=Europe/London
144+
145+
# Start the daemon in dev mode with debug logging
146+
mcpd daemon --dev --log-level=DEBUG --log-path=$(pwd)/mcpd.log
147+
148+
# You can tail the log file
149+
tail -f mcpd.log
76150
```
77151
78-
API docs will be available at `/docs`, e.g. `http://localhost:8090/docs`
152+
API docs will be available at [http://localhost:8090/docs](http://localhost:8090/docs).
79153
80-
## 🧰 Development
81154
82-
Run tests:
155+
## Deploy Anywhere
156+
157+
`mcpd` is runtime-flexible and infrastructure-agnostic:
158+
159+
- ⚙️ Works in any container or host with `uv` and `npx`
160+
- ☁️ Multi-cloud ready (AWS, GCP, Azure, on-prem)
161+
- ♻️ Low resource overhead via efficient server management
162+
163+
164+
## 📚 Documentation & SDKs
165+
166+
**Full documentation:** [https://mozilla-ai.github.io/mcpd/](https://mozilla-ai.github.io/mcpd/)
167+
168+
**SDKs available:**
169+
170+
| Language | Repository | Status |
171+
|------------|------------------------------------------------------------------|--------|
172+
| Python | [mcpd-sdk-python](https://github.com/mozilla-ai/mcpd-sdk-python) | ✅ |
173+
| JavaScript | _Coming soon_ | 🟡 |
174+
175+
176+
## 💻 Development
177+
178+
Build local code:
83179
```bash
84-
make test
180+
make build
85181
```
86182
87-
Run the local documentation site (requires `uv`):
183+
Run tests:
88184
```bash
89-
make docs-local
185+
make test
90186
```
91187
92-
Generate CLI documentation and related docs site navigation:
188+
Run the local documentation site (requires `uv`), dynamically generates command line documentation:
93189
```bash
94-
make docs-cli
95-
make docs-nav
190+
make docs
96191
```
97192
193+
98194
---
99195
100196
## 🤝 Contributing

docs/assets/custom.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
span.logo-text {
2+
display: none;
3+
}
4+
5+
img.logo-image {
6+
width: 300px;
7+
height: auto;
8+
}

docs/assets/mcpd-logo.png

39.4 KB
Loading

docs/assets/mcpd-logo.svg

Lines changed: 11 additions & 0 deletions
Loading

docs/assets/mcpd.png

28.9 KB
Loading

docs/assets/mcpd.svg

Lines changed: 7 additions & 0 deletions
Loading

docs/favicon.ico

31.3 KB
Binary file not shown.

docs/index.md

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,49 @@
1-
# mcpd
1+
# <span class="logo-text">mcpd</span> ![mcpd](assets/mcpd-logo.png){: .logo-image}
22

33
> *Run your agents, not your infrastructure.*
44
55
---
66

77
`mcpd` is a toolchain and runtime developed by [Mozilla AI](https://mozilla.ai) that simplifies the configuration,
8-
execution and integration of Model Context Protocol (MCP) servers with your agentic application.
9-
It is intended to provide the same experience across local development and production environments.
8+
execution and integration of [Model Context Protocol](https://modelcontextprotocol.io/overview) (MCP) servers with your agentic application.
9+
It is intended to provide the same experience across local, development and production environments.
1010

1111
It removes the friction of cross-language server orchestration, secrets management, version pinning, and lifecycle control.
1212

1313
---
1414

15-
## Why `mcpd`?
15+
## Why `mcpd`?
1616

1717
Traditional agent frameworks often embed complex subprocess logic, brittle startup scripts, and ad-hoc 'desktop style' config.
1818

1919
`mcpd` replaces this with:
2020

21-
🧪 **Zero-Config Tool Setup**
21+
**Zero-Config Tool Setup**
2222
No cloning repos or installing language-specific dependencies. `mcpd add` and `mcpd daemon` handle everything.
2323

24-
🌍 **Language-Agnostic Tooling**
24+
**Language-Agnostic Tooling**
2525
Use MCP servers written in Python (`uvx`), JavaScript/TypeScript (`npx`) in your code via a HTTP REST API that supports routing to MCP Servers.
2626

27-
🧭 **Declarative Tool Management**
27+
**Declarative Tool Management**
2828
Define version-pinned MCP servers and tools in `.mcpd.toml`. Reproducible, consistent, and CI-friendly.
2929

30-
🔐 **Project config separated from runtime variables**
31-
Args and environment variables per server e.g. `~/.config/mcpd/secrets.dev.toml`. Never commit dev specific vars to Git again.
30+
**Project config separated from runtime variables**
31+
Exportable args and environment variables per server e.g. `~/.config/mcpd/secrets.dev.toml`.
32+
Never commit dev specific vars to Git again.
3233

33-
🛠️ **Unified Dev Experience**
34+
**Unified Dev Experience**
3435
One command: `mcpd daemon`. Starts and manages all servers behind the scenes.
3536

36-
🧰 **Intuitive SDK Integration**
37+
**Intuitive SDK Integration**
3738
The Python `mcpd_sdk` makes calling tools feel like native function calls; no HTTP, STDIO, or SSE boilerplate.
3839
Even easier for users of [any-agent](https://github.com/mozilla-ai/any-agent) via `.agent_tools()`.
3940

40-
🚀 **Seamless Local-to-Prod Transition**
41+
**Seamless Local-to-Prod Transition**
4142
The same `.mcpd.toml` and agent code work in dev, CI, and cloud environments without modification.
4243

4344
---
4445

45-
## 🏗️ Built for Dev & Infra
46+
## Built for Dev & Infra
4647

4748
| Feature | Dev Workflow | Production Benefit |
4849
|------------------------------------------------------------------|------------------------------------|---------------------------------------------|
@@ -55,20 +56,34 @@ Traditional agent frameworks often embed complex subprocess logic, brittle start
5556

5657
---
5758

58-
## 🌐 Deploy Anywhere
59+
## Deploy Anywhere
5960

6061
`mcpd` is runtime-flexible and infrastructure-agnostic:
6162

62-
- ⚙️ Works in any container or host with `uv` and `npx` (NodeJS)
63+
- ⚙️ Works in any container or host with `uv` and `npx`
6364
- ☁️ Multi-cloud ready (AWS, GCP, Azure, on-prem)
6465
- ♻️ Low resource overhead via in-process server management
6566

6667
---
6768

68-
## Install
69+
## 📦 Install
6970

7071
### Homebrew
7172

73+
Add the [Mozilla.ai tap](https://github.com/mozilla-ai/homebrew-tap):
74+
75+
```bash
76+
brew tap mozilla-ai/tap
77+
```
78+
79+
Then install `mcpd`:
80+
81+
```bash
82+
brew install mcpd
83+
```
84+
85+
Or install directly from the cask in a single command:
86+
7287
```bash
7388
brew install --cask mozilla-ai/tap/mcpd
7489
```
@@ -88,8 +103,8 @@ Use the sidebar to explore:
88103

89104
---
90105

91-
## 🌐 About Mozilla AI
106+
## About Mozilla.ai
92107

93-
This project is built and maintained by [Mozilla AI](https://mozilla.ai), a mission-driven organization reimagining AI for the public good.
108+
This project is built and maintained by [Mozilla.ai](https://mozilla.ai), a mission-driven organization reimagining AI for the public good.
94109

95110
Have ideas or feedback? Contributions welcome via [GitHub](https://github.com/mozilla-ai/mcpd).

0 commit comments

Comments
 (0)