jev-mcp-server
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-serverWhich of these log lines is most likely the root cause?"
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-server
MCP server for Jev (TypeSafe System One) — a faithful mapping of the three official question types, plus batch classify.
When your coding agent needs a judgment — which log line is the root cause, how risky is this diff, is this change breaking — it usually burns a frontier LLM call and gets prose back. Jev answers with a typed decision and calibrated probabilities in a fraction of a second, for a fraction of a cent:
Question type | Tool | Returns | Measured* |
| pick 1 of 2-100 options | winner + probabilities over ALL options + confidence | ~0.6 s, ~$0.00002 |
| grade on a rubric of 2-8 levels | fractional index + per-level probabilities | ~0.5 s, ~$0.00002 |
| yes / no | 0-1 degree | ~0.4 s, ~$0.00001 |
| label up to 100 items | per-item choice + aggregate summary | ~0.5 s × items |
* Measured against jev-1.13.0, 2026-09, from real sessions (see Benchmarks).
Why this one
1:1 with the official API. Tool names match the System One question types (
choice/score/noul), so anything you learn from TypeSafe's docs transfers directly. No invented abstractions.Decisions, not explanations. Jev never returns reasons — any "why" your assistant writes is its own interpretation of the probability distribution. The README (and the tool docs) say so explicitly, so reports built on top stay honest.
Batch
classifyfor routing/labeling workflows, with per-item caching.One-time
setuptool: paste your API key once in chat; it's verified live, stored with0600permissions, and never echoed back.Bilingual docs (English / 简体中文), configs for Claude Code, Codex, OpenCode, pi, and any stdio MCP client.
Offline-tested (no network in CI), retries on 429/503/529, response validation (probabilities sum to 1, winner is the max), optional response cache.
Related MCP server: jev-mcp
Quickstart
Get a TypeSafe API key at console.typesafe.ai/settings/keys.
Register the server with your client (pick one below).
Either export
TYPESAFE_API_KEY, or just ask your agent: "run the jev setup tool with keytsk_...".
Claude Code
claude mcp add jev --env TYPESAFE_API_KEY=YOUR_KEY -- uvx jev-mcp-serverCodex (~/.codex/config.toml)
[mcp_servers.jev]
command = "uvx"
args = ["jev-mcp-server"]
env = { TYPESAFE_API_KEY = "YOUR_KEY" }OpenCode (~/.config/opencode/opencode.json)
{
"mcp": {
"jev": { "type": "local", "command": ["uvx", "jev-mcp-server"], "enabled": true }
}
}pi (~/.pi/agent/mcp.json)
{
"mcpServers": {
"jev": { "command": "uvx", "args": ["jev-mcp-server"], "lifecycle": "lazy" }
}
}Any stdio MCP client
{ "command": "uvx", "args": ["jev-mcp-server"] }From source (this repo)
{ "command": "uv", "args": ["run", "--directory", "/path/to/jev-mcp-server", "jev-mcp-server"] }Tools
choice(question, options, context="")
Pick ONE of 2-100 mutually exclusive options. Returns probabilities over all options (near-ties are visible), confidence, and the runner-up.
{"choice": "E1", "confidence": 0.67,
"probabilities": {"E1": 0.72, "E6": 0.2, "E5": 0.05, "E2": 0.01, "E3": 0.01, "E4": 0.01},
"runner_up": "E6", "model": "jev-1.13.0", "latency_ms": 678,
"usage": {"input_tokens": 1677, "output_tokens": 66}}score(question, levels, context="")
Grade on an ordered rubric of 2-8 levels. score is a fractional 0-based index: 2.22 with levels ["minor","moderate","severe","critical"] means severe, leaning critical.
{"score": 2.22, "nearest_level": "severe", "confidence": 0.59,
"probabilities": {"severe": 0.6, "critical": 0.2, "moderate": 0.2}, "...": "..."}noul(question, context="")
Yes/no with a 0-1 degree (>= 0.5 leans yes). No probability list — the degree is the answer.
{"noul": 0.76, "verdict": "yes", "model": "jev-1.13.0", "latency_ms": 402, "usage": {"...": "..."}}classify(items, options, question=..., context="")
Batch-label up to 100 items against one shared category set. One choice call per item, aggregated:
{"results": [{"item": "ticket #1", "choice": "billing", "confidence": 0.81, "probabilities": {"...": "..."}}],
"summary": {"billing": 12, "bug": 7, "howto": 3},
"usage": {"input_tokens": 8210, "output_tokens": 210, "calls": 22, "cached_calls": 0}}setup(api_key)
One-time onboarding: verifies the key with a live call, stores it at ~/.config/jev-mcp/key (0600), never echoes it. An env var TYPESAFE_API_KEY always wins over the stored file.
Caching (off by default)
Set JEVMCP_CACHE=1 to enable. The cache key is the SHA-256 of the exact question payload, so:
Identical repeated decisions (retries, re-runs, deterministic pipelines) return in ~0 ms at zero API cost;
usagethen reports{"cached": true}.classifybenefits automatically: duplicate items inside one batch are single-billed.
Keep it off when decisions must stay fresh (live triage of changing data). Cache files live in ~/.cache/jev-mcp/ (override with JEVMCP_CACHE_DIR); delete them anytime.
Configuration
Variable | Default | Purpose |
| — | API key (env wins over the file written by |
|
| Model name sent to the API |
|
| Point at a compatible gateway (experimental) |
| off |
|
|
| Cache location |
|
| Where |
Note on OpenRouter: Jev was announced for OpenRouter (
~typesafe/jev-latest), but at publish time it does not appear in OpenRouter's public model catalog, and we could not verify a compatible call shape. If you route Jev through a gateway, setJEVMCP_BASE_URLaccordingly and please open an issue with your findings.
Decisions, not explanations
Jev's contract is: a decision, calibrated probabilities, and nothing else — no rationale text. That is why it is fast and cheap. When your assistant narrates "jev chose E1 because...", that explanation is the assistant's interpretation of the numbers, not Jev's output. For formal reports (root-cause analyses, review verdicts), either let the LLM reason itself, or use the two-step pattern — Jev decides, LLM explains, clearly labeled.
Benchmarks
Measured 2026-09 against jev-1.13.0, single questions, real sessions:
Call | Latency | Input tokens | Output tokens |
| 615-678 ms | 344-1677 | 31-66 |
| ~500 ms | ~350 | ~30 |
| ~400 ms | ~300 | ~25 |
At $42 / 1B input tokens a typical call costs ≈ $0.00002 — roughly two orders of magnitude below a frontier-LLM judgment call.
Alternatives (fair and square)
jkudish/jev-mcp — Node/npm, ten opinionated workflow tools (verify, screen, rerank, gate...). Pick it if you want ready-made agent-safety workflows.
itsmostafa/typesafe-mcp — Go binary, one generic
evaluatetool, one-command client setup.
jev-mcp-server is the close-to-the-metal option: the three official question types, named exactly as TypeSafe names them, with batch classify, bilingual docs, and measured numbers. Pick whichever fits your taste — they're all MIT.
Development
uv sync
uv run ruff check .
uv run pytest -qTests are fully offline (the HTTP layer is mocked; CI never spends API credits).
License
Available Tools
5 toolschoiceA
Ask Jev (TypeSafe System One) to pick ONE of 2-100 mutually exclusive options, with calibrated probabilities.
The official choice question type — for fast, cheap structured decisions:
triage, routing, classification, prioritization, tie-breaking among enumerated
candidates. Returns probabilities over ALL options (not just the winner), so
near-ties are visible. NOT for open-ended generation or multi-step reasoning —
use an LLM for those.
Args: question: The decision, e.g. "Which error class is most likely the root cause?" options: Mapping of short unique id -> one-line description. 2-100 options. context: Optional background facts that inform the decision. Keep it short.
Returns: JSON string: {choice, confidence, probabilities (sorted desc), runner_up, model, latency_ms, usage}
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | ||
| options | Yes | ||
| question | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so thoroughly. It discloses calibrated probabilities, that the response covers ALL options so near-ties are visible, and the exact JSON return shape including choice, confidence, probabilities, runner_up, model, latency_ms, and usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well structured: a lead sentence, a use-case paragraph, an Args block, and a Returns block. Every sentence contributes useful information, and the most decision-relevant constraints are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, the description is nearly self-contained: it covers purpose, parameters, output, constraints, and exclusions. It does not mention error/validation behavior, such as what happens with fewer than 2 options or malformed option values, which is a minor gap for a tool that otherwise documents its contract well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates for all three parameters: `question` is clarified with a concrete example, `options` is constrained to a mapping of short unique ids to one-line descriptions with a 2-100 count bound, and `context` is marked optional and advised to be short. This adds substantial meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise operation: ask Jev to pick one of 2-100 mutually exclusive options with calibrated probabilities, and names typical decision uses like triage, routing, classification, prioritization, and tie-breaking. It is clearly scoped, but it does not explicitly differentiate itself from the sibling `classify` and `score` tools, whose purposes overlap with 'classification' and 'prioritization'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use context ('fast, cheap structured decisions') and clear when-not-to-use guidance ('NOT for open-ended generation or multi-step reasoning'), including an alternative ('use an LLM for those'). However, it does not address how `choice` relates to the sibling tools `classify` and `score`, leaving some selection ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
classifyA
Batch-classify up to 100 items against ONE shared set of categories using Jev.
Runs the official choice question type once per item and aggregates the
results — routing support tickets, labeling log lines, triaging inbox items
against your own label set. Much cheaper and faster than an LLM for
mechanical labeling.
Args: items: 1-100 non-empty strings to classify. options: Mapping of short unique id -> one-line category description. 2-100 options. question: Per-item question; the item itself is appended automatically. context: Optional background facts shared by all items.
Returns: JSON string: {results: [{item, choice, confidence, probabilities}], summary (counts per choice, sorted desc), model, total_latency_ms, usage: {input_tokens, output_tokens, calls, cached_calls}}
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| context | No | ||
| options | Yes | ||
| question | No | Which category does this item belong to? |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that the tool runs 'choice' once per item, automatically appends the item to the question, aggregates results, and returns a detailed JSON structure including confidence, probabilities, summary counts, latency, and usage. It does not discuss error behavior or potential costs, but it gives a strong operational picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a concise summary sentence, use cases, an Args section, and a Returns section. Every part earns its place: the summary explains what the tool does, Args documents each parameter, and Returns tells the agent exactly what to expect. There is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with four parameters and a structured return value. The description covers parameters, constraints, execution behavior, and the complete return shape. It could be slightly more complete by explaining what 'Jev' is or clarifying error modes, but nothing essential is missing for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate fully. It does: items are '1-100 non-empty strings,' options are a 'Mapping of short unique id -> one-line category description' with '2-100 options,' question has a default and is auto-appended with the item, and context is optional. This adds meaningful constraints and semantics beyond the plain JSON schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description immediately states the core action: 'Batch-classify up to 100 items against ONE shared set of categories using Jev.' It also explains that it wraps the 'choice' question type and aggregates results, which differentiates it from the single-item sibling tool 'choice'. Concrete examples like routing support tickets and labeling log lines further clarify the intended resource and function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool, such as 'routing support tickets, labeling log lines, triaging inbox items' and says it is 'Much cheaper and faster than an LLM for mechanical labeling.' It does not explicitly state when not to use it or contrast it directly with sibling alternatives, but the batch-vs-single distinction is implied through the 'choice question type once per item' phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
noulA
Ask Jev (TypeSafe System One) a yes/no question; returns a 0-1 degree (>= 0.5 leans yes).
The official noul question type — fast, cheap binary checks: "is this change
breaking?", "does this log line match the reported symptom?". No probability
list, just the degree. NOT for questions that need multi-step reasoning — use
an LLM for those.
Args: question: A yes/no question, e.g. "Is renaming a public config key a breaking change?" context: Optional background facts. Keep it short.
Returns: JSON string: {noul, verdict, model, latency_ms, usage}
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | ||
| question | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does disclose the output format (JSON string with specific fields), the threshold semantics (>= 0.5 leans yes), and performance characteristics ('fast, cheap'), which is useful. However, it omits details like error behavior, rate limits, or authentication requirements. While these are not critical for a simple query tool, the description is not exhaustive, warranting a score of 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: it leads with the core purpose, then usage examples, a clear exclusion, and a concise Args/Returns breakdown. Every sentence adds value, and there is no redundancy or filler. The structure is front-loaded and easy to scan for a quick decision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, output schema present), the description covers all essential aspects: what it does, when to use it, what parameters mean, and what to expect in the return value. The output is described structurally, and the tool's scope is well-defined. There is no missing information that would prevent an agent from invoking it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the sole source of parameter meaning. It clearly defines 'question' as a yes/no question with an example, and 'context' as optional background facts with a length guideline ('Keep it short'). This compensates for the lack of schema documentation, though it could go further (e.g., explaining how context affects output). Still, it provides meaningful semantics beyond the bare schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Ask Jev a yes/no question'), defines the input (yes/no question) and output (0-1 degree with threshold), and gives concrete examples. It clearly communicates the tool's core function and distinguishes it from general LLM use by explicitly stating it is for binary checks only. Even without naming siblings, the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('fast, cheap binary checks') with real examples, and when not to use it ('NOT for questions that need multi-step reasoning') with a clear alternative ('use an LLM'). This provides strong usage guidance that helps an agent select this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scoreA
Ask Jev (TypeSafe System One) to grade something on an ORDERED scale of 2-8 levels.
The official score question type — risk/severity/quality rubrics, e.g.
levels ["minor", "moderate", "severe", "critical"]. Returns a fractional
0-based index into levels (1.88 = between levels[1] and levels[2], leaning
to levels[2]), plus confidence and per-level probabilities.
Args: question: What to grade, e.g. "Regression risk of renaming public config key X". levels: 2-8 unique ordered scale points, low to high. context: Optional background facts. Keep it short.
Returns: JSON string: {score, nearest_level, confidence, probabilities (sorted desc), model, latency_ms, usage}
| Name | Required | Description | Default |
|---|---|---|---|
| levels | Yes | ||
| context | No | ||
| question | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does a good job: it explains the fractional 0-based index semantics, confidence, per-level probabilities, and the full JSON return shape. It could add side-effect or read-only clarity, but for a grading tool the described behavior is unusually well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well organized with an introductory sentence followed by Args and Returns sections. It is reasonably tight, though a few phrases like 'Ask Jev' and 'The official score question type' add flavor without much technical value. Overall, every major section earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all three parameters, return values, constraints, and an example. Since an output schema exists, the detailed return enumeration is a bonus. The main missing piece is explicit guidance on choosing this over sibling tools, but the tool is otherwise complete enough to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does: 'question' is explained with an example, 'levels' is constrained to 2-8 unique ordered scale points low-to-high, and 'context' is marked optional with usage guidance. This adds meaning well beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Ask Jev (TypeSafe System One) to grade something on an ORDERED scale of 2-8 levels.' It clearly identifies the 'official score question type' and gives concrete examples like risk/severity/quality rubrics. This makes it easy to distinguish from siblings such as classify or choice because the ordered-scale scoring semantics are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: grading on an ordered scale, with examples and a concrete question phrasing. It does not explicitly mention alternatives or when not to use it, but the contrast with classification-style tasks is strongly implied by the ordered-levels emphasis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
setupA
One-time onboarding: verify a TypeSafe API key with a live call, then store it locally.
Use when TYPESAFE_API_KEY is not set in the server environment: pass your key once (get one at https://console.typesafe.ai/settings/keys). It is verified against the live API, then saved to ~/.config/jev-mcp/key (permissions 0600) and never echoed back. An existing TYPESAFE_API_KEY env var always takes precedence over the stored file.
Args: api_key: Your TypeSafe API key (from console.typesafe.ai/settings/keys).
Returns: JSON string: {ok, stored_path, verified}
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the behavior: the key is verified against the live API, saved to ~/.config/jev-mcp/key with permissions 0600, never echoed back, and env var takes precedence. This is exactly the behavioral context an agent needs to anticipate side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by usage conditions, parameter meaning, and return format. Every sentence adds substantive detail without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter onboarding tool, the description covers when to use it, how the key is handled, where it is stored, permissions, precedence, and the return value. Nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for api_key (0% coverage), so the description must compensate. It does so by stating that api_key is the TypeSafe API key and telling the user where to obtain one, which fully clarifies the parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a precise action: verify a TypeSafe API key with a live call and store it locally. It clearly identifies the tool as one-time onboarding, which distinguishes it from the unrelated sibling tools (noul, choice, score, classify).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger condition: 'Use when TYPESAFE_API_KEY is not set in the server environment.' It also explains precedence behavior with an existing env var, so an agent knows when this tool is appropriate and when it is unnecessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
choice - First observed
classify - First observed
noul - First observed
score - First observed
setup
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: setup handles key onboarding, while noul, choice, score, and classify map to different question types (binary, single-choice, ordered-scale, batch). The descriptions explicitly call out boundaries, such as noul being for yes/no only and classify being a batched version of choice.
Tool names are all single lowercase words with no mixed conventions, which keeps them readable and predictable. The slight deviation is that setup describes an action while noul, choice, score, and classify follow the official TypeSafe question-type naming, but this is minor and does not cause confusion.
Five tools is well-scoped for a focused Jev/TypeSafe MCP server: one setup tool plus four distinct query/question types. Each tool maps to a clear capability and none feel redundant or missing.
The tool surface covers the full apparent lifecycle of using Jev: setup for authentication and noul/choice/score/classify for the available question types. There are no obvious dead ends—setup returns verification, every query tool returns structured results, and classify aggregates batch outputs.
Related MCP Connectors
A paid remote MCP for Equibles, built to return verdicts, receipts, usage logs, and audit-ready JSON
A paid remote MCP for Skybridge, built to return verdicts, receipts, usage logs, and audit-ready JSO
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
A paid remote MCP for HyperFrames, built to return verdicts, receipts, usage logs, and audit-ready J
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables typed, calibrated judgment calls through classify, score, check, and batched ask tools, each returning full probability distributions for programmatic decisions.5220 npm4MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to call TypeSafe's JEV classifier and receive structured, typed judgments with probabilities for binary, choice, and scoring questions.MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP hosts to query Jev's typed decision model—yes/no, choice, and score—with calibrated probabilities, while defaulting to an offline mock and disclosing all egress unless explicitly enabled.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to consult TypeSafe's Jev through a judge tool, answering narrow typed questions with calibrated probabilities instead of prose.MIT