This guide walks you from zero to a running MCPG gateway in under a minute. We'll use
mcpg-ctl quickstart, which spawns the gateway, the control plane API, and an embedded
React dashboard on a single port — no Postgres, no Helm, no manual config.
Prerequisites
- A POSIX shell (Linux, macOS, or WSL2)
- Either
cargoor Homebrew, or curl access for the install script
1. Install the CLI
bash
# Cargo (fastest for Rust devs)
cargo install mcpg-ctl
# Or Homebrew
brew install mcpg-dev/tap/mcpg-ctl
# Or install script (auto-detects arch + OS)
curl -fsSL https://mcpg.dev/install.sh | bash
2. Run quickstart
bash
mcpg-ctl quickstart
You'll see output like:
perl
✓ control plane: http://127.0.0.1:7843
✓ gateway: http://127.0.0.1:8787
✓ state: ~/.mcpg/state.db
✓ opening browser…
The browser opens the embedded dashboard. You're now running:
- The control plane — multi-tenant management API on port 7843
- The gateway — MCP runtime on port 8787
- The dashboard — same React UI fleet operators use in production
3. Define your first binding
Drop a config.yaml next to your shell:
yaml
bindings:
- id: github
type: http
base_url: https://api.github.com
headers:
authorization: "Bearer ${GITHUB_TOKEN}"
tools:
- name: list_repos
method: GET
path: /user/repos
identity_pass_through: false
Reload:
bash
mcpg-ctl reload --config config.yaml
The gateway now exposes github.list_repos as an MCP tool.
4. Connect a client
Point any MCP client at http://127.0.0.1:8787/mcp. Examples:
- Claude Desktop — add an MCP server with
url: http://127.0.0.1:8787/mcp - Cursor — same URL in
mcp.json - Continue — same URL
- curl —
curl http://127.0.0.1:8787/mcp -X POST -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
You'll see github.list_repos in the tool list. Call it. Watch it appear in the dashboard
under Tool activity.
What's next
- Identity setup — wire up OIDC, mTLS, or API keys
- Policy authorization — Cedar, OPA, or Casbin
- Production install — Docker, Helm, or compiled binaries
- Plugin authoring — write your own plugin