用途
jev-decision-mcp 是一个本地 stdio MCP 服务器,通过官方 TypeSafe API 暴露单一工具 jev_decide,用于进行类型化决策(typed decisions)。它面向需要批量处理独立判断问题的场景,例如分类、评分、是/否概率判断等。该项目由 amidabuddha 开发,是独立的社区项目,与 TypeSafe 无隶属关系,采用 MIT 许可。
主要能力
- 在单次调用中批量提交基于相同上下文的独立问题,答案保留各自的问题 ID。
- 支持多种决策类型:分类选择(choice)、是/否判断(noul)、评分(rubric scores)等。
- 返回模型、答案(answers)以及 token 使用量(usage),既作为 MCP 结构化内容,也作为 JSON 文本返回。
- 调用方保留对阈值、升级和动作执行的控制权。
- 项目附带示例文件 examples/decision.json,展示如何组合团队选择、退款是/否判断和紧急度评分。
使用方式
环境要求
- Node.js 22 或更高版本,且 npm 在 PATH 中可用。
- 支持本地 stdio 服务器的 MCP 客户端。
- 来自 TypeSafe Console 的 API 密钥,必须使用官方 TypeSafe 密钥,不支持 OpenRouter 和第三方网关密钥。
通过 npm 安装
npm 包包含构建好的服务器。首次使用时 npx 会下载并运行,无需克隆或构建。在 MCP 客户端配置中添加相应配置,并将 YOUR_TYPESAFE_API_KEY 替换为你的密钥。对于使用 mcpServers JSON 的客户端,配置方式如下(具体 JSON 结构请参考官方文档)。也可在启动客户端的环境中设置 TYPESAFE_API_KEY,并省略 env 配置(前提是客户端会转发该变量)。保存配置后重启或重新加载客户端的 MCP 服务器,工具将显示为 jev_decide。
若主机无法解析 npx,请使用该主机平台特定的启动器或绝对路径。GUI 应用的 PATH 可能与终端不同。
服务器通过 stdio 通信;在终端启动它会等待 MCP 客户端连接,而不会打开网页。npm 安装不会读取调用方工作目录中的 .env 文件。
如需全局安装可执行文件,可使用 npm install -g 命令(具体命令请参考官方文档),然后在 MCP 客户端中使用 "command": "jev-decision-mcp" 且不带参数,并提供相同的 API 密钥。
通过 Glama 安装
在 Glama 上打开 Jev Decision MCP 可查看其 README、工具架构和源码。本地安装请使用上述 npm 配置,或按照 listing 中的 GitHub Repository 链接下载或克隆源码并自行构建。Glama 将其列为本地 stdio 服务器;listing URL 不是 MCP 连接端点。
连接到 Codex
对于 npm 包,将相应配置合并到 Codex 的 config.toml 中。在启动 Codex 的环境中设置 TYPESAFE_API_KEY;env_vars 会将现有值转发给服务器。保持主机工具超时长于 JEV_TIMEOUT_MS / 1000。详见官方 Codex MCP 配置文档。
从源码构建
- 克隆仓库,安装依赖并编译服务器。
- 也可在 GitHub 使用 Code → Download ZIP 下载仓库,解压后在目录中运行 npm ci 和 npm run build。
- 在该目录中将 .env.example 复制为 .env 并设置 TYPESAFE_API_KEY,或通过 MCP 客户端的环��提供密钥。源码构建会读取该 .env,无论工作目录如何;现有环境变量优先。更改后需重启服务器。.env 被排除在 Git 之外。
- 配置 MCP 客户端运行构建后的入口点。将占位符替换为检出目录的绝对路径。Windows 路径可使用正斜杠,例如 C:/projects/jev-decision-mcp/dist/index.js。如果 node 不在客户端的 PATH 中,请使用 Node 可执行文件的绝对路径。
- 对于 Codex,使用上述 TOML 示例中的相同命令和参数。仅当通过 Codex 环境而非 .env 提供密钥时才保留 env_vars。
- 要验证构建,运行 npm run check(类型检查和模拟 API 响应的测试;不调用 TypeSafe)。使用 npm run dev 进行本地开发,源代码更改后重新构建使用 npm run build,再重启 MCP 客户端。
环境变量
在 MCP 客户端的服务器环境中设置以下变量,或在源码构建的 .env 中设置。保持客户端工具超时长于 JEV_TIMEOUT_MS / 1000 秒。jev-latest 跟随 TypeSafe 模型更新;如需可重复的评估,请设置特定的受支持模型版本。
服务器在没有密钥的情况下也能启动,以便客户端发现工具,但决策调用将返回 MISSING_API_KEY。状态和问题会发送到官方 TypeSafe API,可能产生 API 费用。TYPESAFE_BASE_URL 不会覆盖 API 端点。服务器不会持久化输入或决策,也不会暴露上游错误响应体。
调用示例
使用 examples/decision.json 中的 JSON 调用 jev_decide。它组合了团队选择、退款是/否判断和紧急度评分。更小的示例如下(具体 JSON 结构请参考官方文档)。
响应包含 model、answers 和 usage,既作为 MCP 结构化内容也作为 JSON 文本。Jev 可能将概率四舍五入到两位小数,因此它们的和可能略微偏离 1。服务器允许相应的舍入误差(每个选项最多 0.005),并保留返回的值而不进行归一化。Choice 支持 1–255 个命名选项。Instructions 和 descriptions 可以是字符串、JSON 对象或数组;choice 的 descriptions 也可以为 null。Noul 接受可选的 criteria.true 和 criteria.false 描述。
重要注意事项
- 请明确提供相关事实、源文本和策略:Jev 无法看到调用方的对话或本地文件。在 instructions 中编写完整的判断;ID 仅用作响应键。适当时包含一个无匹配选项。同一批次中的问题无法看到彼此的答案。
- noul 接近 0.5 表示对是/否的不确定性,而非中等强度。
- 置信度不授权任何操作,也不保证正确性;请在代表性数据上评估阈值。
故障排除
如果更新后工具未出现,请重启服务器并打开新的客户端会话。配置的服务器命名为 jev;其工具为 jev_decide。
服务/配置故障是 MCP 工具错误(isError: true),绝不会是编造的决策。错误代码包括 MISSING_API_KEY、INVALID_INPUT、INVALID_RESPONSE、API_ERROR、CONNECTION_ERROR、TIMEOUT 和 CANCELLED。无效参数也可能直接被 MCP SDK 拒绝。
适用场景与限制
适用于需要通过 TypeSafe API 进行批量类型化决策的开发者,尤其是使用 MCP 客户端的场景。限制包括:需要官方 TypeSafe API 密钥,决策调用可能产生费用,服务器不持久化数据,且不提供 Web 界面。