Use the canonical endpoint
POST JSON-RPC to https://jevapi.pro/api/mcp. This endpoint supports stateless Streamable HTTP with JSON responses, protocol 2025-11-25. It does not offer an SSE subscription or session-resumption service; GET, HEAD and DELETE return 405.
Set Accept to application/json, text/event-stream and Content-Type to application/json. After initialization, send MCP-Protocol-Version: 2025-11-25 on every request. Use HTTPS and the apex host shown below to avoid an unnecessary redirect.
[mcp_servers.jev]
url = "https://jevapi.pro/api/mcp"
bearer_token_env_var = "JEV_API_KEY"
tool_timeout_sec = 30Use a workspace key, kept outside the project
Create a personal key in your workspace after activating a paid plan. Configure JEV_API_KEY through your client’s secret or environment settings. Never commit the key, put it in a Skill file, send it as a tool argument or paste it into the browser runner.
MCP accepts the same active workspace Bearer key as REST. Browser login cookies are not accepted. The server supports manual Bearer configuration; it does not advertise an OAuth login flow.
Discover tools without spending decision credits
initialize negotiates the supported version. notifications/initialized acknowledges initialization with 202; ping and tools/list return metadata. These requests require a key but do not call the model or spend decision credits. Discovery is limited to 120 requests per minute per account.
tools/call runs a decision under the existing account credit and inference rate limits. It returns JSON in structuredContent and the same object as content[0].text. No tool executes an external action.
jev_guard_tool_call → allow | confirm | review | deny
jev_route_model → one supplied candidate id
jev_route_task → proceed_fast | deep_review | split_task | block
jev_check_research → accept | verify_more | reject
jev_review_completion → complete | verify_more | incomplete
jev_decide → your choice, noul or score questionsRetry the same operation without paying twice
Every tool needs request_id: 8–96 letters, numbers, dots, colons, underscores or hyphens. Generate it for the logical operation, not from the JSON-RPC message id. Reuse it with unchanged arguments after an uncertain network failure. Changed facts or a genuinely new operation need a new identifier.
A completed replay does not deduct another credit. A changed request with the same identifier is rejected. A confirmed failed account decision is refunded; create a new identifier before a new attempt. Do not retry forever: inspect the error and retain a manual review path.
Keep the client protocol explicit
Only 2025-11-25 is advertised. JSON-RPC batch arrays are rejected. A client that requires a different protocol must support negotiation or be configured for this version. Authentication failure is a credential problem, not a reason to retry with an older protocol.
Malformed arguments return an explicit error without inference. Unknown tools produce a protocol error. A failed tool result has isError: true; do not treat a successful HTTP response alone as a successful decision.
