jev-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JEV_IMAGES | No | Set to '1' to enable images and Box questions. Disabled unless set. | |
| JEV_BACKEND | No | Set to 'mock' to use offline placeholders for tests and CI. | |
| JEV_CACHE_DIR | No | Directory for the disk cache. Refused inside a git repository. | |
| JEV_LOG_LEVEL | No | Log level. Logs are written to stderr only. | |
| JEV_COMPRESSION | No | Compression mode for requests. Accepted values: auto, zstd, off, gzip. | |
| JEV_SECRET_MODE | No | Secret-guard mode. Default is 'redact'; set to 'refuse' to refuse on any secret detection. | |
| MCP_TOOL_TIMEOUT | No | Tool timeout in milliseconds; the server fits its own call timeout inside this value when set. | |
| TYPESAFE_API_KEY | Yes | Your TypeSafe API key. Required to authenticate; alternatively, the key may be placed in ~/.typesafe/api-key.txt (Windows: %USERPROFILE%\.typesafe\api-key.txt), and this environment variable wins when non-empty. | |
| TYPESAFE_BASE_URL | No | Base URL for the TypeSafe API. Only official TypeSafe hosts are allowed. | |
| JEV_CONFIRM_EGRESS | No | Set to '1' to add anthropic/requiresUserInteraction, prompting on every call. |
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
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jev_askA | ONE state, N questions: ask every typed question (noul yes/no p, choice label, score level) about one state in one call; answers come back with verdict, p and decision (auto | confirm | review). Use for: judging one failure log, one diff, one file, one command. For many items use jev_batch. Or run a recipe: {recipe:"classify"|"decide"|"verify_claim"|"rerank"|"self_consistency"|"find_lines"|"locate", args}. Not for: counting, dates, arithmetic, test pass/fail (exit code), summaries, judging whether a bug report is real or a patch fixes it. Refs instead of pasting: "$file:a.ts#L1-80", "$diff", "$log:x.log". If it returns unavailable / rate_limited / budget_exceeded, judge inline; do not retry in a loop. Example: {state:{diff:"$diff:staged"}, questions:{leak:{type:"noul",instructions:"Does |
| jev_batchA | N items x ONE question set: one request per item (failing tests, diff hunks, files), concurrent with a shared rate gate. Returns rows {item, verdict, p, decision} sorted by p as top-k or only the flagged ones, plus a summary and every failure. items_from builds items on the server: "$diff:staged" (one per hunk) or ["$file:a.ts", ...]. Diff review: preset review_filter with narrow Nouls where true = bad. Not for several questions about one state (jev_ask). If it returns unavailable / rate_limited / budget_exceeded, judge inline; do not retry in a loop. Example: {items_from:"$diff:staged", preset:"review_filter", questions:{no_err:{type:"noul",instructions:"Does |
| jev_statusA | Jev health and housekeeping, no judgments: health (is Jev reachable, which models are pinned), usage (tokens, cost estimate, caps, estimate/actual ratio), models (aliases and versions), validate (offline dry run of a jev_ask input), presets (decision thresholds), feedback (label a past decision), calibrate (fit thresholds from labels). Free except health/models refresh (one GET). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| guide | Recipes, coding shapes, hooks and limits |
TDQS
Scored across 3 tools
The three tools split cleanly along orthogonal axes: jev_ask (one state, many questions), jev_batch (many items, one question set), and jev_status (health/housekeeping, no judgments). Descriptions explicitly include 'Not for' clauses that steer agents away from the wrong tool (e.g., 'For many items use jev_batch', 'Not for several questions about one state').
All names follow a single predictable pattern: the shared `jev_` prefix plus a short snake_case noun (ask, batch, status). No mixed conventions or verb-style drift.
Three tools is on the lean side, but each occupies a distinct role (single judgment, batched judgment, meta/ops) and nothing feels redundant. A slightly larger surface (e.g., a recipe-listing tool) might round it out, but the current set is well-scoped.
The surface covers the full judgment lifecycle: single calls, concurrent batch calls, offline validation, threshold presets, feedback labeling, and calibration. Minor gaps exist — no dedicated tool to list or inspect past decisions/history, and recipe discovery is only implied through the `recipe` arg rather than being a first-class operation.