Skip to main content
@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.
Every configuration tool (theo_setup_key, theo_configure_key, theo_add_skill, theo_assign_skill_to_node, theo_set_guardrail, theo_set_routing) requires the MCP server’s own key to carry the billing scope. Without it those calls return a permission error.
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

The tool returns the generated content plus an 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 with Research 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

Each line corresponds to one image; if the request asked for multiple, you get one URL per image plus a final cost line.

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

If the tool returns anything other than 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. coding pins a code engine as a deterministic passthrough (a clean drop-in backend for Warp / Cursor); chat a fast engine; raw an 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.
Returns the raw key (shown once) plus a dashboard link. The orchestrator is enabled immediately.

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

If the skill can’t be resolved, the tool returns 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.
The phase is inferred from the policy’s own rule phases (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

A second call adds to the first:

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.

Errors

When any tool throws (network error, API error envelope, polling timeout), the MCP server formats it as:
The agent sees the text as a normal tool result, not a JSON-RPC error, so it can read and react instead of bailing. The full structured error is also visible in your MCP server logs if your IDE surfaces them. See Troubleshooting for the most common failure modes.