WASM MCP服务器
在web浏览器中以WebAssembly(WASM)运行的模型上下文协议(MCP)服务器的概念验证实现。该项目演示了MCP工具和资源在浏览器环境中的集成。
特性
计算器工具
- 执行基本算术运算(加法、减法、乘法、除法)
- 输入验证和错误处理
- 实时计算结果
存储系统
- 键值存储功能
- 使用字符串键设置和检索值
- 浏览器会话中的持久存储
- 基于模板的资源处理
技术实现
服务器组件
server.ts:核心MCP服务器实现,包括工具和资源定义main.ts:客户端集成和UI交互处理browser-transport.ts:浏览器通信的自定义传输层
建筑
- 使用模型上下文协议SDK实现服务器
- 实现自定义浏览器传输层
- 使用回调函数注册工具
- 资源使用具有参数替换的模板路径
关键概念
- 工具
- 注册使用 server.tool() - 通过回调函数执行 - 使用Zod进行模式验证
- 资源
- 基于模板的路径(例如。, storage://{key}) - 通过访问 readCallback - 参数化资源处理
用法
计算器
- 选择一个操作(加、减、乘、除)
- 输入两个数字
- 点击“计算”查看结果
- 无效输入和除零的错误处理
存储
- 在相应字段中输入键和值
- 点击“设置存储”以存储该值
- 输入密钥并单击“获取存储”以检索值
- 为成功操作和错误提供反馈
依赖项
- @模型上下文协议/sdk
- Zod(用于模式验证)
- TypeScript
- Vite(用于开发和建设)
项目结构
mcp-wasm-poc/
├── src/
│ └── web/
│ ├── server.ts # MCP server implementation
│ ├── main.ts # Client-side logic
│ └── browser-transport.ts # Browser transport layer
├── index.html # Web interface
└── package.json # Project dependencies错误处理
- 服务器初始化错误
- 工具执行错误
- 资源访问错误
- 输入验证
- 传输层错误
未来的增强功能
- 其他计算器操作
- 跨会话的持久存储
- 增强的UI/UX
- 其他MCP工具和资源
- WASM优化
发展
这是一个概念验证实现,展示了使用WebAssembly在web浏览器中运行MCP服务器的可行性。该实现侧重于演示核心MCP概念,同时保持简单明了。
