mcp-v2
An experimental MCP v2 server supporting streamable HTTP, skills, and apps with a verification dashboard for end-to-end testing.
README
<p align="center"> <img src="./assets/mcp-v2-lab-cover.png" alt="MCP V2 Fox Trail:Kenvo 狐狸巡检 Protocol、Apps、Skills 与 Codex" width="100%" /> </p>
MCP v2 实验场
这是个能直接跑起来的 MCP v2 实验仓库。协议、MCP App、Skills 和 Codex 会话被放进同一条验证链路。哪些已经可用,哪些还卡在客户端,都直接写在下面。
实验内容
| 实验 | 做法 | 当前结果 |
|---|---|---|
| MCP v2 Server | @modelcontextprotocol/server@2.0.0,协议版本 2026-07-28 |
已通过 |
| Streamable HTTP | modern 使用 JSON;legacy stateless 使用同端点 SSE 响应帧 | 已通过 |
| 旧 Codex 兼容 | v2 内置 legacy: "stateless",不安装 server-legacy |
Codex CLI 0.145.0 可调用 |
| Skills | skills.discover、skills.run |
真实 Codex 会话已通过 |
| MCP App | ui:// Resource、sandbox、JSON-RPC bridge |
Web Host 已通过;Desktop 内嵌 UI 未验收通过 |
| 参数化 Dashboard | view、status、query 驱动 shadcn/ui 界面 |
桌面浏览器与 390px 已通过 |
| Codex 会话验收 | CLI 与当前 Desktop task 直接调用 Tool | 已通过 |
| Prompts | 2 个原生 MCP Prompt,modern 与 legacy 均可发现和渲染 | 通过 |
| Tasks | 5 个应用级 Task Tool,覆盖创建、轮询、列表、取消和结果 | 通过 |
| Auth | 可配置 Bearer Token + scope,覆盖 401/403/授权调用 | 通过 |
| v2 动态发现 | cache hints、完整 JSON Schema、Trace Context、input_required |
通过 |
| 独立场景闭环 | 6 个 React Flow 动画工作流,入口参数改变真实运行路径 | 6/6 |
| 服务端 E2E | modern + legacy 的 25 个自动化用例 | 25/25 |
这里的 legacy SSE 仅指 2025-06-18 stateless POST 响应的
text/event-stream 封装;项目没有旧式独立 SSE endpoint,也没有实现
subscriptions/listen。responseMode: "json" 只约束 2026-07-28
modern 请求,不能据此宣称所有兼容请求都是 JSON 响应。
当前项目定义的八类运行时能力均已实现。Skills 是 Tool 组合出的应用层能力;
Tasks 也采用 tasks.* Tool 模型,因为当前 2026-07-28 SDK 已不提供旧版
原生 Tasks 运行时。Auth 在设置 MCP_AUTH_TOKEN 后启用;未设置时保留本地
免鉴权开发模式。
场景化验证中心
验证中心不再用六套特征卡和证据卡重复解释 v2,也不把六个运行面误画成固定
协议顺序。一个 React Flow 动态路由按 server/discover、运行面、协议模式、
能力选择和有界参数生成当前路线:发现能力 → 条件选路 → 命中节点 → Verdict
→ 重新发现。左侧入口用于选择运行面,上方条件控件直接来自服务端动态入口;
每次只运行当前命中的真实路线。
服务端仍保留六个相互隔离的动态入口和 latest report 槽位;条件变化后,旧 报告必须与新的 protocol、selection 和 parameters 完全匹配才可继续投影。 老版本切换只改变 Flow 结构并标记为概念对照,运行按钮禁用且不会自动切回 v2;真实 Legacy 路线通过协议入口选择。服务端的 25 个自动化用例继续作为 独立门禁执行。
orders.dashboard 是这里最直观的实验。它返回一个 React + shadcn/ui
Dashboard,组件里的 Tabs 和 Select 会再次调用 Tool,拿到新的
structuredContent 后切换视图。
{
"view": "orders",
"status": "paid"
}
这组参数会返回一条演示订单 ord_demo_1001。Codex CLI 能拿到结果;
当前 Codex Desktop 还没有把 MCP App 真正渲染到会话里。主 Flow 验证
Tool、ui:// Resource、bridge 与 render 的服务端路线证据;MCP App 自身仍
单独构建和测试,但当前精简后的验证中心不再嵌入 iframe Widget。
运行
bun install
bun run dev
- 验证中心:http://localhost:3000/
- MCP Server:http://localhost:3001/mcp
生产容器把构建后的验证中心、/api 和 /mcp 统一暴露在 3000 端口:
docker compose -f compose.production.yml build
docker compose -f compose.production.yml up -d
生产入口:https://mcp-v2.kenvoai.com/,MCP Endpoint:
https://mcp-v2.kenvoai.com/mcp。容器以非 root、只读文件系统运行,并通过
共享 edge 网络交给 Caddy 终止 TLS。
完整验收:
bun run acceptance
它会执行 TypeScript 7 类型检查、Bun 测试、Rsbuild 构建、HTTP 验收、Playwright 桌面与移动端验收,以及面向 Codex 的客户端调用链。
目录
apps/mcp-app shadcn/ui MCP App,构建为单文件 HTML
apps/web 单主场景 React Flow 验证中心
services/mcp Bun MCP Server、Tool、Resource 和验收脚本
packages/shared
共享契约与测试夹具
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。