@hitheo/mcp exposes fourteen tools to your IDE agent. Each one wraps a method on @hitheo/sdk and ultimately hits a REST endpoint on https://www.hitheo.ai/api/v1/*. The schemas below are reproduced from packages/mcp/src/tools.ts, so what your IDE sees in its tool catalog is what’s documented here.
The tools fall into two groups: execution tools that run work (theo_complete, theo_code, …) and configuration tools that build and shape a key’s orchestrator from natural language (theo_setup_key, theo_set_guardrail, …). Every configuration change is saved immediately and rendered on the dashboard canvas at /dashboard/orchestrator?key=….
Tools never see your API key —
@hitheo/mcp loads it once at startup from THEO_API_KEY and signs the underlying HTTP request on the agent’s behalf. The agent only sees the text/JSON the tool returns.Scope inheritance. Configuration tools inherit the scope of the key the MCP
server authenticates with. Point the server at a team key and everything it
creates — new keys (
theo_setup_key), routing preferences and guardrail
policies (theo_set_routing / theo_set_guardrail) — is created under that
team, billed to the team, and visible to every member. Point it at a
personal key and the same tools stay personal. You never pass a scope
explicitly; it follows the key.Tool catalog
Execution
Configuration (requires billing scope)
theo_complete
Run an AI completion through Theo’s orchestration engine. Theo automatically classifies intent, selects the best engine across 300+ AI models, injects domain skills, executes tools, and returns the response. Use this for any general AI task: writing, analysis, planning, Q&A.
Input schema
When
theo.config.json defines persona, skills, defaultMode, or tools, those values are merged into the request — see Project Config.
Example agent invocation
Example response (truncated)
Notes
- Output includes a one-line tail with the resolved model, mode, and cost so the agent sees how the request was routed.
- Costs are reconciled after execution and reflect what your account was billed.
theo_code
Generate code using Theo. Routes to the Theo Code engine for best-in-class code generation with an extended output budget. Returns generated code and any artifacts (full files, project scaffolds). Use this when the task is primarily about writing, generating, or scaffolding code.
Input schema
Example agent invocation
Artifacts: block with JSON describing any files created.
theo_research
Run deep research on a topic. Theo plans 3–6 focused search queries, runs them in parallel, deduplicates sources, and synthesizes a structured report with citations. This is an async operation — the MCP server polls until the underlying job completes (default budget: 120 seconds at a 3-second interval) and returns the final report.
Input schema
Example agent invocation
Failure handling
If the research job fails or times out, the tool returns a single text payload starting withResearch failed: so the agent can decide whether to retry with a narrower prompt.
theo_image
Generate images using Theo. Routes to the Theo Create engine with automatic provider fallback. Returns image URLs. Use for logos, illustrations, mockups, concept art, or any visual content.
Input schema
Example response
theo_document
Generate a formatted document. Theo creates the document and returns a download URL on artifacts.hitheo.ai. Use for reports, presentations, spreadsheets, and data exports.
Input schema
Example agent invocation
Example response
theo_skill_list
List available Theo skills. Skills are packages of domain knowledge and tools that extend Theo’s capabilities (like apps for AI). Filter to either installed (active on this account) or marketplace (available to install).
Input schema
The tool returns a pretty-printed JSON array of skill records (
id, slug, name, description, version, …). Agents typically pair this with theo_skill_install.
theo_skill_install
Install a skill from the Theo marketplace. Once installed, the skill’s domain knowledge and tools are available on every completion (and inside every subsequent theo_complete MCP call).
Input schema
Example response
theo_status
Check Theo’s health and engine availability. Returns engine status, latency, and infrastructure health. Use to verify the connection works or diagnose issues from inside the IDE.
Input schema
No parameters.Example response
Status: healthy, run theo verify on the host to dig in.
theo_setup_key
Create a new Theo API key and build a saved, visible orchestrator in one call — no hand-drawing on the canvas. Specify the plan one of three ways (precedence: graph > routing > use_case):
use_case— a single-engine preset.codingpins a code engine as a deterministic passthrough (a clean drop-in backend for Warp / Cursor);chata fast engine;rawan engine you choose.routing— per-mode engine bindings. Theo’s classifier splits each request into a mode and you pin an engine per mode.graph— a full custom orchestrator graph{ enabled, nodes, edges }, applied as-is.
Input schema
Example agent invocation
Example response (truncated)
theo_configure_key
Re-plan an existing key — the same three options as theo_setup_key (use_case / routing / graph, same precedence). Changes reflect on the dashboard canvas immediately. Returns a dashboard link.
Input schema
Example agent invocation
theo_add_skill
Install a skill (from the marketplace, if needed) and attach it to a key’s allowlist so that key can call it. Optionally scope it to a single mode. Idempotent — re-adding the same (skill, mode) is a no-op.
Input schema
Example agent invocation
No skill matches "…" so the agent can call theo_skill_list and retry.
theo_assign_skill_to_node
Attach a skill to one or more model nodes in a key’s orchestrator graph, so the skill applies only there. The target is matched by node id, label, the mode it handles, or the engine it runs — and the skill is attached to every match. So a query naming an engine or mode shared by two or more nodes hits all of them (e.g. sonnet attaches to every node running anthropic/claude-sonnet-4.6).
Requires the key to already have a graph. If nothing matches, the tool returns the list of available nodes.
Input schema
Example agent invocation
theo_set_guardrail
Bind a Gateway Guardrails policy to a key. Pass an existing policy name/id, or a preset name (e.g. PII-safe, Injection guard) to create a policy from that template and bind it. On a key with an orchestrator graph the policy is added as a Guardrail node on the canvas:
- an input node (after Entry, or after the classifier when scoped) screens the prompt;
- an output node (after the model) screens the reply.
input / output / both) unless you pass phase explicitly. Pass mode (a mode or engine name) to scope the guardrail to just that branch — it attaches to every node with that mode/engine. On a key without a graph, the policy is bound key-level (screens both phases per its rules). remove: true clears guardrails; add phase to remove only the input or output checkpoint.
Input schema
Example agent invocations
theo_set_routing
Bind a Routing Studio preference to a key — either an existing preference by name/id, or create rules inline (pattern keyword/regex → mode). Rules are additive by default: new rules are appended to the key’s current routing (deduped), so asking for a second rule keeps the first. Pass replace: true to reset instead. On a graph key a single Router node is inserted (Entry → … → Router → Classifier) so the rules actually apply in-path and show on the canvas; a rule whose target mode has no engine node triggers a warning. remove: true clears routing.
Input schema
Example agent invocation
Reference
Engines (config surface — real engine names are intentional here):arca-velox-5.1 (fast), arca-magnus-5.1 (deep reasoning), anthropic/claude-sonnet-4.6, anthropic/claude-opus-4.8, anthropic/claude-haiku-4.5, google/gemini-2.5-pro, openai/gpt-4.1, plus your own custom:<providerId>:<model>.
Modes: fast, think, code, research, roast, genui, data_extraction, vision, image, video.
Guardrail presets: e.g. PII-safe, Injection guard. On a mismatch the tool lists the available policies and presets.
