Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENJEV_MODELNoModel alias sent when a call does not name one. Unset uses the service default, openjev.
OPENJEV_API_KEYYesRequired. Bearer token for the API.
OPENJEV_BASE_URLNoAPI origin, for a proxy or a test double. Default: https://api.openjev.shhttps://api.openjev.sh
OPENJEV_TIMEOUT_MSNoPer-attempt timeout, 1000–600000. Default: 3000030000
OPENJEV_MAX_RETRIESNoRetries after the first attempt, 0–10. Default: 22

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

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
jev_askA

Send one shared context and one or more independent questions to Jev (TypeSafe System One) and get typed judgments back — not prose.

How to design the call:

  • state carries the text and facts; instructions carries the judgment, in the question's own words.

  • Every question is answered independently against the same state. Order is not a sequence, and no question can use another's answer. Ask independent questions together in one call, including conditional ones whose answers you may ignore; make a second call only when an answer decides what to fetch or ask next.

  • One call judges one state as a whole. Packing several records into it, such as a list of tickets, yields one blended answer; use jev_batch to get an answer per record.

  • Prefer choice for a category, score for an ordered scale, and noul for a yes/no judgment. Use separate noul questions when several labels can apply at once, since a choice returns exactly one option.

Reading the result: answers come back under answers keyed by question id. Choice and score carry probabilities and confidence; confidence says how concentrated the distribution is, not how likely the answer is to be correct, so calibrate any threshold on your own labeled examples. Noul carries a single probability — near 1 yes, near 0 no, near 0.5 uncertain — and no confidence field.

jev_choiceA

Ask one question whose answer is exactly one of a set of options you define.

Use for a category, a route, or a selection from a closed list — not for a degree and not for a yes/no. Write the judgment in instructions, and put the boundaries in the option descriptions: what each option covers and excludes. Include an option named "other" or "none" when the list may not cover every input. A choice returns exactly one option, so ask separate noul questions (together in jev_ask) when several labels can apply at once.

Returns the selected option, the full probability distribution, and confidence. Confidence summarises how concentrated the distribution is — it is not the probability that the selection is correct. Compare it against a threshold you calibrated on your own examples, and send anything below it to a person instead of acting on it.

jev_scoreA

Ask one question whose answer is a position on an ordered scale you define.

Use for degree, severity, or intensity. criteria lists the levels from lowest to highest; a three-level scale returns a score from 0 to 2, and values between integers are positions between levels — the score is the probability-weighted mean of level numbers, not a percentage or a category id. Give every level a self-contained description ("no deadline expressed", "wants a response soon", "explicit deadline"), never a relative one like "more urgent than the level below".

Returns the score, the legend mapping level numbers to their descriptions, the full distribution, and confidence. Two different distributions can produce the same score, so read probabilities when the difference matters — all weight on level 1 and an even split between 0 and 2 both average to 1.

jev_noulA

Ask one yes/no question and get its probability.

Use when the condition either holds or does not, and the probability is more useful than a category. Name the condition precisely in instructions; optionally describe the two outcomes in criteria.true and criteria.false, or omit criteria when the instructions already define both.

Returns a value between 0 and 1: near 1 yes, near 0 no, near 0.5 uncertain. It measures probability, not intensity, and there is no separate confidence field — a confident no is near 0, not near 0.5, so read low values as evidence against rather than as low confidence.

jev_batchA

Put the same independent questions to each of many items — a queue of tickets, a page of comments, rows of records — and get typed answers per item.

How it runs: each item is its own request to Jev, carrying its state and every question, so an item costs what a jev_ask call with those questions costs. Requests go out a few at a time and are paced to the key's rate limit. Use jev_ask for a single item.

How to design the call:

  • items holds 1 to 100 records, each with its own state. Give every item an id — the record's own id, such as a ticket number — so its results map back without counting positions; without ids, items are labelled by position from "0".

  • questions follows the same rules as in jev_ask, and every item is judged against all of them, independently.

Reading the result: counts gives the totals. answers[item id][question id] holds an answered item's answers, shaped as in jev_ask; confidence says how concentrated a distribution is, not how likely the answer is to be correct. errors[item id] holds an item that failed, with its code and whether it is retryable. When the call ends early — a rejected key, a rate limit it cannot wait out, several failures in a row, or its time budget — stopped says why and not_sent lists the items never sent. Send those, and any retryable errors, in a later call, after retry_after_ms when it is given.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.6/5.0

Scored across 5 tools

Disambiguation4/5

Tool purposes are largely distinct: jev_choice, jev_score, and jev_noul target specific judgment types, while jev_batch handles multiple items. However, jev_ask can also handle multiple questions of various types, creating some overlap with the single-type tools, though the descriptions guide usage.

Naming Consistency5/5

All tools use the 'jev_' prefix followed by a type or action (ask, choice, score, noul, batch) in consistent snake_case. The pattern is predictable and easy to parse.

Tool Count5/5

Five tools is an appropriate number for this domain, covering general, specific, and batch judgment queries without redundancy or excessive fragmentation.

Completeness5/5

The surface covers single and multi-question requests, all three judgment types (choice, score, noul), and batch processing. No obvious gaps in the core functionality.

Maintenance

ActivityMaintained
ResponsivenessNo issues