Wire Joint Chiefs into any MCP client.
One JSON snippet, one path, no API keys in the config. Thirty seconds end-to-end.
01 Install the binary
If you haven't already, install Joint Chiefs. You need the jointchiefs-mcp binary on disk — the setup app drops it at your chosen path, or build from source and cp it into /opt/homebrew/bin/.
02 Add the server to your client's MCP config
The config is standard MCP — the same mcpServers key every MCP-aware client reads.
{
"mcpServers": {
"joint-chiefs": {
"command": "/opt/homebrew/bin/jointchiefs-mcp"
}
}
}
Replace the command path if you installed somewhere other than /opt/homebrew/bin/.
03 Paste it where your client expects
The JSON shape is the same across MCP-aware clients — only the location of the config file differs. Most hosts store it in one of these conventions:
- A project-level JSON file at the repo root (e.g.,
.mcp.json,.cursor/mcp.json) - A user-level config at
~/.<host-name>/or~/.config/<host-name>/ - A macOS app-support path under
~/Library/Application Support/<host-name>/ - A settings UI inside the host (some clients prefer this over editing JSON)
Check your client's docs for the exact path — or, easier, paste the natural-language playbook prompt from the setup app's MCP Config section into your AI assistant. It can find its own config file and add Joint Chiefs to it for you.
04 Restart your client and verify
Ask your AI: "Run a Joint Chiefs review on this file." It should invoke the joint_chiefs_review tool and stream back a consensus summary.
If the tool doesn't appear in your client's tool list, it's almost always one of:
- Path in the JSON doesn't match where the binary actually lives.
- No API keys set — the server will start but every provider will be "not configured." Open the setup app and add a key, or set
OPENAI_API_KEY/ANTHROPIC_API_KEY/etc. in the environment your client launches in. - Client wasn't restarted after editing the config.
Stdio only. No ports. No network.
When your client launches, it spawns jointchiefs-mcp as a child process and talks to it over stdin/stdout with JSON-RPC. The server never binds a port, never makes outbound connections except to the LLM providers you configured, and inherits its trust boundary from the parent process.
API keys live in your macOS Keychain. The MCP server doesn't read them directly — it shells out to jointchiefs-keygetter, the only binary with Keychain ACL access. Keys stay off the MCP wire and out of every log.
Want the CLI too?
The same engine runs from your terminal — streaming output, JSON mode, exit codes for pre-commit and CI.