Jev MCP

io.github.freepik-company由 GitHub 账号 freepik-company 发布v0.3.1更新于 Oct 24, 2026

Typed decisions with Jev / System One via OpenRouter or TypeSafe: classify, verify, rerank, decide.

已验证STDIO仅桌面数据与分析AI 与机器学习

概览

AI 生成的概览

一个本地 MCP 服务器,通过 OpenRouter 或 TypeSafe 调用 Jev(System One),让助手获得带类型的概率化决策:分类、核验、重排与决策。

可以做什么
按自定义类别对条目分类,返回每条的类别、置信度与概率分布,并保持输入顺序。依据提供的证据核验论断,返回支持、矛盾或证据不足。按查询对候选进行相关性重排,采用 0-4 分标准,可选 top-k 过滤。针对共享状态提出具名类型化问题(选项、是/否概率或量表评分),获得校准后的答案。列出兼容的模型 ID 与当前配置的默认模型。
适用场景
适合需要明确、低成本决策而非自由文本猜测的场景:工单与消息的路由分流、依据证据核查论断、对搜索候选排序,或工作流中的小型分类步骤。
运行要求
以二进制、容器镜像或 Go 安装方式在本地通过 stdio 运行。需要在服务器环境中提供 API 密钥:默认提供方使用 OPENROUTER_API_KEY,或设置 JEV_PROVIDER 为 typesafe 并使用 TYPESAFE_API_KEY。可选配置包括 JEV_MODEL 与 BASE_URL;需要对外 HTTPS 网络访问。
安装前请注意
每次调用任务工具都会向所选提供方发起一次付费推理请求,付费调用不会自动重试。API 密钥只能通过服务器环境提供,不能放在工具参数中。输入内容(包括证据文本)会发送至 OpenRouter 或 TypeSafe。核验结论是模型判断而非证明,且不设自动接受阈值。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Jev MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Jev MCP

[CI] [Release] [Go Reference] [License]

A small, dependency-light MCP server that gives any MCP client typed, probabilistic decisions from Jev, TypeSafe's System One model, through OpenRouter or TypeSafe directly.

Jev does not write text. You send it data plus typed questions and it returns one calibrated answer per question: a choice among your options, a probability for a yes/no, or a position on a scale you define, each with a confidence and the full probability distribution. It answers in a single parallel pass, fast and at a fraction of the cost of a chat model, and it cannot return an option you did not offer.

This server exposes that as five MCP tools, validates every answer the provider returns, never leaks your credential, and never retries a paid call.

Why use it

  • Let your agent decide instead of guess. Routing, triage, classification, claim checking and ranking become explicit, typed calls with probabilities your workflow can act on or escalate.
  • Cheap and fast. One paid inference call per tool invocation, regardless of how many items or questions it carries.
  • Provider agnostic. Use an OpenRouter key you already have, or a TypeSafe key. Switch with one environment variable.
  • Honest outputs. Answers are validated against the question you asked; inconsistent or incomplete answers fail the call instead of being fixed up. The unchanged provider response, including usage.cost, is always returned.
  • Safe by construction. Credentials live only in the server environment, HTTPS is enforced, redirects are refused, request and response sizes and time are bounded.

Quick start

1. Get an API key

  • OpenRouter (default): create a key at openrouter.ai and set OPENROUTER_API_KEY. Jev is listed as typesafe/jev-latest; the bare jev-latest id also works.
  • TypeSafe: create a key at typesafe.ai and set TYPESAFE_API_KEY together with JEV_PROVIDER=typesafe.

2. Install the server

Pick one:

Binary. Download the archive for your platform from Releases (Linux, macOS and Windows, amd64 and arm64), verify it against checksums.txt and put jev-mcp on your PATH.

Container. Images are published for every tagged release:

sh
docker pull ghcr.io/freepik-company/jev-mcp:latest

Go toolchain.

sh
go install github.com/freepik-company/jev-mcp/cmd/jev-mcp@latest

3. Register it in your MCP client

The server speaks MCP over stdio and reads the credential from its environment. Never put the key in tool arguments.

Claude Code

sh
claude mcp add jev -e OPENROUTER_API_KEY="$OPENROUTER_API_KEY" -- jev-mcp

Claude Desktop, Cursor and other JSON-configured clients

json
{  "mcpServers": {    "jev": {      "command": "jev-mcp",      "env": { "OPENROUTER_API_KEY": "sk-or-..." }    }  }}

