# Local MCP server

> whisper mcp runs a local stdio MCP server for WhisperGraph. One command writes the config for Claude Code and Cursor; the graph tools match the hosted connector and every catalog recipe becomes a tool.

*Source: https://www.whisper.security/docs/cli/mcp*

---
The hosted connector at `https://mcp.whisper.security` is one URL and a sign-in, and for most people it is the right choice. [Setup](/docs/ai/mcp/setup) covers it. `whisper mcp` is the same graph served from the binary on your own machine, over stdio. Reach for it when your client only speaks stdio, when you want every catalog recipe as its own tool, or when an agent already uses the CLI for its identity and should not carry a second configuration.

## What it serves

The graph tools mirror the hosted connector: `query`, `explain_indicator`, `explain_schema`, `read_docs`, `list_workflows` and `run_workflow`, with the same arguments the [Reference](/docs/ai/mcp/reference) documents. Two are local additions: `text2cypher` turns an English question into Cypher, and every recipe in the catalog is its own `whisper_<recipe>` tool, so an agent can call `whisper_typosquat` or `whisper_identify` directly instead of composing a `run_workflow` call. The server also publishes the schema and statistics resources and the gallery prompts.

Everything reads. The graph refuses write Cypher before it runs, whichever door it comes through, so nothing an agent asks here can change it.

The identity tools ride along: `whisper_verify` and `whisper_rdap` work with no key at all, and with a key the server can register, list and revoke your own agents. Those are documented with the rest of the identity plane at [whisper.online/docs/mcp](https://whisper.online/docs/mcp).

## Wire it in

From the project directory:

```bash
whisper mcp install
```

That merges a `whisper` server entry into `.mcp.json` (Claude Code) and `.cursor/mcp.json` (Cursor) without touching the servers already there. For clients whose config is not strict JSON (VS Code, Zed, Goose, Continue) or lives in a global file (Claude Desktop, Windsurf), it prints the exact snippet to paste. `--dir` targets another project.

By hand, in Claude Code:

```bash
claude mcp add whisper -- whisper mcp
```

The server takes its key from `WHISPER_API_KEY` in the client's environment, or from the file `whisper login` wrote. Nothing else to configure.

Add it once. If the hosted connector is configured as well, your client ends up with two servers offering the same tool names, and which one answers depends on the client. Give them different names, or keep one.

## Hosted or local

| | Hosted (`mcp.whisper.security`) | Local (`whisper mcp`) |
|---|---|---|
| Install | none | the CLI |
| Transport | streamable HTTP | stdio |
| Auth | OAuth or an API key | the key on this machine |
| Graph tools | the connector's set | the same set |
| Extra tools | prompts from the gallery | `text2cypher`, one tool per recipe, the identity tools |

Start hosted. Switch to local when one of the rows on the right is the reason.

## Where next

- [Reference](/docs/ai/mcp/reference): the argument and response shapes for the shared graph tools.
- [Recipes from the terminal](/docs/cli/recipes): what each `whisper_<recipe>` tool does, run by hand first.
- [Agent Skills](/docs/ai/mcp/skills): playbooks that teach a client which tool to reach for.
