Skip to main content
Glama

jev-mcp

中文 | English


中文

MCP server + CLI,把 TypeSafe 的 Jev(System One 模型)开放给 AI agent 调用。Agent 调用 jev_ask,传入 state 和类型化问题, 拿回结构化判断——无文本生成、无需解析。

这是一个薄桥接:只做请求校验,转发到 POST https://api.typesafe.ai/v1/systemone,再把答案原样返回。 问题的设计由调用方负责(见 TypeSafe 文档)。

工具

jev_ask

针对一段 state 回答类型化问题。所有问题并行、基于同一 state 求值, 答案按你起的 question id 返回。

参数

类型

说明

state

string | object | array

必填。 待评估内容:文本或结构化数据(聊天记录、工单、应用状态)。上限约 12 万字符。

questions

object

必填。 {id: question},1–50 个问题。id 只用于标识答案,不会送进模型——把完整含义写进 instructions。

model

string

默认 jev-latest。

问题类型:

  • noul —— 是否判断。返回 noul(0–1,yes 的概率)。可用 criteria: {true, false} 定义两种结果的含义。

  • choice —— 从 1–255 个命名选项中单选。返回 choice、 probabilities(和为 1)、confidence。

  • score —— 在你定义的 2–10 级量表上打分。返回 score(可落在两级 之间)、legend、probabilities、confidence。

示例:

{
  "state": "Help! My payouts have been failing for 3 days.",
  "questions": {
    "is_urgent": { "type": "noul", "instructions": "Does this convey urgency?" },
    "department": {
      "type": "choice",
      "instructions": "Which team should handle this?",
      "criteria": { "billing": "Payments, invoicing, refunds", "technical": "Bugs, outages, integrations" }
    }
  }
}

jev_models

列出当前 API key 可用的模型名/别名,供 jev_ask 的 model 参数使用。无参数。

安装

npm install -g @iixingchen/jev-mcp
# 或从源码运行:node src/server.js

需要 Node.js 20+。

授权

环境变量 TYPESAFE_API_KEY(到 console.typesafe.ai 创建)。也接受 CHECK_AI_CLI_TYPESAFE_API_KEY 作为回退。无 key 时 server 拒绝启动,且 key 永不写入日志。

接入你的 agent

Claude Code(claude mcp add,或 .mcp.json):

claude mcp add jev-mcp --env TYPESAFE_API_KEY=$TYPESAFE_API_KEY -- node /path/to/jev-mcp/src/server.js

Codex(~/.codex/config.toml):

[mcp_servers.jev-mcp]
command = "node"
args = ["/path/to/jev-mcp/src/server.js"]
env = { "TYPESAFE_API_KEY" = "..." }

Gemini CLI(~/.gemini/settings.json):

{
  "mcpServers": {
    "jev-mcp": {
      "command": "node",
      "args": ["/path/to/jev-mcp/src/server.js"],
      "env": { "TYPESAFE_API_KEY": "..." }
    }
  }
}

任何兼容 MCP 的客户端都一样:stdio 传输,node /path/to/jev-mcp/src/server.js, key 放环境变量。

CLI

export TYPESAFE_API_KEY=...
jev-ask request.json
cat request.json | jev-ask
jev-ask --model jev-1.13.0 request.json

请求格式:{"state": ..., "model": "jev-latest", "questions": {...}}, 答案 JSON 输出到 stdout。

测试

export TYPESAFE_API_KEY=...
npm test   # MCP stdio 冒烟测试,含真实 jev_ask + jev_models 调用

说明

  • 计费只按输入 token($0.042/Mtok),输出免费;客户端侧已做 state 上限以控制成本。

  • Jev 英文最强;其他语言请在自己的数据上验证,并用 confidence 决定自动执行还是转人工。

  • 每个问题只问一个原子判断;宽泛的判断拆成多个原子问题,答案在代码里组合。


Related MCP server: askjev

English

MCP server + CLI exposing TypeSafe Jev (a System One model) to AI agents. Agents call jev_ask with a state and typed questions; they get back structured judgments — no text generation, no parsing.

