Jev MCP server: typed decisions as tools for any agent
JevStation runs a remote MCP server at https://jevstation.com/api/mcp. Point an MCP client at it with your API key and your agent gets five tools that ask Jev typed questions and return probabilities — billed exactly like the HTTP API.
What the server is
The endpoint is https://jevstation.com/api/mcp. It speaks the MCP Streamable HTTP transport in stateless mode:
- POST only. Each request is one JSON-RPC message, or a batch of up to 20. Replies come back as
application/json.GETandDELETEreturn 405. - No session, no stream. The server never opens an SSE stream and does not issue a session id.
- Tools only. It implements
initialize,ping,tools/listandtools/call. There are no resources, prompts or sampling. - API key auth. Every request must carry
Authorization: Bearer <key>. OAuth is not supported. - Protocol versions
2025-06-18,2025-03-26and2024-11-05are accepted.
Behind the tools is the same code path as POST /api/v1/systemone, so answers, credits, refunds and limits are identical. See the API docs for the full answer format.
The five tools
| Tool | Inputs | What it does | Cost |
|---|---|---|---|
jev_decide | state, questions | Asks your own Choice, Score or Noul questions about a state | 1 or 3 credits |
jev_run_question_set | state, question_set_id | Runs a question set you saved in the playground | 1 or 3 credits |
jev_list_question_sets | none | Lists your saved sets with id, name and questions | Free |
jev_route_model | prompt | Rates difficulty, picks small, medium or frontier, and flags whether code is needed | 1 credit (3 if long) |
jev_guard_tool_call | user_request, tool_name, optional tool_args object | Checks intent match and risk, and returns execute, confirm or block with probabilities | 1 credit (3 if long) |
state can be plain text or a JSON object or array, up to 24,000 characters. questions is a map of id to question, up to 12 per call:
{
"state": "I was charged twice and support has not replied in 3 days.",
"questions": {
"team": {
"type": "choice",
"instructions": "Which team should handle this ticket?",
"criteria": {
"billing": "Payments and refunds",
"tech": "Bugs and outages"
}
},
"churn_risk": {
"type": "noul",
"instructions": "Is the customer at risk of churning?"
}
}
}
jev_route_model and jev_guard_tool_call use fixed question sets — the same ones behind the LLM router and tool-call guard pages — so the agent only supplies the content.
Every successful call returns the result twice: as JSON text for the model to read, and as structuredContent for clients that parse it. Both contain questions (the set that was asked), model, answers, usage, credits (charged and remaining) and latency_ms.
Connect a client
Create a key at Settings › API Keys and export it as JEVSTATION_API_KEY. The snippets below use syntax checked against each client’s official docs on 2026-09-28.
Claude Code — one command, stored in your user or local config:
claude mcp add --transport http jevstation https://jevstation.com/api/mcp \
--header "Authorization: Bearer $JEVSTATION_API_KEY"
Or commit a project .mcp.json that reads the key from each developer’s environment:
{
"mcpServers": {
"jevstation": {
"type": "http",
"url": "https://jevstation.com/api/mcp",
"headers": { "Authorization": "Bearer ${JEVSTATION_API_KEY}" }
}
}
}
More detail in Jev in Claude Code.
Cursor — ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"jevstation": {
"url": "https://jevstation.com/api/mcp",
"headers": { "Authorization": "Bearer ${env:JEVSTATION_API_KEY}" }
}
}
}
More detail in Jev in Cursor.
VS Code (GitHub Copilot agent mode) — .vscode/mcp.json, with the key requested once and stored by VS Code instead of written to the file:
{
"inputs": [
{
"type": "promptString",
"id": "jevstation-key",
"description": "JevStation API Key",
"password": true
}
],
"servers": {
"jevstation": {
"type": "http",
"url": "https://jevstation.com/api/mcp",
"headers": { "Authorization": "Bearer ${input:jevstation-key}" }
}
}
}
Any other client — if it supports remote Streamable HTTP servers with custom headers, use the same URL and header. You can check the server by hand; tools/list costs nothing:
curl -s https://jevstation.com/api/mcp \
-H "Authorization: Bearer $JEVSTATION_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Billing
Tool calls draw on the same credit balance as the API and the playground. An evaluation costs 1 credit when the state is at most 8,000 characters and there are at most 5 questions, and 3 credits above either limit. initialize, tools/list and jev_list_question_sets are free. If an evaluation fails or returns no answers, the credits are refunded automatically. New accounts start with 200 free credits; packs are on the pricing page.
Troubleshooting
- 401 on connect. The key is missing, mistyped or deleted, or the header did not reach the server — often because the environment variable was not set when the client started. The server replies with HTTP 401 before any tool runs. Create a new key if needed and restart the client.
- Tool errors come back as results. Once authenticated, problems with a call are returned as a normal result with
isError: trueand a message the agent can read, not as a protocol error. Typical messages: bad or emptystate, state too large, invalid questions, unknownquestion_set_id. - Not enough credits (402 in the HTTP API). Over MCP this is an
isErrorresult that states the cost and your balance. Top up on pricing. - Rate limited (429 in the HTTP API). Also an
isErrorresult. Wait before retrying and avoid tight loops;GET /api/v1/systemonewith the same key shows your current quota. - Evaluation failed. The result says the credits were refunded. Retrying is safe.
- Unknown tool. Returned as a JSON-RPC error. Refresh the tool list in your client.
Security notes
- The key spends credits. Anyone holding it can run evaluations on your balance. Treat it like a password.
- Keep it in an environment variable (
JEVSTATION_API_KEY) or the client’s secret input. Never commit a config file that contains the literal key — in shared files use variable references such as${JEVSTATION_API_KEY}or${env:JEVSTATION_API_KEY}. - Do not put secrets into tool arguments.
stateandtool_argsare sent to the model for evaluation. When guarding a tool call, redact tokens, passwords and connection strings first. - Delete leaked keys at Settings › API Keys and create a new one.
- Jev is a filter, not a security boundary. Keep allow-lists and permissions underneath jev_guard_tool_call; the harness walkthrough shows how the pieces fit.
References
Client syntax verified on 2026-09-28 against:
- Claude Code MCP: https://code.claude.com/docs/en/mcp
- Cursor MCP: https://cursor.com/docs/mcp
- VS Code MCP configuration reference: https://code.visualstudio.com/docs/agents/reference/mcp-configuration
よくある質問
- Does the Jev MCP server cost extra?
- No. A tool call that runs an evaluation costs the same credits as the HTTP API: 1 credit when the state is at most 8,000 characters and there are at most 5 questions, otherwise 3. Listing tools and listing your saved question sets are free, and failed evaluations are refunded.
- Does the server support OAuth?
- No. The server authenticates with a JevStation API key sent as an Authorization: Bearer header. Configure the header in your MCP client; there is no browser sign-in flow.
- Which transport does it use?
- Streamable HTTP in stateless mode. Every request is a POST and every reply is plain JSON. The server does not open an SSE stream (GET returns 405) and does not create sessions.
- Does it expose resources or prompts?
- No. The server only exposes tools. To reuse a question set, save it in the playground and call jev_run_question_set with its id.
関連
- Jev in Claude CodeAdd the Jev MCP server and skills to Claude Code, then use Copy for AI to integrate Jev into your code.
- Jev in CursorConfigure JevStation’s remote MCP server in Cursor’s mcp.json and use the Jev tools from the agent.
- Tool call guardScore a proposed agent tool call for intent match and risk, and get an execute / confirm / block decision.
パイプラインに組み込む
新規登録で 200 クレジットを無料進呈。独自の質問セットを保存し、同じ評価を API から呼び出せます。