Yaw MCP - MCP servers, managed locally

5 min read Original article ↗

Get started

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.

Recommended - via Yaw Terminal

yaw mcp install claude-code   # connect Yaw MCP to Claude Code
yaw mcp doctor                # verify the connection

Yaw Terminal ships with Yaw MCP, so there is nothing to install - the 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.

Standalone - CLI only

If you do not have or want Yaw Terminal

npm install -g @yawlabs/mcp    # install the software
yaw-mcp install claude-code    # connect it to Claude Code
yaw-mcp doctor                 # verify the connection

The first line installs the CLI from npm (~5MB, Node 18+). The second connects it to a client - swap claude-code for claude-desktop, cursor, or vscode. Then add servers with yaw-mcp add <slug> (browse the catalog).

What it does

Local-first. Run MCP servers from a JSON file you control. No account required for Free. Nothing leaves your machine - no telemetry, no analytics, no opt-in pings. Bring your own API keys; they stay in ~/.yaw-mcp/bundles.json on your disk.

One CLI, every MCP server. Discover, install, and run servers from the public catalog or your own JSON. Token-budget aware - 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.

Compliance-graded. Every catalog entry is scored against the 88-test mcp-compliance suite. Set 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.

Sync with Pro. Add a license key and 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.

Shared with Yaw Team. Same Yaw Team license that unlocks Yaw Terminal's shared connections + commands + runbooks ALSO unlocks Yaw MCP's shared bundles + audit log. One license key, both products. New teammates get the company-canonical MCP server set on their first yaw mcp sync pull.

BYOK across AI clients. Works with Claude Code, Claude Desktop, Cursor, VS Code, and anything else that launches MCP servers over stdio. yaw mcp install <client> wires up the launch entry in the correct config file for the OS - no hand-editing JSON.

Pricing

Free forever for local use. Pro adds cross-machine sync. Yaw Team adds shared bundles + audit log on top of Yaw Terminal team features.

See pricing

Frequently asked

Do I need an account to use Yaw MCP?

No. 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 to sync bundles across machines (Pro) or share them with a team (Yaw Team).

What is the relationship to Yaw MCP?

Yaw MCP is the rebrand of what previously shipped as Yaw MCP and the @yawlabs/mcph CLI. The old hosted SaaS is being sunset; the local-first CLI is the new product. Existing Yaw MCP URLs redirect to yaw.sh/mcp; the old @yawlabs/mcph package is deprecated and points at @yawlabs/mcp.

What is in a "bundle"?

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 CLI's install meta-tool edits this file for you.

How does sync handle my API keys?

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.

Does Yaw MCP work with Claude Code, Cursor, etc.?

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, Claude Desktop, Cursor, VS Code. Any client that speaks the MCP stdio protocol will work even if not in that list.

Why bundle Yaw Team across Terminal + MCP?

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.

What about self-hosting?

Yaw MCP IS self-hosted by default. The Free tier runs entirely on your machine with no backend dependency. The only thing the Pro / 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.