jev-code
Typed classification, yes/no checks, scoring and ranking for coding agents via TypeSafe's Jev model
Twelve quick scoring tools backed by TypeSafe's Jev model, each returning typed probabilities
By Joey Kudish (individual) TypeScript Local · stdio AI and MLSecurity
71 popularity score ★ 575 ↓ 4.2k/wk
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
It needs TYPESAFE_API_KEY. Replace each <NAME> with your value.
claude mcp add jev -e TYPESAFE_API_KEY=<TYPESAFE_API_KEY> -- npx -y @jkudish/jev-mcp{
"mcpServers": {
"jev": {
"command": "npx",
"args": [
"-y",
"@jkudish/jev-mcp"
],
"env": {
"TYPESAFE_API_KEY": "<TYPESAFE_API_KEY>"
}
}
}
}{
"mcpServers": {
"jev": {
"command": "npx",
"args": [
"-y",
"@jkudish/jev-mcp"
],
"env": {
"TYPESAFE_API_KEY": "<TYPESAFE_API_KEY>"
}
}
}
}{
"servers": {
"jev": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@jkudish/jev-mcp"
],
"env": {
"TYPESAFE_API_KEY": "<TYPESAFE_API_KEY>"
}
}
}
}[mcp_servers.jev]
command = "npx"
args = ["-y", "@jkudish/jev-mcp"]
[mcp_servers.jev.env]
TYPESAFE_API_KEY = "<TYPESAFE_API_KEY>"gemini mcp add --scope user -e TYPESAFE_API_KEY=<TYPESAFE_API_KEY> jev npx -- -y @jkudish/jev-mcpTYPESAFE_API_KEY |
Required: TypeSafe API key; the default provider. Alternatively set OPENROUTER_API_KEY, CLOUDFLARE_API_TOKEN with CLOUDFLARE_ACCOUNT_ID, or AI_GATEWAY_API_KEY. |
|---|---|
OPENROUTER_API_KEY |
Optional: OpenRouter key, used when no TypeSafe key is set. |
CLOUDFLARE_API_TOKEN |
Optional: Cloudflare Workers AI token, used with CLOUDFLARE_ACCOUNT_ID when no other key is set. |
CLOUDFLARE_ACCOUNT_ID |
Optional: Cloudflare account id for Workers AI. |
AI_GATEWAY_API_KEY |
Optional: Vercel AI Gateway key, used when no other key is set. |
JEV_PROVIDER |
Optional: Force typesafe, openrouter, cloudflare, vercel or compatible instead of auto-detection (default auto). |
JEV_MCP_MODEL |
Optional: Jev model version to use; default jev-latest. |
JEV_MCP_TRANSPORT |
Optional: Set to http for HTTP mode, same as --http. |
JEV_MCP_AUTH_TOKEN |
Optional: Bearer token clients must send in HTTP mode; required when HOST is not loopback. |
HOST |
Optional: HTTP bind address; default 127.0.0.1. |
PORT |
Optional: HTTP port; default 8080. |
JEV_MCP_REQUEST_TIMEOUT_MS |
Optional: Whole-request deadline on the fetch-based transports; default 60000. |
Jev MCP wraps TypeSafe's Jev model, which answers with probability distributions instead of free text, as twelve narrow judgment tools. An assistant hands it text it already holds (claims and evidence, a fetched page, a list of candidates, a diff) and gets back numbers: how likely a claim is supported or contradicted, whether a page carries instructions aimed at an AI agent, which candidate fits a query best, which label each item belongs to, how two passages relate, or whether a patch looks safe to apply. Most results carry a confidence score and a suggested action (stand, review, block), with tunable thresholds such as auto_accept, which defaults to 0.8 for jev_verify.
The point is cheap, repeatable checks an agent would otherwise skip: screening fetched content before it enters context, reranking search results without an embedding index, pulling prices or dates out of a document only from matches a regex already found, and checking "tests pass" style completion claims against supplied evidence before a task is declared done. The tools do not fetch pages or read files themselves; everything to be judged is passed in the call.
It runs locally over stdio by default, or as a stateless HTTP server with --http for a shared team instance. Calls go to TypeSafe directly or, depending on which key is set, through OpenRouter, Cloudflare Workers AI, the Vercel AI Gateway, or any endpoint that speaks the same System One contract. The provider is resolved when a tool is called, not at start-up (src/index.ts and src/server.ts at v0.14.3), so a missing or wrong key does not stop the server from starting and shows up only on the first tool call. Its maker calls it early software with rough edges.
| Runtime | Node.js 22+ |
|---|
Node.js 22 or newer for npx. An API key for one Jev provider: TypeSafe (TYPESAFE_API_KEY, the default), OpenRouter, Cloudflare Workers AI (token plus account id) or the Vercel AI Gateway, or a compatible System One endpoint. Every judgment is a paid model call billed to that key. HTTP mode needs JEV_MCP_AUTH_TOKEN when bound beyond loopback, and a reverse proxy for TLS.
Text only: images, audio and video must be turned into text first. Per-call caps include 250 candidates for jev_find and jev_rerank, 250 classes and 64 items for jev_classify, 32 fields for jev_extract, 32 records for jev_audit, 16 files for jev_review, and 16 claims and 16 evidence items for jev_gate. The maker says the default thresholds are starting points to tune, and that confidence measures how peaked a distribution is, not the chance the answer is right. OpenRouter's route is an alpha API; Cloudflare serves only an unpinned alias. HTTP mode admits 16 concurrent requests by default and caps bodies at 4 MiB, with no rate limiting of its own.
Suits agent builders who want fast, typed checks inside a workflow: injection screening of fetched text, claim checking against sources, reranking or routing without an index, or a completion gate on coding agents. It needs a paid key with TypeSafe or one of the supported gateways, and it only judges what it is given, so pair it with a separate server for fetching, search or file access. Not a fit if you need a free or offline tool, judgments on images or audio, or an answer written in prose rather than scores. This is a community package, not one published by TypeSafe.
jev_verifyjev_screenjev_nouljev_findjev_rerankjev_classifyjev_decidejev_comparejev_extractjev_auditjev_reviewjev_gate