npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@donbee/jev-mcp

v0.3.1

Published

General-purpose MCP server and CLI to score option probabilities using Jev 1.13

Readme

@donbee/jev-mcp

Universal Model Context Protocol (MCP) server and CLI to score candidate options with Jev 1.13 choice probabilities.

Works with any MCP-compatible AI agent or client:

  • Claude Desktop
  • Cursor
  • Roo Code
  • Zed
  • Cline
  • Custom agents / LLM tools

Features

  • Standard MCP Tool: Exposes score_options (with backwards-compatible score_cline_options alias).
  • Unconstrained Options: score_options does not impose Cline-specific limits (2 or more options). The score_cline_options alias does keep Cline's 5-option cap, because ask_followup_question rejects more — an enrichment Cline cannot use is not a result.
  • Zero Config by Default: Connects to the free OpenCode Zen endpoint (jev-1.13-free) without requiring any API keys.
  • Configurable: Optionally configure API keys or providers (zen-free, zen, typesafe) via jev.json or cline-jev.json.
  • Standalone CLI: jev-option-scorer for quick terminal evaluation.
  • Autonomous Auto-Answer: Optional autoAnswer parameter or config setting returning an actionable directive to skip prompting.

Installation & Running

Using npx (no install)

npx -y @donbee/jev-mcp

In Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "jev": {
      "command": "npx",
      "args": ["-y", "@donbee/jev-mcp"]
    }
  }
}

In Cursor / Roo Code / Zed

Add an MCP STDIO server:

  • Command: npx
  • Args: ["-y", "@donbee/jev-mcp"]

CLI Usage

The package has two bins (jev-mcp for the stdio server and jev-option-scorer for the CLI). Running npx @donbee/jev-mcp starts the MCP server (it reads JSON-RPC from stdin), so name the CLI bin explicitly:

npx -y -p @donbee/jev-mcp jev-option-scorer --question "Which database?" --option "PostgreSQL" --option "SQLite" --option "Redis"

Or install it globally:

npm install -g @donbee/jev-mcp
jev-option-scorer --question "Which database?" --option "PostgreSQL" --option "SQLite" --option "Redis"

Tools Exposed

score_options

  • Arguments:
    • question (string, required): The question or decision being evaluated.
    • options (string[], required): 2 or more option labels to score.
    • state (string, optional): Context or task state. Defaults to question.
    • autoAnswer (boolean, optional): If true, directs the LLM to pick Jev's top option automatically.
    • provider (string, optional): "zen-free" | "zen" | "typesafe".

Configuration

Zero-config by default: without any file, scoring uses the free jev-1.13-free endpoint anonymously. A config file is optional.

jev.json or cline-jev.json is read from the first of these locations that exists:

  1. the nearest ancestor of the current directory containing package.json, .git or .cline (your project root)
  2. ~/.config/jev/jev.json
  3. ~/.cline/cline-jev.json
  4. ~/.config/cline-jev/cline-jev.json

Precedence per key: explicit tool/CLI argument > config file > default.

{
  "provider": "zen-free",
  "model": null,
  "baseUrl": null,
  "timeoutMs": 10000,
  "autoAnswer": false,
  "opencodeApiKey": null,
  "typesafeApiKey": null
}

Not read by this package (Cline-surface only, ignored silently): includeHistory, historyTurns, maxStateChars, historyScope, logDir, dbPath — see the audit-trail note below for why.

Audit trail

This server writes no decision trail. The legacy root package's mcp-server.js (and the Cline plugin package) record intercept / enriched / fail_open rows with source: "mcp" in ~/.cline/data/logs/jev-hook.jsonl + SQLite, which is what lets a pre-scored question become context for the next one. This universal server is deliberately agent-agnostic and dependency-free, so it keeps no state: nothing here feeds a session's history, and state is whatever the caller passes in.

If you need trail-backed scoring, use @donbee/cline-plugin-jev-percent (or the legacy @donbee/cline-option-scorer MCP server).

Requirements

Node >= 18. The client (src/jev-client.js) is byte-identical to the Cline package's copy and uses only fetch + AbortSignal.timeout; the Node 22.5 floor on the Cline packages comes from node:sqlite in the hook core, which this package does not ship.

Publishing

Released from this repo with the legacy root package on one shared version line; a GitHub Release (vX.Y.Z) publishes all three. The first version of this package was published by hand, because npm cannot create a package through trusted publishing (OIDC) — from then on, releases are fully automated.