This is a thin bridge: it validates the request shape, forwards it to POST https://api.typesafe.ai/v1/systemone, and returns the answers. Question design stays with the caller (see the TypeSafe docs).

Tools

jev_ask

Answer typed questions about a state. All questions run in parallel against the same state; answers come back under your question ids.

Param

Type

Notes

state

string | object | array

required. The content to evaluate: text, or structured data (chat logs, records, app state). Capped at ~120k chars.

questions

object

required. {id: question}; 1–50 questions. Ids label answers; they are not sent to the model — put full meaning in instructions.

model

string

default jev-latest.

Question types:

  • noul — yes/no. Returns noul 0–1 (probability of yes). Optional criteria: {true, false} to define the outcomes.

  • choice — pick one of 1–255 named options. Returns choice, probabilities (sums to 1), confidence.

  • score — position on your 2–10 level rubric. Returns score (can land between levels), legend, probabilities, confidence.

Example:

{
  "state": "Help! My payouts have been failing for 3 days.",
  "questions": {
    "is_urgent": { "type": "noul", "instructions": "Does this convey urgency?" },
    "department": {
      "type": "choice",
      "instructions": "Which team should handle this?",
      "criteria": { "billing": "Payments, invoicing, refunds", "technical": "Bugs, outages, integrations" }
    }
  }
}

jev_models

Lists the model names/aliases this API key can use in jev_ask's model field. No parameters.

Install

npm install -g @iixingchen/jev-mcp
# or run from source: node src/server.js

Node.js 20+ required.

Auth

Set TYPESAFE_API_KEY in the environment (create one at console.typesafe.ai). CHECK_AI_CLI_TYPESAFE_API_KEY is accepted as a fallback. The server refuses to start without a key and never logs it.

Connect your agent

Claude Code (claude mcp add, or .mcp.json):

claude mcp add jev-mcp --env TYPESAFE_API_KEY=$TYPESAFE_API_KEY -- node /path/to/jev-mcp/src/server.js

Codex (~/.codex/config.toml):

[mcp_servers.jev-mcp]
command = "node"
args = ["/path/to/jev-mcp/src/server.js"]
env = { "TYPESAFE_API_KEY" = "..." }

Gemini CLI (~/.gemini/settings.json):

{
  "mcpServers": {
    "jev-mcp": {
      "command": "node",
      "args": ["/path/to/jev-mcp/src/server.js"],
      "env": { "TYPESAFE_API_KEY": "..." }
    }
  }
}

Any MCP-compatible client works the same way: stdio transport, node /path/to/jev-mcp/src/server.js, key in the environment.

CLI

export TYPESAFE_API_KEY=...
jev-ask request.json
cat request.json | jev-ask
jev-ask --model jev-1.13.0 request.json

Request shape: {"state": ..., "model": "jev-latest", "questions": {...}}. Response JSON goes to stdout.

Test

export TYPESAFE_API_KEY=...
npm test   # MCP stdio smoke test incl. live jev_ask + jev_models calls

Notes

  • Billing is per input token only ($0.042/Mtok); output tokens are free. State is capped client-side to bound cost.

  • Jev is strongest in English; validate on your own data for other languages, and use confidence to decide when to act vs. escalate.

  • Ask one atomic judgment per question; decompose broad judgments and combine answers in code.


License

MIT — same as the official @typesafe-ai/sdk and @modelcontextprotocol/sdk. See LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables agents to perform typed judgments—classify, score, check, match, and screen—over closed answer sets with confidence scores, without text generation.
    7
    25
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables agents to get fast, calibrated probabilistic answers from Jev (Typesafe AI) to yes/no, scale, or choice questions about provided material, without using a generative model.
    1
    15 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables coding agents to send natural language and JSON application state to a judge tool that returns typed judgments (yes/no probability, choice, or score) with model and usage metadata, and fails gracefully without blocking workflows.
    315 npm
    5
    Apache 2.0