10 credits for up to four questions
Each question after the fourth adds 2 credits, up to sixteen in one call. Batch them and the state is paid for once.
First two calls on the signup credits · Same key as the Jev API · Failed calls are never charged
Plug the Jev MCP server into Claude Code, Cursor, Codex or VS Code. Your agent gets a decision tool that answers with a label and the odds behind it.
Two minutes, start to first answer. You need a Jevx account with credits on it; the new-account grant covers your first two calls, so you can see the Jev MCP answer before you pay for anything.
Open Settings → API keys and create one. It is shown once, so copy it straight into the next step.
export JEVX_API_KEY=sk-… in your shell profile. Keep it out of any config file you commit.
Paste the block for your client from the panel below. Every client points at the same URL, https://jevx.org/api/mcp.
Tell your agent to use jev_decide on something real, or call jev_credits first to confirm the key is wired in.
Copy this
Pick your client, paste the block, restart. The key stays in your environment, and your agent's next uncertain step comes back as a typed decision instead of a guess.
claude mcp add --transport http jevx \
https://jevx.org/api/mcp \
--header "Authorization: Bearer $JEVX_API_KEY"
# check it
claude mcp list{
"mcpServers": {
"jevx": {
"url": "https://jevx.org/api/mcp",
"headers": {
"Authorization": "Bearer ${env:JEVX_API_KEY}"
}
}
}
}[mcp_servers.jevx]
url = "https://jevx.org/api/mcp"
bearer_token_env_var = "JEVX_API_KEY"{
"servers": {
"jevx": {
"type": "http",
"url": "https://jevx.org/api/mcp",
"headers": {
"Authorization": "Bearer ${input:jevx-key}"
}
}
},
"inputs": [{
"type": "promptString",
"id": "jevx-key",
"description": "Jevx API key",
"password": true
}]
}Any client that speaks Streamable HTTP and can send a header works the same way: URL plus Authorization: Bearer <your key>.
Two tools, and the rules travel with them: the Jev MCP server teaches your agent the three criteria shapes through its own tool descriptions, so there is no prompt of yours to maintain.
The main Jev MCP tool. Up to sixteen questions about one state, answered in one round trip: choice returns the option plus a probability on each, noul the probability of yes, score a value on your scale with a legend. Every answer comes back typed and ready to branch on.
Reads the balance behind the key. It never runs the model and costs nothing, which makes it the right first call when you are checking that the Jev MCP connection works.
A malformed question comes back as a plain sentence naming the question and the fix, before anything is charged. A missing or wrong key says where to create one. Your agent reads it, corrects the call and moves on.
Put every small judgment in your agent on rails: route the work, guard the tools, cut the noise. Each yes-or-no, pick-one and how-much goes to Jev MCP as one fast, cheap, typed call, and your biggest model stays on the work only it can do. These are the jobs developers are already handing Jev inside their agents.
Before a command runs, ask whether it touches something it should not. Block below your threshold, let the rest through.
SafetyMechanical task or hard one? Send it to the cheap model or the expensive one on a probability, not a vibe.
RoutingName the smell — duplicated code, deep nesting — and score every file your agent touched in one pass.
ReviewAfter each message, one noul per skill decides which ones the agent actually needs, so the rest stay out of context.
ContextSix tool calls came back. Label each result before the big model reads any of them, and drop the noise.
ContextA cheap first pass over a pull request: is this snippet trying to do something it should not?
SafetyA real call
This is a live jev_decide call from 2026-09-22: a one-line complaint and three questions. The answer came back in the same response and cost 10 credits.
{
"state": "Order arrived two weeks late and the box was crushed. I want my money back.",
"questions": {
"sentiment": {
"type": "choice",
"instructions": "Overall sentiment.",
"criteria": {
"positive": "Happy.",
"neutral": "Neither.",
"negative": "Unhappy or angry."
}
},
"wants_refund": {
"type": "noul",
"instructions": "Is the customer asking for a refund?",
"criteria": {
"true": "Asks for money back.",
"false": "Does not."
}
},
"urgency": {
"type": "score",
"instructions": "How urgent is this?",
"criteria": ["Low.", "Medium.", "High."]
}
}
}{
"model": "typesafe/jev-1.13-20260917",
"answers": {
"sentiment": {
"type": "choice",
"choice": "negative",
"probabilities": {
"negative": 1, "neutral": 0, "positive": 0
},
"confidence": 1
},
"wants_refund": { "type": "noul", "noul": 0.99 },
"urgency": {
"type": "score",
"score": 1.45,
"probabilities": { "0": 0.01, "1": 0.54, "2": 0.45 },
"confidence": 0.31
}
},
"usage": { "input_tokens": 418, "output_tokens": 73 },
"charged": 10
}Read the urgency line: a score of 1.45 with 0.54 against 0.45 is Jev telling you this ticket sits between medium and high. That split is the signal a bare label would have hidden.
Same key, same balance, same prices. The Jev MCP server is a second door onto the engine behind the Jev API, not a separate product with its own rules.
Each question after the fourth adds 2 credits, up to sixteen in one call. Batch them and the state is paid for once.
Shapes are checked before any charge. A noul written with yes and no is rejected before billing, not charged and then failed.
If the model does not answer, the credits go straight back to your balance. You pay for answers, never for errors.
Jev MCP calls show up in History next to your playground runs, with the question, the answer and the credits charged.
What developers ask before they wire it in.
Yes, the moment the same judgment repeats. Jev MCP pays off when the same criteria run over many items — every file, every tool result, every ticket — when you need a probability to branch on, or when you want a second model checking the first. The agent writes the criteria once and reuses them on every call.
Yes. One claude mcp add line with the http transport and your key in the Authorization header. Cursor, Codex and VS Code take the same URL with their own config format, shown above.
Yes. Send the latest user message as the state and one noul question per skill; load the ones that come back high. Sixteen questions fit in one call, so a large skill index costs one round trip instead of a long prompt.
Yes, if you ask narrowly. Ask for quality and the answer is vague; ask about named smells such as duplicated_code or deep_nesting and it gets sharp. Make each smell its own question and score them in one call.
Yes. Put the pending call in the state, ask a noul about whether it breaks your rules, and gate on the number. It answers fast enough to sit in front of every call rather than only at the end of a run.
Yes. A choice question with one option per model, each described by the kind of work it should get, returns the pick plus the odds. Route on the pick when the odds are clear and escalate to the stronger model when they are close.
Create a key, paste one block, and the next decision your agent faces comes back typed, with the odds attached. New accounts start with credits for their first two calls, no card needed.