theo init— recommended. Detects every supported IDE on your machine and writes the right config for each in one shot.theo mcp install --ide <name>— targets a single IDE.- Hand-written
mcp.json— for unusual setups or IDEs we haven’t bundled detection for.
@hitheo/mcp) and point each IDE at it via npx -y @hitheo/mcp. They differ only in which config files they touch.
Every method requires the
THEO_API_KEY environment variable to be set in the shell that launches your IDE. Get a key if you don’t have one, or run theo login to walk through it.Prerequisites
-
Node.js 18+ with
npxon$PATH(any LTS install will do). -
A Theo API key of the form
theo_sk_…exported asTHEO_API_KEYin your shell. -
(optional) The
@hitheo/sdkpackage installed globally for thetheoCLI:
Method 1 — theo init (recommended)
theo init does the full project bootstrap in one command:
- Create
theo.config.json(project-level config). - Detect installed IDEs (Cursor, Claude Code, Warp, Windsurf, VS Code).
- Write the matching
mcp.jsonfor each detected IDE. - Generate
.theo/RULES.mdso your IDE agent knows the tools exist.
Method 2 — theo mcp install --ide <name>
Use this when you want MCP set up for a single IDE without touching the others, or to re-run after installing a new IDE:
--ide values: cursor, claude-code, warp, windsurf, vscode, all.
See the theo mcp install CLI reference for the full flag list.
Method 3 — Hand-written config
Every IDE we support reads a JSON file with anmcpServers.<name> entry. The block is identical across IDEs:
${env:THEO_API_KEY} to the value from the shell that launched it, so you never commit a key into the repo. Drop the block at the IDE-specific path below.
- Cursor
- Claude Code
- Warp
- Windsurf
- VS Code
- Other IDEs
Path: Cursor picks up the file when you reopen the project. The Theo tools appear under the agent’s tool menu as
<project>/.cursor/mcp.jsontheo_complete, theo_image, and so on.Verify the install
After restarting your IDE, ask the agent something only Theo can answer to confirm the tools are loaded:“Use the Theo MCP server to run a status check.”If the agent doesn’t see the tools, see Troubleshooting. The most common cause is a missed restart; the second most common is
THEO_API_KEY set in a different shell than the one that launched the IDE.
What gets written where
| File | Purpose | Source of truth |
|---|---|---|
theo.config.json | Persona, skills, default mode, inline tools | Project Config |
.theo/RULES.md | Agent-facing description of Theo’s tools | Auto-generated; safe to edit |
.cursor/mcp.json | Cursor MCP config | Standard MCP block above |
.mcp.json | Claude Code MCP config | Standard MCP block above |
.warp/mcp.json | Warp MCP config | Standard MCP block above |
~/.codeium/windsurf/mcp_config.json | Windsurf user-level MCP config | Standard MCP block above |
.vscode/mcp.json | VS Code MCP config | Standard MCP block above |
theo init is idempotent — re-running it merges into existing files rather than overwriting them.