Skip to content

jev-agent-tools

Node library providing multi-provider Jev transport with fail-closed validation, used by Jev Browser and Jev MCP.

MCP serverbetaMIT

Overview

Jev Agent Tools is a Node.js 22+ library, published as @jkudish/jev-agent-tools, that underpins the author's Jev Browser and Jev MCP projects. Its single ask() function picks a provider from the environment, sends typed questions, and validates the answers before returning them. It never throws a verdict: callers get either the answer with usage and the effective model, or a typed rejection.

The TypeSafe transport retries 408, 409, 429 and 5xx responses up to three attempts, honouring Retry-After within the caller's abort signal. Failures map to codes such as request_failed, rate_limited and unavailable; invalid responses produce specific codes including answer_id_mismatch, invalid_distribution, invalid_noul, invalid_usage and invalid_model; and configuration problems return configuration_error. Error messages never include response bodies or credentials. Providers are auto-selected in order, starting with TypeSafe direct and then OpenRouter, which maps jev-latest to its own model id. It has CI and an MIT licence.

What the decision model decides

TypeQuestionAnswers
Yes / noIs a refund requested?yes · no

How it works

  1. Call ask() with state, questions, model and abort signal
  2. Transport selects TypeSafe or OpenRouter from environment
  3. Retries transient errors within the signal
  4. Validates answers; returns ok with answer or a typed rejection

Strengths

  • Fail-closed validation of every response
  • Never leaks bodies or credentials in errors
  • Provider fallback via environment

Caveats

  • Library only; no UI
  • Node 22+ required

Getting started

`npm install @jkudish/jev-agent-tools`, then `await ask({ state, questions, model: "jev-latest", signal })`.

At a glance

Type
MCP server
Status
beta
Language
TypeScript
Runtime
Node.js 22+
Has code
yes
Has tests
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Jev transport/provider layer: multi-provider transport layer that supports fail-closed validation. Used by jkudish/jev-browser and jkudish/jev-mcp.

    logicrw/awesome-jev-projects
  • Jev transport/provider layer: multi-provider transport layer that supports…

    wh000wh000/awesome-jev-live
  • Jev transport/provider layer: multi-provider transport layer that supports fail-closed validation. Used by jkudish/jev-browser and jkudish/jev-mcp.

    hellogumbo/awesome-jev

Frequently asked questions

What does ask() return?

Either the validated answer with usage and effective model, or a typed rejection code; it never throws a verdict.

Which providers are supported?

TypeSafe direct and OpenRouter, auto-selected from environment variables.

Who uses it?

The author's Jev Browser and Jev MCP projects.

Related projects

  • Hack Club's lightweight LLM proxy, listed for adding a Jev forwarding endpoint behind its auth, limits and usage logging.

    MCP serverproductionTypeScript
  • Ax, a DSPy-style multi-language LLM framework, listed with a native TypeSafe provider for Boolean, Choice, Score and raw Jev questions.

    PluginproductionTypeScript
  • Effect TypeScript library whose @effect/ai-typesafe package maps classify, probability and rating operations to Jev questions.

    ProjectproductionTypeScript
  • PHP monorepo whose Polyglot module adds a TypeSafe driver for typed Noul, Choice and Score decisions alongside LLM inference.

    ProjectproductionPHP
  • Go MCP server giving any client typed Jev decisions via OpenRouter or TypeSafe, with validated answers and no paid retries.

    MCP serverproductionGo
  • Simon Willison's LLM plugin that adds Jev as a model for yes/no, choice and score questions from the command line.

    PluginproductionPython