Jev MCP Proxy
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jev MCP Proxy Evaluate this error message for incident severity"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Jev MCP Proxy
A high-performance Model Context Protocol (MCP) proxy server that routes System One evaluation requests from AI agent skills directly to TypeSafe AI's Jev model.
Background: System One & Jev
As introduced by TypeSafe AI in Introducing System One Models & Jev, System One models represent a new class of frontier AI designed for automation within code. Rather than generating conversational strings token-by-token, Jev takes program state and answers typed questions in parallel with calibrated probabilities.
Fast & Hardware-Aware: 70ms–500ms end-to-end response time.
Typed Outputs: Strictly evaluates against defined rubrics (no string hallucinations or schema mismatches).
Calibrated Uncertainty: Communicates exact confidence scores and probabilities.
This MCP server acts as the dedicated router between agent skills (in Google Antigravity, Claude Code, Cursor, etc.) and Jev.
┌─────────────────────────────────────────────────────────────┐
│ Agent Platform │
│ (Google Antigravity / Claude Code) │
│ │
│ ┌──────────────────┐ ┌────────────────────┐ │
│ │ Routing Skill │ │ Moderation Skill │ │
│ └────────┬─────────┘ └─────────┬──────────┘ │
└────────────┼─────────────────────────────────┼──────────────┘
│ MCP Tools │
▼ ▼
┌─────────────────────────────────────────────────────────────┐
│ Jev MCP Proxy Server │
│ (jev_evaluate, jev_choice, jev_noul, jev_score) │
│ │
│ - JSON-RPC stdio transport │
│ - Auto-retries with exponential backoff on 429 & 529 │
│ - Stderr request tracing & latency measurement │
└──────────────────────────────┬──────────────────────────────┘
│ HTTPS / Bearer Token
▼
┌─────────────────────────────────────────────────────────────┐
│ TypeSafe AI Jev API │
│ (https://api.typesafe.ai/v1/systemone) │
└─────────────────────────────────────────────────────────────┘Related MCP server: mewcp-jev
Features
Lean & Focused: The only functionality of this MCP server is to route requests to Jev when skills need them.
Full Parallel Evaluation:
jev_evaluateallows evaluating arbitrary state against multiple typed questions in a single round-trip.Convenience Tool Shortcuts: High-level tools (
jev_choice,jev_noul,jev_score) for common skill operations.Resilience: Automatic retry logic with exponential backoff for HTTP
429(Rate Limit) and529(Service Overloaded).Live Tracing: Emits structured timing, token usage, and status traces directly to
stderr(visible in MCP host logs without interfering with JSON-RPC over stdout).
Exposed MCP Tools
1. jev_evaluate
Primary batch router for TypeSafe AI Jev. Evaluates state (text or structured data) against multiple typed questions simultaneously.
Parameters:
state(string | object | array, required): The application state, document, log, or conversation context to evaluate.questions(object, required): Dictionary of question IDs mapping to question definitions.type:"noul"|"choice"|"score"instructions: Prompt or criteria instructions.criteria: Required forchoice(map of options to descriptions) andscore(list of level strings). Optional fornoul.
model(string, optional): Jev model version (default:"jev-latest").api_key(string, optional): Override forTYPESAFE_API_KEY.
Example:
{
"state": "The user reported: Database pool connection timeout after 30s in checkout service.",
"questions": {
"is_incident": {
"type": "noul",
"instructions": "Does this indicate a production incident?"
},
"service_area": {
"type": "choice",
"instructions": "Which domain team owns this?",
"criteria": {
"database": "Database servers and connection pooling",
"billing": "Checkout, credit cards, payment logic",
"frontend": "UI buttons and rendering"
}
}
}
}2. jev_choice
Categorical classification shortcut. Selects one option from a defined set, returning the selected choice, confidence score, and full probability distribution.
Parameters:
state(string | object | array): Context to evaluate.instructions(string | object | array): What the model should decide.criteria(object): Dictionary mapping option keys to descriptive rubrics.model(string, optional): Default"jev-latest".question_id(string, optional): Default"choice".
Example Response:
{
"choice": "database",
"confidence": 0.88,
"probabilities": {
"database": 0.88,
"billing": 0.10,
"frontend": 0.02
},
"usage": { "input_tokens": 140, "output_tokens": 25 }
}3. jev_noul
Binary probability shortcut. Evaluates a yes/no question and returns the calibrated probability ($0.0 \le P \le 1.0$) that the statement is true.
Parameters:
state(string | object | array): Context to evaluate.instructions(string | object | array): The yes/no question.criteria(object, optional): Optional definitions for{"true": "...", "false": "..."}.
Example Response:
{
"probability": 0.95,
"is_likely": true,
"usage": { "input_tokens": 98, "output_tokens": 12 }
}4. jev_score
Rubric rating shortcut. Rates state across an ordered rubric of at least two descriptive levels, returning a weighted score and confidence.
Parameters:
state(string | object | array): Context to evaluate.instructions(string | object | array): Rating criteria.criteria(arrayof strings): Ordered list of descriptive levels (e.g.["Low", "Medium", "High", "Critical"]).
Example Response:
{
"score": 2.8,
"confidence": 0.84,
"legend": { "0": "Low", "1": "Medium", "2": "High", "3": "Critical" },
"probabilities": { "0": 0.0, "1": 0.05, "2": 0.15, "3": 0.80 }
}Installation & Setup
Prerequisites
Python 3.10+
uv(recommended) orpip
git clone https://github.com/altregubov/jev-antigravity-mcp.git
cd jev-antigravity-mcp
uv syncEnvironment Variables
TYPESAFE_API_KEY: Your API key from the TypeSafe AI Console.TYPESAFE_BASE_URL: (Optional) Custom API endpoint (default:https://api.typesafe.ai/v1/systemone).JEV_DEBUG: Set to"1"(default) to log request traces tostderr.
Configuration
Google Antigravity 2.0
Option A: Zero-Install from GitHub via uvx (Recommended)
No local repository cloning needed. Antigravity will automatically fetch and run the server in an isolated environment.
Add the following to your global Antigravity MCP configuration (~/.gemini/config/mcp_config.json):
{
"mcpServers": {
"jev-proxy": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/altregubov/jev-antigravity-mcp",
"jev-mcp"
],
"env": {
"TYPESAFE_API_KEY": "YOUR_TYPESAFE_API_KEY"
}
}
}
}Option B: Via the Antigravity 2.0 Desktop UI
Open the Antigravity 2.0 desktop app.
In the left-hand sidebar, click Skills & Customizations (or click the
...menu in the top-right $\rightarrow$ MCP Servers).Click Add MCP Server (or +).
Configure as Stdio Transport:
Name:
jev-proxyCommand:
uvxArguments:
--from git+https://github.com/altregubov/jev-antigravity-mcp jev-mcpEnvironment Variables:
TYPESAFE_API_KEY:YOUR_TYPESAFE_API_KEY
Click Save & Connect.
Option C: Local Development / Cloned Repository
If you cloned the repository locally:
{
"mcpServers": {
"jev-proxy": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/jev-antigravity-mcp",
"jev-mcp"
],
"env": {
"TYPESAFE_API_KEY": "YOUR_TYPESAFE_API_KEY"
}
}
}
}Note: After adding the server, start a New Conversation or click Refresh in Skills & Customizations to mount the tools (
jev_evaluate,jev_choice,jev_noul,jev_score).
Claude Code / Cursor
Add to your Claude Code or Cursor MCP configuration:
{
"mcpServers": {
"jev-proxy": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/jev-antigravity-mcp",
"jev-mcp"
],
"env": {
"TYPESAFE_API_KEY": "YOUR_TYPESAFE_API_KEY"
}
}
}
}Tracing and Diagnostics
The proxy logs structured traces to stderr without interfering with the JSON-RPC communication on stdout:
[17:45:03] [jev_proxy] INFO: --> Routing request to JEV: POST https://api.typesafe.ai/v1/systemone | model=jev-latest | questions=['is_incident', 'service_area']
[17:45:04] [jev_proxy] INFO: <-- 200 OK from JEV in 184.2ms | model=jev-1.13.0 | tokens(in=320, out=45)To see complete HTTP wire traces (request headers, connection pools, raw bytes):
HTTPX_LOG_LEVEL=trace uv run jev-mcpRunning Tests
The test suite covers client routing, question shortcuts, error handling (401, 422), rate limit backoff retries, and stdio JSON-RPC handshakes:
uv run pytestLicense
MIT License. See LICENSE for details.
Available Tools
4 toolsjev_choiceC
Route a single Choice question to Jev. Categorizes or selects one option from a defined rubric, returning the selected choice, confidence score, and full probability distribution.
Inputs: state (required), criteria (required), instructions (required), model, +2 more. Returns: result
jev_evaluateA
Primary proxy router for TypeSafe AI Jev. Evaluates unstructured or structured state against multiple typed questions (noul, choice, score) in parallel. Returns answers with calibrated probabilities, confidence scores, and token usage.
Inputs: state (required), questions (required), model, api_key. Returns: result
jev_noulB
Route a single Noul (yes/no) question to Jev. Returns the calibrated probability (0.0 to 1.0) that the answer is yes, suitable for confidence gating and binary routing.
Inputs: state (required), instructions (required), model, api_key, +2 more. Returns: result
jev_scoreB
Route a single Score question to Jev. Rates the input along an ordered rubric of at least two descriptive levels, returning a weighted score and confidence.
Inputs: state (required), criteria (required), instructions (required), model, +2 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
jev_evaluate is clearly the multi-question router, while jev_choice, jev_noul, and jev_score each target a distinct question type. There is minor potential overlap because a single question could be sent through either jev_evaluate or the specific single-type tool, but the descriptions make the intended use clear.
All tools share the consistent jev_ prefix and lowercase snake_case style, which makes them recognizable as a family. However, jev_evaluate uses a verb while jev_choice, jev_noul, and jev_score use noun-like type names, so the action pattern is not perfectly uniform.
Four tools is a well-scoped surface for this proxy: one aggregate router plus one tool for each supported question type. There is no redundancy or unnecessary bloat.
The tool set fully covers the apparent domain: the three question types (noul, choice, score) are each directly accessible, and jev_evaluate provides the multi-question parallel path. No obvious missing lifecycle or operational tools are needed for a stateless evaluation service.
Maintenance
Related MCP Connectors
Grade essays, check resumes, and ask typed yes/no, choice and rubric questions, powered by Jev.
Typed-question decisions from Jev: classify, moderate, route models and guard tool calls.
Typed AI decisions for agents: classify, route, screen evidence, score and batch-label text.
Calibrated judgments for text: yes/no probabilities, picks from your options, or scores.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables frontier coding agents to delegate routine probabilistic judgments to TypeSafe Jev, providing calibrated triage signals for failures, attempts, completion, context ranking, findings, risk, and generic evidence-grounded questions.7MIT
- AlicenseNot gradedqualityCmaintenanceEnables structured, rubric-based evaluation of text or structured state using TypeSafe AI's Jev System One API, supporting yes/no, single-choice, and rubric-scored questions in parallel.Apache 2.0
- AlicenseAqualityCmaintenanceEnables coding or reasoning agents to request structured judgments from TypeSafe's Jev model at decision points, including choices, scores, claim verification, and code reviews, with probabilities and confidence returned as data.56 npmMIT
- AlicenseBqualityCmaintenanceEnables AI agents to obtain typed judgments from TypeSafe's Jev System One models, including yes/no probabilities, multiple-choice selections with distributions, and rubric-based scores, directly usable in code.52AGPL 3.0