Atlas / MCP servers / rashedint32 / jev-mcp

jev-mcpSAFE

mcp/rashedint32/jev-mcp

MCP server exposing TypeSafe Jev as typed, calibrated judgment tools: classify, score, check, batched ask. Ships as a Claude Code plugin.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
7 7r · 0w · 0d
Transport
stdio
License
MIT
Stars
7
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://www.npmjs.com/package/jev-mcp) [](https://www.npmjs.com/package/jev-mcp)

An MCP server that exposes TypeSafe Jev as typed judgment tools.

Jev is a System One model. It returns a typed answer and a calibrated probability distribution, never prose. These tools surface that faithfully rather than hiding it behind a label.

Install

Requires Node 20.12+ and a TypeSafe API key from console.typesafe.ai.

Claude Code plugin

One marketplace add, one install. This registers the server and the agent skill together, so there is no separate skill step.

/plugin marketplace add rashedInt32/jev-mcp
/plugin install jev@jev-mcp

The plugin runs the published package through npx -y jev-mcp@, so nothing needs building. The first launch downloads the package, so allow a few seconds before the server shows as connected in claude mcp list.

Any MCP client

claude mcp add --scope user jev -- npx -y jev-mcp

Or in a client's JSON config:

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

Do not register the server directly and install the plugin. Two servers named jev will otherwise both register.

The key

The server reads the key from TYPESAFE_API_KEY in its environment, then from JEV_API_KEY, then from ~/.config/typesafe/key. It is never a tool argument, so it cannot land in a transcript or in a model's context.

The key file is the most reliable source, because some MCP clients strip the environment before spawning servers:

mkdir -p ~/.config/typesafe
printf '%s' "ts_..." > ~/.config/typesafe/key
chmod 600 ~/.config/typesafe/key

If you prefer the variable, put it in ~/.zshenv rather than in an

Read from source at commit 6ead2f5b4f47OBSERVED · 2026-10-10
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add jev-mcp --env JEV_API_KEY=${JEV_API_KEY} --env JEV_KEY_FILE=${JEV_KEY_FILE} --env TYPESAFE_API_KEY=${TYPESAFE_API_KEY} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "jev-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "JEV_API_KEY": "${JEV_API_KEY}",
        "JEV_KEY_FILE": "${JEV_KEY_FILE}",
        "TYPESAFE_API_KEY": "${TYPESAFE_API_KEY}"
      }
    }
  }
}
03

Exposed tools (7)

7 read · 0 write · 0 destructive.

ToolRiskDescription
jev-latestreadFlagship
jev_askread
jev_checkread
jev_classifyread
jev_modelsread
jev_scoreread
jev_triageread
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (7)

LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
test/files.test.mjs:33
"/home/u/.ssh/id_ed25519",
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
test/files.test.mjs:34
"/home/u/.ssh/config",
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
test/files.test.mjs:35
"/home/u/.aws/credentials",
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
test/files.test.mjs:47
"/p/id_rsa",
Why it matters. touches a credential store
LOWFilesystem / path · fs.credential_store · CWE-22, CWE-59
test/files.test.mjs:48
"/p/.git-credentials",
Why it matters. touches a credential store
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/helpers.mjs:89
const url = `http://127.0.0.1:${server.address().port}`;
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, @typesafe-ai/sdk, zod, @types/node, typescript
Why it matters. 5 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha 6ead2f5b4f47full audit observations/trust-audit/mcp-server/rashedint32__jev-mcp.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-106ead2f5b4f47SAFEB89first audit
06

Questions

What is the jev-mcp MCP server?

MCP server exposing TypeSafe Jev as typed, calibrated judgment tools: classify, score, check, batched ask. Ships as a Claude Code plugin.

What tools does jev-mcp expose?

7 in total: 7 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is jev-mcp safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does jev-mcp need?

It reads JEV_API_KEY, JEV_KEY_FILE and TYPESAFE_API_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does jev-mcp run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as jev-mcp at 0.5.1.

How current is this page?

The grade is for one exact copy of the source (6ead2f5b4f47), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement