🧠 MCP PTU服务器
一个符合MCP标准的Cloudflare Worker,帮助ChatGPT协调结构化的多路径推理会话。服务器将会话状态保存在持久对象中,强制跨计划的多样性,记录证据,并报告实时质量指标,以便模型可以自我调节其工作流程。
关键能力
- 并行推理编排 –通过专用的MCP工具创建、执行、评论和最终确定推理计划。
- 证据台账 –计划执行过程中记录的每一项证据都会自动用可追溯的ID进行登记。
- 动态质量指标 –置信度、覆盖率和共识得分根据会话数据计算,并在最终确定过程中浮出水面。
- 会话持续 –the
/proxy端点使用以下命令将请求转发到正确的持久对象session_id,消除了在无法设置自定义标头的客户端中对自定义标头的需求。
架构快照
| 层 | 目的 |
|---|---|
src/workers/index.ts | 将请求路由到持久对象的HTTP入口点。 |
src/workers/session.ts | 持久对象,用于存储并行推理会话并编排工具调用。 |
src/workers/parallel-reasoning-mcp.ts | 会话管理器,具有计划生命周期逻辑、证据注册和质量指标。 |
src/workers/everything-workers.ts | 注册服务器公开的MCP工具。 |
src/workers/session-metrics.ts | 实现置信度、覆盖率和共识计算。 |
入门
- 安装依赖项
npm install- 对项目进行类型检查
npm run build- 运行测试套件
npm test- 雇佣当地工人
npm run workers:dev该项目的目标是Node.js 20+和Wrangler 4.40+。必须为配置Cloudflare帐户凭据 wrangler dev 和 wrangler deploy.
MCP端点
服务器实现了标准MCP传输和便利代理:
POST /mcp–规范MCP入口点(需要mcp-session-id头球POST /proxy–提取并行推理session_id从请求正文中提取并转发到/mcp使用正确的标题。
在MCP会话中,以下工具驱动工作流程:
init_parallel_reasoning–宣布新的推理工作流程和预期的多样性轴。submit_reasoning_plan–注册计划路径。execute_plan_step–执行功能步骤并自动记录证据ID。submit_peer_review–批评其他计划并更新共识统计。record_plan_result–保存计划的结果和证据参考。check_session_readiness–在最终确定之前验证会话是否符合质量阈值(推荐)。finalize_parallel_reasoning–结束会议,返回质量指标和综合建议。
所有工具都接受 session_id 参数。在整个工作流中重复使用相同的值,以保持状态一致。
最佳实践:在最终确定之前检查准备情况
总是打电话 check_session_readiness 在尝试之前 finalize_parallel_reasoning.此工具:
- 验证结构要求(最小计划、所有已执行计划)
- 对照阈值检查质量指标(置信度≥85%,覆盖率≥95%,共识≥80%)
- 如果尚未准备就绪,则提供可操作的建议
- 防止过早完成尝试
如果 finalize_parallel_reasoning 当质量指标低于阈值时调用,它将 块定稿 并返回详细的警告,解释哪些指标需要改进。
语义多样性验证
服务器使用 语义验证 对于多样性轴,实现更灵活的计划差异化:
运作原理
- 轴解析为 关键词:价值 成对(例如。,
"Tech Stack: Hybrid"→{key: "tech_stack", value: "hybrid"}) - 所需轴:计划必须包括匹配的轴 钥匙 (值可能不同)
- 计划间多样性:计划在语义上必须在≥2个轴上不同(相同的键+不同的值=不同)
示例
{
"required_diversity_axes": ["Tech Stack: Cloud", "Data Sources: Official"],
"plan_A": {
"diversity_axes": ["Tech Stack: Hybrid", "Data Sources: Primary research"]
},
"plan_B": {
"diversity_axes": ["Tech Stack: On-premise", "Data Sources: Expert interviews"]
}
}两个方案都满足所需的轴(匹配键),但在2个轴上不同(不同值)✅
好处
- 无需从复制精确的字符串
required_diversity_axes - 关注实质性差异,而不是语法
- 被拒绝的计划会被存储以供审核和交叉污染
质量指标和阈值
服务器强制执行质量阈值以防止过早完成:
| 度量 | 阈值 | 描述 |
|---|---|---|
| 自信 | ≥85% | 按证据量和质量信号加权 |
| 覆盖 | ≥95% | 已执行能力步骤与计划承诺的比率 |
| 共识 | ≥80% | 正面评价与相互冲突的同行评审的平衡 |
执法行为
check_session_readiness报告达到/未达到的阈值finalize_parallel_reasoning块最终确定 如果未满足任何阈值- 阻止警告解释了哪些指标需要改进,并提供了可操作的后续步骤
- 只有满足所有结构要求和质量阈值时,会话才能最终确定
解决速赢问题
- 400“服务器未初始化” –呼叫
initialize使用前tools/call,或让/proxy自动执行握手。 - 406“客户必须接受…” –包括
Accept: application/json, text/event-stream在每个MCP请求中。 - “未找到会话” –确保相同
session_id传递给工作流中的所有并行推理工具。
OpenAI应用SDK兼容性
此服务器与OpenAI Apps SDK小部件渲染兼容:
- 工具响应包括
_meta["openai/outputTemplate"]用于iframe/widget渲染(Apps SDK格式)。 - 遗产
structuredContent仍然返回以实现向后兼容性。
实施参考:
src/workers/apps-sdk-metadata.ts–元数据助手+工具→小部件映射src/workers/everything-workers.ts–集中式响应转换包装器
