🚀 仅_mcp
这是一个简单的MCP v0.2客户端和服务器实现,主要用于个人学习MCP。需要注意的是,它并非完整实现,也不适合用于生产环境。
🚀 快速开始
开发者指南
- 预提交钩子
pre-commit install
- 容器内开发
我们仅在容器内进行开发,使用以下命令:
docker compose up --build
- 前端依赖项管理
前端依赖项由本地管理。若需手动运行eslint,可执行:
npm --prefix frontend install && npx eslint
✨ 主要特性
目前进展
上周末花时间实现了MCP v0.2,过程十分有趣!目前代理已可使用经过身份验证的工具,不过仍有改进空间。
关键观察
- 协议变化:MCP v0.2与v0.1差异显著,最明显的是移除了SSE端点。它依赖于
.well-known OAuth流程进行认证,引入的application/json请求简化了部分交互,但也去除了通过SSE实现服务器推送的可能性。
- SDK和工具差距:当前用于快速构建MCP服务器的Python SDK仍为v0.2版本,且身份验证支持有限,因此构建了一个兼容两个标准的Falcon基架服务器。开发工具链存在滞后,例如Claude集成仍需本地基于stdio的设置。有前途的
mcp-proxy工具尚未支持v0.2,给实现过程带来意外障碍。
- 互操作性问题:MCP的工具方案与OpenAI的聊天完成标准不同,增加了实现的复杂性。函数调用链(如先获取模式再执行更新)也带来挑战,工具调用工作流有待进一步优化。
- 长期任务支持:虽然直接支持仍不完善,但MCP v0.2引入了事件ID用于任务状态轮询,这是一个积极的进步,不过在当前设置中尚未进行测试。
- 部署和策略:MCP端点理想情况下应与REST API一起托管,并集成OAuth流程,适合处理专门的代理流量。Cloudflare是可靠的托管选择,不过自托管在工具链成熟后可能更受欢迎。在考虑构建独立的MCP网关时,创始人可能需要重新评估其长期可行性。
总体而言,MCP v0.2发展态势良好,但仍需多次迭代来提升工具和SDK的成熟度。