← All integrationsIntegration · Agent / CLI

Jev in OpenCode

OpenCode speaks MCP, and Jev ships an open MCP server — so wiring the two together is one command. Your OpenCode agent gains a typed decision tool: calibrated choice / score / noul it can call mid-task.

Every example needs a jv_live_ key. Grab one on the pricing page, export it as JEV_API_KEY, and you're ready. Get a key →

OpenCode is an open-source coding agent, and like every agent it spends a surprising amount of its loop making small structured decisions: is this the right file, is this tool call safe, does this test failure matter, which of these approaches wins. Doing that in free-text reasoning is slow and inconsistent. Jev gives OpenCode a typed decision tool it can call in milliseconds and branch on directly, so the agent reserves its model budget for actual coding.

Add the Jev MCP server

jev-mcp runs straight from GitHub with npx — no clone, no build. Point OpenCode's MCP config at it and set your key.

{
  "mcp": {
    "jev": {
      "type": "local",
      "command": ["npx", "-y", "github:codaaiteam/jev-mcp"],
      "environment": { "JEV_API_KEY": "jv_live_..." }
    }
  }
}

That's the whole setup — jev-mcp auto-routes a jv_live_ key to the hosted gateway, so there is no endpoint or model to configure. Restart OpenCode and the Jev tools appear in the agent's toolset.

What it gives the agent

Once loaded, the agent can call Jev as a tool whenever it needs a decision it can act on programmatically:

Because the answer is typed and calibrated, the agent branches on a probability instead of re-reading its own prose — faster loops and fewer format mistakes. A calibrated score also lets you set real thresholds: escalate to a human only when confidence is genuinely low, auto-proceed when it's high, and keep that behaviour stable as models change underneath.

Why typed decisions beat a second LLM call

A common alternative is to have the agent call another LLM to "decide". That works, but it's slow (seconds), expensive (dollars per million output tokens), and returns prose you still have to parse — and it can hallucinate a format. Jev answers in 70–500ms at about $0.001 a decision, output free, and physically cannot emit an invalid type: a choice returns one of your keys and nothing else. For the high-frequency decisions inside an agent loop, that difference compounds fast.

Note

The same jev-mcp server works in Claude Code, Cursor, Codex and any MCP client — see the Claude Code guide for that variant, or the agent-skill page for a client-agnostic install.

FAQ

How do I add Jev to OpenCode?

Add jev-mcp to OpenCode's MCP config as a local command (npx -y github:codaaiteam/jev-mcp) with your JEV_API_KEY in the environment, then restart. The Jev classify/score/check/gate tools appear in the agent's toolset.

Do I need to host anything?

No. jev-mcp runs locally via npx and calls the hosted Jev gateway; the model itself stays on TypeSafe's infrastructure. You only need a jv_live_ key.

Why use Jev instead of a second model call inside the loop?

Speed, cost and reliability. Jev answers in 70–500ms at roughly $0.001 per decision with output free, and returns a typed value that can't be malformed — versus a slow, pricier LLM call that returns prose you have to re-parse.

Does this work in other agents?

Yes — jev-mcp is a standard MCP server, so it works in Claude Code, Cursor, Codex and any MCP client. Only the config file format differs.

See also: Claude Code integration · Agent skill (all clients) · jev-mcp & open source

Try Jev before you wire it in

Run a real, typed decision in the browser — free, no signup — then drop your key into the example above.

▶ Try Jev freeGet an API key →
Use Jev in OpenCode — MCP decision tools for the agent · Jev by TypeSafe AI