jev-agent-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TYPESAFE_API_KEY | Yes | Your TypeSafe API key. Required for tool calls to succeed. The server reads the key from this environment variable and from nowhere else. | |
| TYPESAFE_BASE_URL | No | Base URL for the TypeSafe API. | |
| TYPESAFE_LOG_LEVEL | No | Log level for SDK logging (e.g., debug). All SDK logging goes to stderr because stdout carries the MCP protocol. | |
| TYPESAFE_DEFAULT_MODEL | No | The default model to use (default: jev-latest). | jev-latest |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| judgeA | Get fast, calibrated judgments from the Jev model at a decision point, instead of guessing in free text. Returns typed answers with probabilities. It never returns prose or reasoning, and it does not decide for you. WHEN TO USE: you are about to pick between known options (which tool, route, plan, or file; allow/confirm/deny a risky action), check whether a condition holds (is the task complete, is there enough information to stop, does this need user confirmation), or grade something on a dimension you can describe (risk, relevance, severity). Do not use it for open-ended reasoning, arithmetic, exact lookups, or anything plain code or a tool can settle. QUESTION TYPES:
HOW TO READ THE RESULT:
WHEN AN ANSWER IS FLAGGED: do not act on it as if it were settled. Escalate in whatever way fits your situation: gather the missing evidence and ask again, reason the point through yourself, or ask the user. Medium certainty means proceed with caution, and verify first if the action is hard to undo. High confidence describes the model's answer, not a guarantee of truth or permission to act. |
| rank_candidatesA | Rank 2-30 candidates (search results, candidate plans, next actions, models to route to) by grading each one on several described dimensions and combining the grades with your weights. Returns numbers only, never prose. WHEN TO USE: you have a shortlist and the better choice depends on more than one factor (relevance and freshness; expected benefit, risk, and effort). For picking one option on a single question, use judge with a choice question instead. WHAT TO PASS: "context" holds what every candidate is judged against (the query, the goal, constraints). Each candidate is graded in its own request, seeing only "context" and its own "content" as HOW TO READ THE RESULT:
|
| verify_claimA | Check whether supplied evidence actually supports claims you are about to state or act on. Returns a verdict and probabilities per claim, never prose. WHEN TO USE: before reporting work as complete or a bug as fixed, before stating a root cause, before citing a source, or before building the next step on something you concluded earlier. Pass the claim and the raw evidence you believe backs it. WHAT TO PASS: "evidence" is the actual material (test output, diff, log, document text), and "claims" are the specific statements to check against it. Several claims about the same evidence go in one call. Add "quote" when you attribute exact words to the evidence. HOW TO READ THE RESULT, per claim:
|
| review_changesA | Run the staged Jev review over a diff you supply and return a structured report, never prose. The tool reads nothing from disk and runs no git: it judges exactly the patches you pass, so you and the tool are always looking at the same change. WHEN TO USE: before committing, before opening or merging a pull request, or when asked to review a branch, once you have collected the diff. For a single judgment about one patch, use judge. To check a finding you wrote yourself, use verify_claim. WHAT TO PASS: "files" holds one entry per changed source file, each with its own unified diff. Decide the scope yourself first (which base, whether uncommitted and untracked work is included) and leave out generated files, lock files, and anything that must not leave the machine: every patch is sent to the TypeSafe API. "test_files" holds the changed test files in the same shape. They are not reviewed; they are the evidence used when judging whether changed behavior lacks a test, so omitting them makes every test-gap screen fire. COST: one request per file for screening (more for a patch over about 40,000 characters, which is split by hunk), then up to five profiling requests and about four requests for each of at most eight followed signals. Three files take a few seconds; a hundred take minutes. HOW TO READ THE RESULT:
|
| review_filesA | Run the staged Jev review over source files you supply and return a structured report, never prose. It asks whether an issue exists in the code as it stands, not whether a change introduced one. The tool reads nothing from disk: it judges exactly the text you pass, so you and the tool are always looking at the same code. WHEN TO USE: to audit files you did not just change, or to find where to start reading unfamiliar code. To review work in progress or a branch, collect the diff and use review_changes, which sends far less text. WHAT TO PASS: "files" holds the source files to review, each with its full content. Choose them yourself: the files at the center of the flow you care about, not a whole repository, because every file passes through your context and then goes to the TypeSafe API. Leave out generated code, vendored code, and anything that must not leave the machine. "test_files" holds related test files in the same shape. They are not reviewed; they are the evidence used when judging whether behavior lacks a test, so omitting them makes every test-gap screen fire. COST: one screening request per 160 lines of each file, three files at a time, then up to five profiling requests and about four requests for each of at most eight followed signals. HOW TO READ THE RESULT:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
The tools are generally distinct: review_files vs review_changes differ by input type (files vs diff), and judge/rank_candidates/verify_claim have clear use cases. However, review_files and review_changes could be confused by an agent scanning quickly, and judge with a choice question overlaps with rank_candidates for single-dimension ranking.
All tool names follow a clear verb_noun pattern (review_files, review_changes, verify_claim, rank_candidates, judge). The pattern is consistent, though 'judge' is a single verb without a noun, which is a minor deviation from the otherwise consistent scheme.
With 5 tools, the server is tightly scoped around the Jev review workflow: two review modes (files/changes), a verification tool, and two decision-support tools (judge, rank_candidates). Each tool has a distinct role and no redundancy; the count is ideal for this purpose.
The tool surface covers the core review lifecycle: review current code, review changes, verify claims, and make decisions. A minor gap is the lack of a tool to aggregate or compare multiple review results, but agents can work around that by calling review tools separately.