jev-mcp
Rust MCP server for Codex that hands classification, relevance, candidate selection and evaluation to Jev with accept/verify policies.
Overview
This jev-mcp is a lightweight MCP server written in Rust that lets Codex use TypeSafe's Jev over stdio. The README (Japanese, with an English version) frames Codex as System 2 that investigates, plans, edits and tests, and Jev as a lightweight System 1 for closed-choice judgments along the way.
It offers four tools: jev.noul for whether a condition holds, jev.choice to pick one named option, jev.score for ordered rubrics, and jev.batch for several questions against the same input. Example uses include whether a file relates to the current bug, whether a test failure came from the last change, which subsystem to inspect first, and whether work is progressing or looping. The server never reads files or runs tools itself. A policy layer maps results to accept, verify or reevaluate using configurable thresholds (defaults 0.90 and 0.60) and treats choices like unknown or other as reevaluate. An eval CLI and optional input-free telemetry are included.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is this test failure caused by the previous change? | yes · no |
| Choice | Which subsystem should be investigated first? | — |
| Yes / no | Does this change need extra review or testing? | yes · no |
| Yes / no | Is the work progressing, or repeating the same attempt? | yes · no |
How it works
- Codex gathers evidence and a finite set of candidates
- It calls jev.noul, jev.choice, jev.score or jev.batch
- Jev returns typed answers and distributions
- The policy layer marks the result accept, verify or reevaluate
- Codex edits, tests or takes the next action
Strengths
- Deterministic handling guidance on top of probabilities
- Configurable thresholds and open-choice handling
- Built-in eval CLI and opt-in telemetry without inputs
- Small native binary
Caveats
- Documented mainly for Codex
- Requires building with Rust 1.88+ and a TypeSafe key
- No automatic .env loading
Getting started
cargo build --release --locked, then add [mcp_servers.jev] with the binary path and TYPESAFE_API_KEY to ~/.codex/config.toml.At a glance
- Type
- MCP server
- Status
- beta
- Language
- Rust
- Runtime
- MCP server (stdio)
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
A Rust MCP server for TypeSafe AI Jev structured decisions
logicrw/awesome-jev-projects
Frequently asked questions
What does the policy layer do?
It turns probabilities into accept, verify or reevaluate using thresholds that default to 0.90 and 0.60.
Does the server read my repository?
No. The caller supplies the evidence and the finite candidates.
Which client is it built for?
Codex, though any stdio MCP client can use it.
Related projects
Portable decision layer for agent harnesses: Jev picks from host-supplied capabilities while the host keeps permissions and execution.
ProjectbetaTypeScriptJev decision layer for agents: seven MCP tools, an embeddable library and escalate-only Claude Code hooks at harness boundaries.
MCP serverbetaTypeScriptMCP server and agent skill for designing Jev judgments: question linting, batch evaluation, threshold calibration and reranking.
MCP serverbetaTypeScriptAgent skill and CLI that chains Jev question design: find decision calls, check fit, draft, lint, calibrate thresholds and plan a cascade.
Agent skillprototypePythonNative Bend executable that owns agent-launched processes and logs, and asks Jev a typed question only when told to.
ServicebetaBendLocal MCP server putting Jev in the coding loop: route next steps, pick prepared tool calls, review patches and verify claims.
MCP serverbetaTypeScript