模型上下文Wasm服务器
该服务器支持在网页浏览器中运行模型上下文协议,其功能包括算术运算和基于会话的键值存储。
服务介绍
WASM MCP 服务器
这是一个在浏览器中运行的 WebAssembly (WASM) 实现的概念验证项目,展示了 Model Context Protocol (MCP) 工具和资源在浏览器环境中的集成。
功能
计算器工具
- 执行基本的算术运算(加法、减法、乘法、除法)
- 输入验证和错误处理
- 实时计算结果
存储系统
- 键值存储功能
- 使用字符串键设置和检索值
- 浏览器会话内的持久化存储
- 基于模板的资源处理
技术实现
服务器组件
server.ts:包含工具和资源定义的核心 MCP 服务器实现main.ts:客户端集成和 UI 交互处理browser-transport.ts:用于浏览器通信的自定义传输层
架构
- 使用 Model Context Protocol SDK 进行服务器实现
- 实现了一个自定义的浏览器传输层
- 通过回调函数注册工具
- 资源使用带有参数替换的模板路径
关键概念
-
工具
- 使用
server.tool()注册 - 通过回调函数执行
- 使用 Zod 进行模式验证
- 使用
-
资源
- 基于模板的路径(例如,
storage://{key}) - 通过
readCallback访问 - 参数化的资源处理
- 基于模板的路径(例如,
使用方法
计算器
- 选择一个操作(加法、减法、乘法、除法)
- 输入两个数字
- 点击“计算”以查看结果
- 对无效输入和除以零进行错误处理
存储
- 在相应字段中输入键和值
- 点击“设置存储”以存储值
- 输入键并点击“获取存储”以检索值
- 成功操作和错误时提供反馈
依赖项
- @modelcontextprotocol/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 在浏览器中运行 MCP 服务器的可行性。该实现专注于展示核心的 MCP 概念,同时保持简单性和清晰性。