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 分