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
Already bundled in 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 not using 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 (Node 20+). The second connects it to a client - swap claude-code for any of the other five ids: claude-desktop, cursor, vscode, windsurf, or gemini-cli. Then add servers with yaw-mcp add <slug> (browse the catalog).

Compatible clients

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 writes ~/.claude.json directly (top-level mcpServers). --scope project writes <project>/.mcp.json; --scope local writes projects[<project dir>].mcpServers inside the same ~/.claude.json
Gemini CLI yaw mcp install gemini-cli ~/.gemini/settings.json, or <project>/.gemini/settings.json with --scope project (the project file wins over the user one)
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 the bare command writes the default-profile user file, which yaw-mcp resolves to %APPDATA%\Code\User\mcp.json (win), ~/Library/Application Support/Code/User/mcp.json (mac), ~/.config/Code/User/mcp.json (linux) - VS Code's own docs publish no path for it, only the MCP: Open User Configuration command. --scope project writes <project>/.vscode/mcp.json. Both use the servers key, which VS Code does document
Windsurf yaw mcp install windsurf ~/.codeium/windsurf/mcp_config.json

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).

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 - the mcp_connect_dispatch meta-tool, which your AI client calls over the MCP protocol rather than from a shell, ranks your servers against the current task and loads only what is needed instead of keeping every tool description in the context window.
Compliance-graded. Audited catalog entries are scored against the 88-test mcp-compliance suite, and their grade renders inline in discover output - the trust signal is visible without opting in first. Auditing is still working through the catalog, so fewer than half of the entries carry a grade today. Set YAW_MCP_MIN_COMPLIANCE=B and the CLI refuses to activate any graded server below the bar; ungraded ones still pass the gate.
BYOK across AI clients. Works with Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Gemini CLI, and anything else that launches MCP servers over stdio. yaw mcp install <client> takes any of six client ids and wires up the launch entry in the correct config file for the OS - no hand-editing JSON.

Free forever

No account, no license, nothing to buy. Yaw MCP runs entirely on your machine with your own API keys.

Install Yaw MCP

Frequently asked

Do I need an account to use Yaw MCP?

No. Yaw MCP runs entirely from a JSON file on your machine. The CLI never phones home - no telemetry, no opt-in pings, no account check on startup.

What happened to MCP Hosting (mcph)?

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.

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 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.

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 - the right path for your OS, and the right JSON shape for that file. install accepts six client ids: claude-code, claude-desktop, cursor, vscode, windsurf, and gemini-cli. 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.

What about self-hosting?

Yaw MCP IS self-hosted by default. It runs entirely on your machine with no backend dependency - there is nothing to deploy and no server to run. Your bundles and API keys live in a JSON file on your own disk.