The protocol contract
Rousseau's MCP server (internal/mcp/server.go) speaks JSON-RPC 2.0 over stdio and advertises the tools declared in internal/mcp/tools.go. It handles these methods:
initialize— returnsServerCapabilities.Tools.initialized— notification, no reply.ping— returns{}.tools/list— returns the four tools in insertion order.tools/call— invokes a tool handler, returnsToolsCallResultwithcontentandisError.resources/list,prompts/list— return empty arrays (see roadmap notes below).shutdown— returns{}.
Any MCP host that speaks stdio JSON-RPC and calls the four methods above is compatible.
Tested clients
| Client | Status | How to register |
|---|---|---|
| Claude Desktop (macOS / Windows) | Works. | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows). |
Claude CLI (claude) |
Works. | --mcp-config <file> or a [mcp] block in ~/.claude/config.json. |
| Continue.dev (VS Code / JetBrains) | Works. | ~/.continue/config.json mcpServers block. |
| Codeium (IDE extensions) | Works when Codeium exposes MCP host mode (recent releases). Setup varies by IDE. | |
| Cursor (recent versions) | Works. Register under Cursor's own MCP settings UI. | |
| Any Go / TypeScript / Python MCP host SDK | Works. Instantiate with command: "rousseau", args: ["mcp"]. |
Unknown / untested but likely compatible: zed, windsurf, aider. If your host supports the MCP stdio spec, rousseau will work.
Claude Desktop
Edit claude_desktop_config.json (path above) and add:
{
"mcpServers": {
"rousseau": {
"command": "/usr/local/bin/rousseau",
"args": ["mcp"]
}
}
}
Restart Claude Desktop. The four rousseau_* tools show up in the tool picker on the next chat session.
For per-workspace state, add an env override:
{
"mcpServers": {
"rousseau-work": {
"command": "/usr/local/bin/rousseau",
"args": ["--config", "/home/seb/.config/rousseau/work.yaml", "mcp"]
}
}
}
Claude CLI
Point the CLI at a config:
claude --mcp-config <(cat <<'JSON'
{
"mcpServers": {
"rousseau": {
"command": "rousseau",
"args": ["mcp"]
}
}
}
JSON
)
Or bake it into ~/.claude/config.json under an mcpServers block using the same shape.
Continue.dev
Add to ~/.continue/config.json:
{
"mcpServers": [
{
"name": "rousseau",
"command": "rousseau",
"args": ["mcp"]
}
]
}
Continue picks up the tools on the next model call.
Cursor
Cursor exposes MCP registration in its Settings > MCP UI. Register a new server named rousseau with command rousseau and args mcp. No config file editing required.
Codeium
Codeium's MCP support ships behind a feature flag in recent versions of the IDE extension. Consult the extension's docs — the registration is again a command / args pair.
Environment variables and secrets
Because rousseau's MCP surface is read-only over the session store, it does not need provider credentials. ANTHROPIC_API_KEY and similar are unused by rousseau mcp — only by the transport / chat daemons that generate sessions.
Common issues
- "Server exited immediately." Rousseau's
mcpcommand opensstate.path. If the file isn't writable, the process exits non-zero. Runrousseau mcpfrom a shell to see the exact error. - "Unknown tool: rousseau_search_sessions." The host cached an older tool list. Restart the host.
- Duplicate registration. If two rousseau servers are registered with the same name, only the last one wins.
Resources and prompts
resources/list and prompts/list currently return empty. The Exposed resources page tracks the roadmap for exposing sessions as MCP resources.
Related
- MCP — the umbrella reference.
- MCP: Exposed tools — every tool signature.
- MCP: Exposed resources — roadmap.
- Tutorial: Expose tools via MCP — worked example.