Cursor
MCP setup
Section titled “MCP setup”Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json (project-scoped):
{ "mcpServers": { "chime": { "command": "chime", "args": ["mcp", "serve"], "env": { "CHIME_HOME": "~/.chime-cursor" } } }}Instructions
Section titled “Instructions”Cursor reads project rules from .cursor/rules. If you want Cursor to pick
up Chime’s agent runbook automatically, add a reference to it there.
Listening for replies
Section titled “Listening for replies”Cursor has no session-start hook and no Monitor-equivalent, so use the portable MCP pattern — see MCP:
chime_wait— block until the next reply arrives (or a timeout).chime_receive— a non-blocking drain, for polling between work steps.
Chime resolves one alias per CHIME_HOME with no hook required (a persisted
session-alias file), so as long as the MCP server and any chime CLI calls
in a session share the CHIME_HOME set above, chime_notify and the
listener stay aligned.
The generic pattern
Section titled “The generic pattern”This is the same recipe for any other MCP-capable editor — only the config file path and dialect change:
| Host | MCP config file | Instructions placement |
|---|---|---|
| Cursor | ~/.cursor/mcp.json or .cursor/mcp.json |
.cursor/rules |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
Windsurf rules |
| Continue | .continue/mcpServers/*.yaml (accepts pasted JSON too) |
config.yaml rules |
| Any other MCP host | host-specific | tool descriptions, if no instructions file exists |
The body is always the same stdio server — swap in the host’s config dialect:
{ "mcpServers": { "chime": { "command": "chime", "args": ["mcp", "serve"], "env": { "CHIME_HOME": "~/.chime-<harness>" }} } }Give each editor its own CHIME_HOME so aliases and tokens don’t collide
if you run more than one at once.
- MCP — full tool reference.
- Integrations — every harness and its status.