06 · Best practice
Wire up the right MCPs early
GitHub, Linear, Notion, PostHog. The model can read real data, not your paraphrase of it.
MCPs (Model Context Protocol servers) are how Claude talks to your tools — GitHub, Notion, Linear, Figma, Supabase, your analytics. Wiring them is one-time work that pays back daily. The friction is that every machine you use needs its own wiring, and secrets management gets messy fast.
Runtime solves this by pre-configuring MCPs in the sandbox so every session starts with the integrations already connected. If you don't use Runtime, the .mcp.json pattern (per-repo, version-controlled, secrets in .env) is the canonical answer.
How to do it (without Runtime)
Copy mcp.json.example from this repo to .mcp.json in your repo root. Use the ${VAR} placeholders — never inline tokens.
Add the MCPs you actually use. Less is more — each one adds context overhead at startup.
Reference secrets via env vars. Add them to .env.local (gitignored) and document the keys in .env.example (committed).
Commit .mcp.json. Do not commit .env.local.
Curated MCPs PMs should consider
- GitHub — for issues, PRs, file operations.
- Notion — for reading specs, writing meeting notes, querying databases.
- Linear / Jira — for ticket creation and triage.
- PostHog — for analytics queries and feature flag flips.
- Supabase — for DB inspection and migrations.
- Figma (Dev Mode MCP) — for design context.
Marcus Moretti at Every uses an Arxiv MCP for academic research synthesis. Ryan Nystrom at Notion uses the Honeycomb MCP for CI metrics. Pick yours by what you query weekly, not by what looks cool.
The .mcp.json format
{
"mcpServers": {
"supabase": {
"command": "npx",
"args": [
"-y",
"@supabase/mcp-server-supabase@latest",
"--access-token",
"${SUPABASE_ACCESS_TOKEN}"
]
}
}
}
The ${SUPABASE_ACCESS_TOKEN} reads from your shell env. Combine with practice 07 for safe rotation.
The skip
Don't add an MCP because the integration exists. Add it because there's a specific task you do weekly that needs that data. If you can't name the task, you don't need the MCP.
Anti-patterns
- Hardcoding API keys in
.mcp.json. See practice 07. - Installing 30 MCPs you'll never use. Each one adds startup overhead.
- Forgetting to share your
.env.exampleupdates with the team when you add a new MCP.