Documentation Index
Fetch the complete documentation index at: https://docs.hitheo.ai/llms.txt
Use this file to discover all available pages before exploring further.
@hitheo/mcp is intentionally a small, predictable piece of software. This page covers exactly what it does, what it doesn’t do, and what you can do to harden the install further.
Where the server runs
| Property | Value |
|---|---|
| Process owner | The same user that launched the IDE |
| Transport | Stdio (no inbound network port) |
| Outbound traffic | HTTPS only, to https://www.hitheo.ai |
| Lifetime | Per-workspace; the IDE spawns and kills it |
| Persistent state | None — the server is stateless across runs |
Where the API key lives
- You export
THEO_API_KEYin your shell (or persist it for GUI app launches). - The IDE reads the value and forwards it as an environment variable when it spawns
@hitheo/mcp. - The server reads it once at startup and stores it in process memory.
- Every outbound call signs
Authorization: Bearer theo_sk_.... - The IDE’s agent itself never sees the key — it only sees the tool outputs.
- The key is never written to disk by
@hitheo/mcp. (Your shell config or the optional~/.theo/credentialsfile may persist it, but those are CLI artifacts, not MCP ones.) - The key is not transmitted to the IDE vendor, the model provider, or any third party. It goes straight to
api.hitheo.ai. - The key is not embedded in the tool descriptions, schemas, or resource bodies the agent can read.
The JSON-only config sandbox
@hitheo/mcp reads theo.config.json from the current working directory at startup. It deliberately does not read theo.config.js or theo.config.ts by default.
The reason is the threat model: an IDE will happily launch the MCP server inside any project you open, including ones you cloned from the internet. If JS/TS config were loaded automatically, a malicious theo.config.js could import() arbitrary code the moment the workspace opens — full arbitrary-code-execution as your user, before you’ve read a single file.
JSON config covers every documented use case (persona, skills, defaultMode, tools, temperature, metadata) without that risk.
If you genuinely need JS/TS config in a directory you trust:
theo.config.js first, then theo.config.ts, with the same JSON fallback.
Supply chain
Every official@hitheo/* tarball on npm — including @hitheo/mcp — ships with signed npm provenance starting at version 0.1.4. Each attestation links the tarball back to the exact public CI workflow + git commit that produced it.
Verify before installing or pinning a new version:
security@opencharts.com (see Disclosure Policy).
Pinning a known-good version
npx -y @hitheo/mcp resolves the latest published release on each install. If you want to lock to a specific version in CI or a shared dev environment, pin it in your IDE config:
theo init (or hand-edit) to move to a new release.
What the agent can and can’t do
The 8 tools and 3 resources are the entire surface the IDE agent sees. The MCP server does not expose:- Your file system
- Your shell
- Your local processes or environment variables
- Any Theo internals beyond the documented HTTP endpoints
theo_code returns code, not a runtime) is something the IDE offers to execute. That decision sits with you and the IDE’s own permission model — @hitheo/mcp itself is read-only with respect to your machine.
Key rotation, scopes, and revocation
@hitheo/mcp inherits the full key model documented in Authentication:
- Hashed at rest — Theo only stores SHA-256 hashes of
theo_sk_*keys. - Scoped permissions — each key can be limited to specific capabilities (completions, skills, tools, connectors, billing). A key without the
completionsscope cannot runtheo_complete; the tool will return a403 missing_scopeerror to the agent. - Per-key rate limits — limits apply per key, so a runaway IDE agent can’t starve your other integrations.
- Instant revocation — revoke from the dashboard and the MCP server stops working within seconds (the next call returns
401 key_revoked).
- Create the new key in the dashboard.
- Update the environment / shell where your IDE launches.
- Restart the IDE.
- Confirm with
theo verifyfrom the same shell. - Revoke the old key.
Reporting vulnerabilities
Found a security issue in@hitheo/mcp or related infrastructure? See the Disclosure Policy. Email security@opencharts.com rather than filing a public GitHub issue.
Related
- Authentication — full key model, scopes, rotation.
- Data Privacy — how Theo handles your prompts and artifacts.
- Disclosure Policy — how to report a vulnerability.
