A CLI that runs MCP servers on your machine, no account required. Yaw Team adds cross-machine sync, shared bundles, and an audit log.
Two steps: get Yaw MCP (the software), then connect it to your AI client. The install <client> command does the second step - it wires Yaw MCP into the client's config; it does not re-install the software.
yaw mcp install claude-code # connect Yaw MCP to Claude Code yaw mcp doctor # verify the connection
yaw mcp command works out of the box (it runs the bundled @yawlabs/mcp sidecar). Run install <client> once to connect it to whichever AI client you use.npm install -g @yawlabs/mcp # install the software yaw-mcp install claude-code # connect it to Claude Code yaw-mcp doctor # verify the connection
claude-code for claude-desktop, cursor, or vscode. Then add servers with yaw-mcp add <slug> (browse the catalog).Yaw MCP speaks the standard MCP stdio protocol, so it works with any client that launches MCP servers over stdio. yaw mcp install <client> (or yaw-mcp install <client> for the standalone CLI) writes the right launch entry into the client's config file for your OS - no hand-editing JSON.
| Client | Install command | Config file |
|---|---|---|
| Claude Code (CLI) | yaw mcp install claude-code |
~/.claude.json (managed by the claude mcp subcommand) |
| Codex CLI | yaw mcp install codex-cli |
~/.codex/config.toml |
| Gemini CLI | yaw mcp install gemini-cli |
~/.gemini/settings.json |
| Claude Desktop | yaw mcp install claude-desktop |
~/Library/Application Support/Claude/claude_desktop_config.json (mac) -- %APPDATA%\Claude\claude_desktop_config.json (win) |
| Cursor | yaw mcp install cursor |
~/.cursor/mcp.json (global) or .cursor/mcp.json (project) |
| VS Code | yaw mcp install vscode |
.vscode/mcp.json in your project root (uses the servers key) |
| Windsurf | yaw mcp install windsurf |
~/.codeium/windsurf/mcp_config.json |
| Zed | yaw mcp install zed |
~/.config/zed/settings.json (under context_servers) |
| Cline (VS Code extension) | yaw mcp install cline |
VS Code command palette: Cline: Open MCP Settings (cline_mcp_settings.json) |
| Continue.dev | yaw mcp install continue |
~/.continue/config.json (under mcpServers) |
Generic .mcp.json |
yaw mcp install mcp |
.mcp.json in your project root (the mcpServers key) |
Don't see your client? Anything that speaks the MCP stdio protocol works -- the install command is just a convenience that writes the right config-file shape. You can also hand-edit your config to point at yaw-mcp (standalone) or yaw mcp (bundled in Yaw Terminal).
~/.yaw-mcp/bundles.json on your disk.
yaw mcp dispatch ranks your servers against the current task and loads only what is needed instead of keeping every tool description in your AI client's context window.
YAW_MCP_MIN_COMPLIANCE=B and the CLI refuses to activate anything below the bar. The grade renders inline on every discover output - the trust signal is visible without opting in first.
yaw mcp sync push uploads your server schema (env values stripped) to a private store. yaw mcp sync pull mirrors it onto another machine. Set up once, use everywhere.
yaw mcp sync pull.
yaw mcp install <client> wires up the launch entry in the correct config file for the OS - no hand-editing JSON.
Free forever for local use. Yaw Team adds cross-machine sync, shared bundles + audit log on top of Yaw Terminal team features.
See pricingNo. Free runs entirely from a JSON file on your machine. The CLI never phones home in Free mode - no telemetry, no opt-in pings, no account check on startup. You only need a license key if you want Yaw Team - cross-machine sync, team-shared bundles, and the audit log.
Yaw MCP is the rebrand of what previously shipped as MCP Hosting and the @yawlabs/mcph CLI. The old hosted SaaS is being sunset; the local-first CLI is the new product. Existing mcp.hosting URLs redirect to yaw.sh/mcp; the old @yawlabs/mcph package is deprecated and points at @yawlabs/mcp.
A bundle is the set of MCP servers Yaw MCP will load on startup. Each server entry has the standard MCP shape - a namespace, a command, args, env vars, and either a transport or a URL. The local file is ~/.yaw-mcp/bundles.json (user-global) or <project>/.yaw-mcp/bundles.json (project-local, overrides user-global). The yaw-mcp add and remove commands manage this file for you; yaw-mcp install <client> is the separate step that wires yaw-mcp into your AI client.
The sync push command strips env VALUES before upload - only the schema (which env vars each server expects) goes to the server. Your secrets stay on each machine; the server never sees the plaintext.
Yes. Yaw MCP is itself an MCP server that launches over stdio. yaw mcp install <client> writes the correct launch entry into the client's config file (correct path for your OS, correct JSON shape). Supported clients: Claude Code, Codex CLI, Gemini CLI, Claude Desktop, Cursor, VS Code, Windsurf, Zed, Cline, Continue.dev, and generic .mcp.json. Any client that speaks the MCP stdio protocol will work even if not in that list - see the Compatible clients section for the full table.
The architecture supports it for free - both products share the same Netlify Functions backend, the same license key format, and the same HMAC session cookie. The team-shared resources (connections / commands / runbooks for Terminal; bundles / secrets / audit log for MCP) are conceptually the same thing: team-shared dev tooling state. One license key, two product surfaces, simpler pricing.
Yaw MCP IS self-hosted by default. The Free tier runs entirely on your machine with no backend dependency. The only thing the Yaw Team backend does is sync - and that backend (Netlify Functions on yaw.sh) has no per-customer footprint, just shared blob storage keyed by license-order-id. There is no "deploy your own Yaw MCP backend" product because the sync layer is intentionally a hosted-only convenience, not a system you'd want to run yourself for one team.