mcpField
T
TuringCorp

TuringCorp

远程服务
mcp.turingcorp.netAI 与智能体02 周前更新

关于 TuringCorp

TuringCorp 是一个通过模型面板比较两个备选方案的决策 MCP 服务,返回更合适的选项、置信度和理由。它面向需要处理没有客观判定标准的选择;不用于事实查询或多选项排序。

主要功能

  1. 01比较两个具体方案
  2. 02返回较优选项与理由
  3. 03提供判断置信度
  4. 04支持按任务 ID 取回结果

适用场景

  1. 01选择要发送的邮件版本
  2. 02比较两种可行的业务方案
  3. 03评估难以客观判定的日常选择

MCP 相关

通过 Streamable HTTP 提供 `decide` 和 `get_result` 工具。调用决策工具需要 Agent Pass,工具发现则无需凭据。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.turingcorp.net/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://mcp.turingcorp.net/mcp需要授权

工具

2
参数类型必填说明
taskstring是要做出的决定,以中立方式陈述,不预设答案。
optionAstring是第一个候选项及其理由。
optionBstring是第二个候选项及其理由。

详细介绍

TuringCorp — MCP 服务

为那些没有标准答案的决策提供决策模型。你的 Agent 有两个都有充分理由支持的选项,必须选出一个。将两个选项都发送过来:由模型评审团共同评判并返回更好的选项、对两者差距的判断(经过校准的置信度),以及原因。

  • 端点(规范): https://mcp.turingcorp.net/mcp
  • 别名: https://mcp.turingcorp.net/ 和 https://mcp.turingcorp.net/mcp/
  • 健康检查: https://mcp.turingcorp.net/healthz
  • 传输方式: Streamable HTTP,无状态(没有会话,也没有 Durable Object)。GET /mcp → 405 属于正常现象。
  • 协议: MCP 2026-07-28(现代版)和 2025-06-18(旧版)——一个路由同时支持两者。
  • 发现方法(server/discover、tools/list)无需凭据——目录扫描器可以按设计在未认证的情况下读取完整工具列表。

做出决策:decide

输入task(字符串)、optionA(字符串)、optionB(字符串)——均为必填
输出job_id(字符串)、betterOption("option_A" | "option_B")、confidence(百分比字符串,例如 "76.7%")、reason(字符串)
注解readOnlyHint: true · openWorldHint: false · idempotentHint: false
超时预留 180–300 秒——决策调用时间较长。超时是客户端/宿主设置,而非工具参数:调用时无需传入任何内容。默认的 60 秒超时会在答案返回前中止调用;如果发生这种情况,请勿再次调用——通过 job_id 获取结果。
长时间调用声明了 io.modelcontextprotocol/tasks 扩展的客户端会收到任务句柄,而不是让单个连接保持打开数分钟,并通过轮询 tasks/get 获取结果——参见获取结果。未声明该扩展的客户端则完全不会受到影响。

成功调用会直接返回决策。 job_id、betterOption、confidence 和 reason 都会在同一个工具结果中返回——无需轮询,也无需之后再获取任何内容。job_id 仅用于调用未能返回结果的情况(超时、连接断开或客户端不再等待)。

confidence 是本服务对两个选项差距的自身判断——可供你做决策时参考,但不是指令、结果,也不是对选择结果的预测。粗略解读:≥90% 表示差距明显 · 80–90% 表示有差距,但不那么明显 · 70–80% 表示较难取舍 · <70% 表示两者势均力敌。这些范围仅供描述。请根据自己的使用场景选择阈值;对于高风险或不可逆的决策,请执行自己的审核策略。 各范围内的观测准确率及其测量方式已发布于 https://api.turingcorp.net——该页面是关于这些区间及其实测准确率的权威来源。

