jkudish/jev-mcp on GitHub
- Stars
- 320
- Forks
- 34
- Language
- JavaScript
- License
- MIT
- Last push
- 24 Sep 2026
Read from GitHub on . Counts change daily.
Reported by the author
- Per call
- 150-500 ms
in roughly 150 to 500 ms, for a fraction of a cent
github.com
jev-mcp wraps ten Jev-backed judgment calls as MCP (Model Context Protocol) tools, so an agent that speaks that protocol, such as Claude Code, Codex, Amp or OpenCode, can call one directly and branch on the result. Each tool returns a typed answer with probabilities and, for most tools, a confidence score, rather than free text the caller has to parse.
jev_verify checks each claim against its cited evidence, and jev_compare judges how two passages relate. jev_review scores a proposed diff before a task is called done; jev_gate runs the same review and also checks completion claims against supplied evidence. jev_screen judges content before it enters context, jev_find and jev_rerank pick or sort candidates by meaning, jev_classify batch-assigns items to labels, and jev_decide settles between a bounded set of alternatives. jev_extract combines regex with judgment to pull field values out as verbatim strings the model found rather than wrote.
The author reports each call returns in roughly 150 to 500 milliseconds for a fraction of a cent. The README pitches these as the cheap mechanical checks agents otherwise skip because a frontier model is too slow to run on every page, claim or candidate list. It installs with npx -y @jkudish/jev-mcp and a TypeSafe API key.
How it uses Jev
assert.equal(body.status, undefined);
assert.equal(body.recommendation.action, "pass");
assert.equal(body.probabilities.injection, 0.02);
assertWireResult(result, {
tool: "jev_screen", model: "jev-latest", provider: "typesafe",
probabilities: { injection: 0.02, substance: 0.9, relevance: 0.9 },
thresholds: { block_at: 0.75, review_at: 0.25 },
recommendation: { action: "pass", reason: "no signals above thresholds" },
usage: { input_tokens: 10, output_tokens: 10 },
});

