Jev MCP

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

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs TYPESAFE_API_KEY. Replace each <NAME> with your value.

Claude CodeTerminal
claude mcp add jev -e TYPESAFE_API_KEY=<TYPESAFE_API_KEY> -- npx -y @jkudish/jev-mcp
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "jev": {
      "command": "npx",
      "args": [
        "-y",
        "@jkudish/jev-mcp"
      ],
      "env": {
        "TYPESAFE_API_KEY": "<TYPESAFE_API_KEY>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "jev": {
      "command": "npx",
      "args": [
        "-y",
        "@jkudish/jev-mcp"
      ],
      "env": {
        "TYPESAFE_API_KEY": "<TYPESAFE_API_KEY>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "jev": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@jkudish/jev-mcp"
      ],
      "env": {
        "TYPESAFE_API_KEY": "<TYPESAFE_API_KEY>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.jev]
command = "npx"
args = ["-y", "@jkudish/jev-mcp"]

[mcp_servers.jev.env]
TYPESAFE_API_KEY = "<TYPESAFE_API_KEY>"
Gemini CLITerminal
gemini mcp add --scope user -e TYPESAFE_API_KEY=<TYPESAFE_API_KEY> jev npx -- -y @jkudish/jev-mcp

Settings 12

TYPESAFE_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.

What it does

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.

What it needs

RuntimeNode.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.

Limits

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.

Who it suits

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.

Tools 12

jev_verify
Rates each claim as verified, contradicted or unsupported by the supplied evidence
jev_screen
Scores text for prompt injection, substance and task relevance before an agent reads it
jev_noul
Gives a calibrated probability that each stated proposition is true
jev_find
Picks the single best-matching candidate for a query and says whether any match exists
jev_rerank
Scores every candidate for relevance and returns them sorted
jev_classify
Assigns a batch of items to labels from your own set
jev_decide
Chooses among a few options given evidence and priorities, or asks the user
jev_compare
Judges whether two passages agree, conflict or are unrelated, per aspect
jev_extract
Picks field values from regex matches found in a document
jev_audit
Checks extracted values against their source for errors, omissions or fabrication
jev_review
Scores a diff for correctness, spec match, test gaps and blast radius
jev_gate
Reviews a patch and checks completion claims against evidence in one call

Similar servers