// MCP_WIRING

MCP Wiring

How /saikit-workflows wires MCP servers into Claude Code, Cursor, and Codex, which transports are zero-config, which need stdio + env vars, and how the kit picks per target.

The Model Context Protocol (MCP) lets your AI CLI talk to external services through a standardized server interface. Wiring up an MCP gives Claude (or Cursor, or Codex) direct, structured access, Linear tickets become a tool call instead of a copy-paste, Stripe charges become a query instead of a screenshot.

/saikit-workflows knows about 47 official MCPs across the catalog and offers to wire each one when its tool is confirmed.

//What MCP Is

An MCP server exposes tools and resources over a transport. The AI CLI connects to the server, lists its tools, and starts calling them. The server handles auth, schema validation, and rate-limiting on its end.

Two transports matter for the workflow pass:

  • HTTP, paste a URL into config, and the AI CLI handles auth (usually OAuth on first use). No local install, no env vars to wrangle.
  • Stdio, the AI CLI spawns a local subprocess (typically via npx/uvx) and talks to it over stdin/stdout. Needs an env var or two and a working package manager.

HTTP is the new normal. Most vendors that launched an MCP in 2026 ship it as HTTP first.

//What the Kit Wires

When you confirm a tool that has an HTTP MCP, the workflow pass adds it to the proposed-MCPs list. After the install-skills phase, the kit asks once:

code
Add 5 MCP server(s) to .mcp.json?
[x] linear  , https://mcp.linear.app/sse
[x] stripe  , https://mcp.stripe.com/
[x] sentry  , https://mcp.sentry.dev/mcp
[x] vercel  , https://mcp.vercel.com/sse
[ ] supabase, https://mcp.supabase.com/mcp?project_ref={SUPABASE_PROJECT_REF}

You toggle which to wire. The kit only auto-wires HTTP MCPs, stdio MCPs are mentioned in the skill body so you can install them later by hand if you want, but the kit doesn't drop a half-configured stdio entry into your config.

//HTTP vs. Stdio

The kit's behavior:

| Transport | Auto-wire? | What you do | | --- | --- | --- | | HTTP (no placeholders) | Yes | Confirm in the MCP question. Kit writes the URL. OAuth runs on first call. | | HTTP with placeholders (e.g. {SUPABASE_PROJECT_REF}) | Yes, kit asks for the value | Provide the substitution; kit interpolates and writes. | | Stdio | No, referenced in skill | Follow the install instructions in the ops skill (npx @resend/mcp, etc.). |

Reasons not to auto-wire stdio:

  1. They need a working package manager on $PATH.
  2. They typically need at least one env var (e.g. RESEND_API_KEY) that we don't want to put in repo config.
  3. Their config shape varies between Claude Code (mcpServers.<name>.command/args/env) and Codex (TOML tables) more than HTTP entries do.

The ops skill covers the stdio install path inline. You decide whether the value is worth the setup.

//Per-Target Format

The same set of MCPs gets written into different files depending on which targets you selected:

Claude Code / Cursor, <repo>/.mcp.json:

code
{
  "mcpServers": {
    "linear":  { "type": "http", "url": "https://mcp.linear.app/sse" },
    "stripe":  { "type": "http", "url": "https://mcp.stripe.com/" },
    "sentry":  { "type": "http", "url": "https://mcp.sentry.dev/mcp" },
    "vercel":  { "type": "http", "url": "https://mcp.vercel.com/sse" }
  }
}

Codex, <repo>/.codex/config.toml:

code
[mcp_servers.linear]
url = "https://mcp.linear.app/sse"

[mcp_servers.stripe]
url = "https://mcp.stripe.com/"

[mcp_servers.sentry]
url = "https://mcp.sentry.dev/mcp"

[mcp_servers.vercel]
url = "https://mcp.vercel.com/sse"

If your existing files already have entries, the kit merges rather than overwriting:

  • .mcp.json, read JSON, add new keys to mcpServers, skip keys that already exist, re-write pretty-printed.
  • config.toml, scan for [mcp_servers.<name>] headers, append new tables for confirmed servers, skip existing ones. Comment placement is preserved on the top of the file but not perfectly through the existing tables (the parser is intentionally simple).

//The 23 Zero-Config MCPs

These are HTTP MCPs the kit wires with no further input from you. OAuth runs on first use inside the AI CLI.

| Tool | URL | | --- | --- | | Linear | https://mcp.linear.app/sse | | Jira / Atlassian | https://mcp.atlassian.com/v1/sse | | GitHub Copilot | https://api.githubcopilot.com/mcp/ | | Asana | https://mcp.asana.com/sse | | Notion | https://mcp.notion.com/mcp | | Confluence | https://mcp.atlassian.com/v1/sse | | Slack | https://mcp.slack.com/sse | | Sentry | https://mcp.sentry.dev/mcp | | PostHog | https://mcp.posthog.com/sse | | Stripe | https://mcp.stripe.com/ | | Polar | https://mcp.polar.sh/mcp/polar-mcp | | Cloudflare | https://mcp.cloudflare.com/sse | | Vercel | https://mcp.vercel.com/sse | | Supabase | https://mcp.supabase.com/mcp?project_ref={…} | | Neon | https://mcp.neon.tech/sse | | PlanetScale | https://mcp.pscale.dev/mcp/planetscale | | Mandrill (Mailchimp) | https://mandrillapp.com/mcp | | Figma Dev Mode | https://mcp.figma.com/sse | | HubSpot | https://mcp.hubspot.com/sse | | Meta Ads | https://mcp.facebook.com/ads | | Intercom | https://mcp.intercom.com/sse | | Calendly | https://mcp.calendly.com |

//Stdio MCPs the Kit Flags

The kit doesn't auto-wire these, but the corresponding ops skill includes install instructions:

  • Resend, npx @resend/mcp + RESEND_API_KEY
  • Postmark, experimental, github.com/ActiveCampaign/postmark-mcp
  • Clerk, public beta, github.com/clerk/mcp-tools
  • Auth0, official, interactive tenant auth
  • MongoDB, official, Atlas-aware
  • Turso, built into the database CLI (--mcp flag)
  • Terraform, HashiCorp official, real-time registry integration
  • Docker, Docker MCP Catalog
  • LaunchDarkly, @launchdarkly/mcp-server

//Write-Operation Warnings

A few MCPs default to read-only and require an explicit flag to enable mutations. The kit surfaces this when wiring them up:

  • Supabase, defaults to read-only; pass --allow-writes to enable mutations.
  • Meta Ads, write operations behind OAuth scope; kit notes 29 tools across FB / IG / Audience Network.

If a tool's MCP supports writes and you wire it without thinking about scope, the AI can mutate production. The ops skill for that tool will remind you in its preamble; the workflow pass also surfaces a one-line warning in the confirmation step.

//Managing By Hand

.mcp.json and .codex/config.toml are normal config files, edit them whenever you want.

To remove an MCP wired by the kit:

code
# .mcp.json, delete the key from mcpServers
# .codex/config.toml, delete the [mcp_servers.<name>] block

To add an MCP the kit doesn't ship:

code
{
  "mcpServers": {
    "your-internal": { "type": "http", "url": "https://mcp.yourcompany.internal/sse" }
  }
}

The kit won't touch entries it didn't write. Re-running /saikit-workflows will append new entries to the existing config.

MCP Wiring | SummonAI Kit Docs