⚠️ idempotentHint: false 是如实声明:重试调用就是一次新调用。请记录结果返回的 job_id——对于已付费的决策,可以使用相同凭据在 7 天内获取(GET https://api.turingcorp.net/v1/jobs?job_id=<id>;如果没有该 id,GET https://api.turingcorp.net/v1/jobs 会列出该凭据对应的所有 job id)。应获取结果,而不是重试。

何时不应使用

  • 超过两个选项。 它只比较 A 和 B——没有第三个选项位,也不会为列表排序。
  • 任何可以计算或验证的事项。 规范、测试、价格、文档:如果可以依据客观标准做出判断,就应使用该标准。这项服务适用于没有客观规则可循的选择。
  • 事实性问题。 它会在两个候选项中做出选择,但不会查找任何信息。
  • 对速度要求极高的流程。 决策调用时间较长,且需要付费。不要将其放在必须在数秒内响应的请求后面。
  • 未经审核的高风险不可逆决策。 根据置信度进行路由,并保留自己的审核策略。

如何填写这三个参数

  • task — 中立地陈述需要作出的决定,不偏向任何一方:“我该发送哪封邮件?”,而不是*“我该发送诚实的那封吗?”*
  • optionA / optionB — 每个选项都要是一个具体方案,并说明支持它的理由。纯文本或 Markdown 均可,长度不限;两方内容应大致相当,确保比较公平。
  • **一个选项 = 一个计划。**不要把多个备选方案塞进同一方(“去室内或改期”):它比较的是两个选项,而不是替你拆分其中一个。
{
  "task": "Which version of the delivery-slip email do I send to a client we want to keep?",
  "optionA": "Short and direct: the integration took longer than planned, delivery moves to the 24th, everything else is unchanged.",
  "optionB": "Warmer and longer: thank them for the kickoff, explain that dependencies took more time, offer to walk through the details."
}

更多模式——选择要发送的版本、根据置信度设定阈值,以及编写两个选项以确保比较公平:docs/COOKBOOK.md。

获取结果

每次调用都会返回一个 job_id。允许调用完成时,决策会直接随调用返回——job_id 仅用于调用未能返回结果的情况。

⚠️ 如何获取结果——使用 get_result。获取结果需要 Agent Pass,而在 MCP 主机内,Agent 通常无法获得它——因此获取结果要通过工具调用,而不是 REST 调用:get_result 由主机进行身份验证,主机会为你附上通行凭证。Agent 永远不会处理通行凭证,而且该凭证刻意不设为工具参数(否则会出现在提示词和对话记录中)。

  • 使用 job_id 调用 get_result——获取该任务的状态;任务成功后,还会返回与原始调用相同的决策内容。
  • 不带参数调用 get_result——列出此凭证在过去 7 天内创建的任务 ID。这是最重要的情况:如果调用被中断,你就不会收到 ID。
  • 只读且免费——它不会启动新任务,也不会产生任何费用,因此可以安全重试(readOnlyHint: true、idempotentHint: true)。
  • 声明了 io.modelcontextprotocol/tasks 扩展的主机也可以轮询 tasks/get。大多数客户端尚未声明该扩展,因此才需要 get_result。

操作人员/主机使用通行凭证(通过 REST 获取相同数据):

  • 提供 ID——使用相同的 Agent Pass 调用 GET https://api.turingcorp.net/v1/jobs?job_id=<id>。
  • 不提供 ID——调用 GET https://api.turingcorp.net/v1/jobs,列出该凭证在过去 7 天内创建的任务 ID;然后像上面那样获取其中一个任务。列表仅包含任务 ID、产品和时间戳。
  • 尚无任务——空列表不是错误,也不存在 job_id=0 这样的占位符: {"object":"list","window_seconds":604800,"data":[]}。查询 0 会返回 404 No such job.

获取结果会返回任务状态;任务成功后,还会返回与调用本身原本会返回的相同内容。不属于你的任务,或超过 7 天的任务,会被报告为不可用。GET https://api.turingcorp.net/v1/account 会返回 {"account_id":"…"}。

实际做法是尽量无需获取结果:预留 180–300 秒,让调用有时间完成。

先看看它如何作出决策

我们不提供免费套餐,因此改为公开决策依据:27 个真实决策,逐字记录——问题、两个选项、偏好的选项、报告的置信度,以及理由。涵盖九个领域,每个领域三个案例:写作 · 技术 · 商业 · 研究 · 职业 · 金钱 · 人际关系 · 旅行 · 日常生活。

→ https://github.com/TuringCorp-net/poe-demo-public — 数据集:examples.json

先看置信度这一列。对于普通且匹配度较高的问题,置信度为 70–90%,而非 99%——这正是经过校准的数值与装饰性数值的区别:数值较高,意味着比较结果明确,可以据此采取行动;数值较低,意味着两个选项确实难分伯仲,选择权仍在你手中。在这组数据中,置信度范围为 27.3%–88.3%,中位数为 74.0%,没有超过 90%,因为这些都是日常生活中难以抉择的情况,而非简单问题。当置信度区间确实给出明确结果时,它们能带来什么效果,已发布在 https://api.turingcorp.net。

身份验证

发送 Agent Pass:Authorization: Bearer <pass>。

在 https://agent-pass.turingcorp.net 签发——自助注册(邮箱验证)→ 充值 → 获取 pass。pass 有效期为 7 天,且可重新生成。如果调用因凭据无效而被拒绝,请重新登录该网站并重新生成 pass。

错误分为 两类,它们出现的位置也不同:

凭据问题会在调用前被拒绝(HTTP 401 + WWW-Authenticate)。业务失败则会作为工具结果返回,其中 isError: true,并附带 JSON 块 {error, http_status, action_url, message}——http_status 是上游状态码;工具调用本身的 HTTP 状态码为 200。

类别返回内容示例
凭据HTTP 401 + WWW-Authenticate——不会生成工具结果没有凭据 · pass 已过期或无效(invalid_credential,消息中附有重新登录 URL)
业务HTTP 200,工具结果 isError: true,并附带 JSON 块余额不足(http_status 为 402,action_url 指向充值页面)· 超出配额(http_status 为 429)

先根据 HTTP 状态码 判断:没有新凭据时,401 重试也不会成功;而业务失败表示调用已执行但遭到拒绝——请查看该块,了解原因和后续步骤。详细约定见下文的 错误可供机器读取。

入口速率限制:每个客户端 IP 每 60 秒 120 个请求。这是用于抑制洪泛的限制,不是配额——真正的每个密钥配额会单独执行。计数器为近似值:它按边缘位置维护,并采用最终一致性,因此可能短暂超限。

两种接入方式——但两者并不相同

  • 通过 MCP 客户端或宿主(Claude Code、Cursor、VS Code、Codex、TRAE、Coze……)。宿主会保存凭据并自动为你附加:你无需自行设置 Authorization 请求头,而且大多数宿主不允许你这样做。超时是宿主设置,不是你在调用中传入的参数。
  • 直接调用 REST API(https://api.turingcorp.net)。在这里,你需要自行发送 Authorization: Bearer <Agent Pass>,并且可以通过 ID 检索任务。

⚠️ 容易让人误解的一点:能通过宿主调用工具,并不意味着你能访问 REST API。 宿主可能根本不会把底层 Agent Pass 提供给你,因此你自行发起的任务检索调用可能会返回 401。如果宿主声明了 Tasks 扩展,请通过工具接口检索(参见 检索结果);如果没有声明,你可能无法从当前环境访问检索功能。

快速入门

调用工具需要 Agent Pass。发现(tools/list)无需 pass——但调用 decide 需要。

🔑 pass 的存放位置很重要。 如果客户端能让 pass 不写入文件,就应这样做——例如 VS Code 的 ${input:…}、Codex 的 bearer_token_env_var。以纯文本形式写入 mcp.json 或任何客户端配置中的 pass, 所有能读取该文件的 Agent 和进程都能看到;助手也会读取自己的配置——它们可能会将你的 pass 直接打印到输出中。请将客户端配置视为你设备上的公开内容。

1. 获取 Agent Pass

在 https://agent-pass.turingcorp.net 自助办理:使用邮箱地址注册、完成验证并充值。pass 只会显示一次;有效期为 7 天,且可随时重新生成。Agent 也可以通过 API 完成相同操作——请参阅该网站的 /llms.txt。

2. 将客户端指向端点

任何读取 JSON 配置的客户端——Cursor、Windsurf、Claude Desktop:

{
  "mcpServers": {
    "TuringCorp": {
      "type": "http",
      "url": "https://mcp.turingcorp.net/mcp",
      "headers": { "Authorization": "Bearer <your Agent Pass>" }
    }
  }
}

保留 "type": "http" 这一行:读取 url 条目但没有 type 的客户端会将其视为本地 stdio 服务并跳过。

Cline 需要使用不同的 type——"streamableHttp"(驼峰命名,不带连字符)。 使用其他值或省略该字段,都会让 Cline 回退到 SSE,而此服务不支持 SSE,导致连接失败并返回 405。设置文件为 cline_mcp_settings.json(MCP Servers 图标 → Configure 选项卡 → Configure MCP Servers):

{
  "mcpServers": {
    "TuringCorp": {
      "type": "streamableHttp",
      "url": "https://mcp.turingcorp.net/mcp",
      "headers": { "Authorization": "Bearer <your Agent Pass>" },
      "disabled": false,
      "autoApprove": [],
      "timeout": 300
    }
  }
}

timeout 的单位是秒——请设为 300 或更高。Cline 曾存在一个 Bug (#2296,于 2025-06-23 关闭),导致请求无论设置为何,都会在约一分钟后中断;如果调用在约 60 秒时被截断,应怀疑是这个 Bug,而不是服务,并且使用 job_id 获取结果,而不是重试(重试会产生第二次付费调用)。

只支持 stdio 的客户端需要桥接,并且凭据必须通过 --header 传入—— mcp-remote 不会读取 AUTHORIZATION 环境变量,因此仅设置该变量的配置虽然能连接并列出工具,却会在首次调用时因 401 失败。Authorization: 后缺少的空格是有意为之:某些客户端会篡改 args 中的空格。

{
  "mcpServers": {
    "TuringCorp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.turingcorp.net/mcp",
               "--header", "Authorization:${AGENT_PASS}"],
      "env": { "AGENT_PASS": "Bearer <your Agent Pass>" }
    }
  }
}

⚠️ 不带凭据直接运行 npx -y mcp-remote@latest https://mcp.turingcorp.net/mcp,可以连接并列出工具,但会在首次调用时因 401 失败。这是预期行为——发现功能开放,执行功能不开放。

Claude Code:

claude mcp add --transport http TuringCorp https://mcp.turingcorp.net/mcp \
  --header "Authorization: Bearer <your Agent Pass>"
3. 自行进行基本检查

发现——无需凭据:

curl -s -X POST https://mcp.turingcorp.net/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -H 'mcp-protocol-version: 2026-07-28' \
  -H 'mcp-method: tools/list' \
  --data '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'

调用工具还需要 mcp-name: decide 和凭据:

curl -s -X POST https://mcp.turingcorp.net/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -H 'mcp-protocol-version: 2026-07-28' \
  -H 'mcp-method: tools/call' \
  -H 'mcp-name: decide' \
  -H "authorization: Bearer $AGENT_PASS" \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"decide","arguments":{"task":"Pick a launch date","optionA":"Ship now","optionB":"Wait two weeks"},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'
版本

存在两个版本号,且它们不应相同:

含义
Registry version(server.json)列表版本——元数据记录(端点、身份验证声明、图标、链接)。列表变更时递增。
serverInfo.version(来自在线端点)已部署服务的运行时版本。行为变更时递增。

仅修改列表的变更(例如更正链接)会递增 Registry 版本,但不会影响运行时,因此这两个版本可以合理地不同。

值得了解的协议细节
  • Accept 必须同时包含 application/json 和 text/event-stream,否则会收到 406。
  • **协议版本:**一个路由同时服务两个世代。
    • 现代版 2026-07-28——无需 initialize 握手;使用 server/discover 和 _meta。
    • 旧版——标准 initialize 握手。实测协商结果:客户端请求 2025-11-25、2025-06-18 或 2025-03-26 时,响应会恰好采用其请求的版本;现代版 2026-07-28 的 initialize(不属于该世代)会收到 2025-11-25 响应。
    • 通过 tools/list 和 server/discover 发现服务端能力无需凭据。
  • **错误可供机器读取。**错误分为两种,返回方式也不同——因此请根据正确的内容进行分支处理:
失败类型如何识别根据什么进行分支处理
凭据缺失或无效HTTP 401,附带 WWW-Authenticate challenge(包含 error="invalid_token" 和 resource_metadata);响应正文是标准 JSON-RPC 错误,其中 error.code = -32001。不会生成工具结果。HTTP 状态码
业务失败——余额不足、配额耗尽、上游错误正常的工具结果(isError: true),其中第二个 content 块是一个可用 JSON.parse 解析的单一 JSON 对象,例如 {"error":"insufficient_balance","http_status":"402","action_url":"…","message":"…"}该块中的 error 字段

简而言之:凭据问题会在工具运行前被拒绝,因此不会显示为工具结果;其他运行后出现的失败都会显示为工具结果,并附带可供机器读取的块。

  • 授权发现:401 响应包含一个指向 /.well-known/oauth-protected-resource 的 resource_metadata。请注意,此服务使用的是静态 bearer 凭据,而非 OAuth——该文档会明确说明这一点,不会将你引入不存在的 OAuth 流程。

不适用于浏览器客户端

此端点有意不为基于浏览器的(跨源)MCP 客户端提供服务:携带非 localhost 浏览器 Origin 标头的请求会被拒绝并返回 403,且不会返回 CORS 标头。MCP Inspector 等浏览器工具通过本地进程代理请求,该进程不会发送 Origin——这种方式可以正常工作。如果需要让浏览器页面访问此服务,请运行你控制的代理,而不是进行跨源调用。

不包含的内容

  • **没有其他层级。**无法通过此端点访问 TuringCorp 的其他能力。
  • **没有 SLA。**不提供可用性承诺,也不应对此作任何推断。
  • **不是自动驾驶。**Decider 是一个由你调用的组件。如何设置使用条件——阈值、人工审核、重试——由你自行决定并负责。
  • **decide 没有幂等键——请改为记录任务 ID。**重试决策会产生一次新的付费调用;请使用 get_result 获取原始结果。

在编码 Agent 中使用:Agent Skill

这里提供了一个面向编码 Agent 的 Agent Skill(适用于 Claude Code、Codex,以及任何采用相同 skill 约定的工具)。它会教 Agent 何时适合使用双选项判断、如何编写公平对比的两个选项,以及如何解读置信度而不过度推断。

安装时,可让你的 Agent 使用此仓库;也可以将 skills/decider/ 复制到 skills 目录,并将 MCP 服务添加到客户端(参见快速入门)。

关于此存储库

此存储库包含上述服务的发现元数据,供目录服务和客户端读取,以便查找和描述该服务。

此服务也收录于 Smithery:https://smithery.ai/servers/turingcorp/mcp

服务本身是托管的远程端点;无需安装或运行此处的任何内容。

许可证

请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。