Container instead of a binary (use -i, never -t; the key is inherited from the client's environment):

json
{  "mcpServers": {    "jev": {      "command": "docker",      "args": ["run", "--rm", "-i", "-e", "OPENROUTER_API_KEY", "ghcr.io/freepik-company/jev-mcp:latest"]    }  }}

For TypeSafe directly, add "JEV_PROVIDER": "typesafe" and TYPESAFE_API_KEY instead of the OpenRouter key.

The server is also listed in the MCP Registry as io.github.freepik-company/jev-mcp, so clients that browse the registry can install it from there.

Configuration

VariableDefault / purpose
JEV_PROVIDERopenrouter or typesafe (default: openrouter)
OPENROUTER_API_KEYOpenRouter credential
TYPESAFE_API_KEYTypeSafe credential
API_KEYOverrides the selected provider's credential
JEV_MODELjev-latest; overridable per tool call with model
BASE_URLProvider API root; /v1/systemone is appended

Default roots: https://openrouter.ai/api and https://api.typesafe.ai. BASE_URL must be HTTPS; plain HTTP is accepted on loopback only, for local proxies and tests. Credentials belong in the server environment, never in tool arguments.

Tools

ToolInputResult
decideShared state and named questionsRaw typed answers and provider metadata
classifyitems, categories, instructionsCategory per item, confidence and probabilities
verifyclaims, evidencesupported, contradicted or insufficient_evidence per claim
rerankquery, candidates, optional top_kDescending relevance scores on a 0–4 rubric
list_modelsNo argumentsCompatible model IDs and the configured default

Items, claims, evidence and candidates are arrays of { "id": "unique-id", "text": "..." } with 1–64 entries. Categories map category IDs to descriptions. The three task tools accept an optional model, make one inference call, and return results plus the unchanged provider response (including response.usage.cost when supplied). Classification and verification preserve input order; ranking preserves it for ties. top_k filters results after evaluating every candidate. Inputs are never truncated.

Verification uses only supplied evidence; its verdict is a model judgment, not a proof or approval. No automatic acceptance thresholds are imposed. Model discovery uses OpenRouter's decisions catalogue or TypeSafe's native catalogue, without inference.

Example: decide

json
{  "state": {"ticket": "Please refund the duplicate charge."},  "questions": {    "department": {      "type": "choice",      "instructions": "Which team should handle this ticket?",      "criteria": {"billing": "Payments and refunds", "technical": "Software defects"}    },    "refund": {"type": "noul", "instructions": "Is a refund requested?"},    "urgency": {      "type": "score",      "instructions": "How urgent is this ticket?",      "criteria": ["Routine", "Service blocked", "Active financial harm"]    }  }}

choice selects a supplied option; noul returns P(true); score returns a probability-weighted rubric index. Full provider output is preserved, including score legends and usage.cost when available.

Example: classify

json
{  "instructions": "Route each support message to the right queue.",  "categories": {    "billing": "Charges, invoices and refunds",    "technical": "Bugs, errors and outages",    "other": "Anything else"  },  "items": [    {"id": "m1", "text": "I was charged twice this month."},    {"id": "m2", "text": "The export button does nothing."}  ]}

Returns one { "id", "category", "confidence", "probabilities" } per item, in input order, plus the full provider response.

Limits and failure modes

Unknown input fields and incomplete or inconsistent answers fail the call. Requests have a 30-second timeout, a 1 MiB input limit, and a 2 MiB response limit. Paid calls are not automatically retried. Provider errors surface only their HTTP status, never the response body, so a credential echoed by a provider cannot reach the model. See the input and output schemas for the complete contract.

Development

Only Docker is required:

sh
make test       # formatting, vet, race-enabled unit and integration testsmake image      # runtime image, tagged jev-mcp:localmake release    # archives and checksums for every platform in dist/

cmd/jev-mcp contains the entry point. internal/ separates configuration, the System One client and answer validation, the task layer and the MCP protocol. CI verifies builds and tests on every push and pull request; version tags publish release archives, the container image on GHCR and the entry in the MCP Registry.

See CONTRIBUTING.md for the workflow and design principles, SECURITY.md for reporting vulnerabilities and CHANGELOG.md for release notes.

License

Apache License 2.0. Jev and System One are products of TypeSafe AI; this project is an independent client and is not affiliated with TypeSafe or OpenRouter.

来源:README.md,提交 05750bb

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v0.3.1最新Sep 28, 2026
  2. v0.3.0Sep 21, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分