WASM MCP服务器

一个在浏览器中运行的WebAssembly模型上下文协议(MCP)服务器,提供计算器和键值存储功能。

  • by beekmarks
  • TypeScript
  • 本地部署
  • 41 星标
  • 更新于
在 GitHub 查看 beekmarks/mcp-wasm

使用说明

WASM MCP服务器

在web浏览器中以WebAssembly(WASM)运行的模型上下文协议(MCP)服务器的概念验证实现。该项目演示了MCP工具和资源在浏览器环境中的集成。

特性

计算器工具

  • 执行基本算术运算(加法、减法、乘法、除法)
  • 输入验证和错误处理
  • 实时计算结果

存储系统

  • 键值存储功能
  • 使用字符串键设置和检索值
  • 浏览器会话中的持久存储
  • 基于模板的资源处理

技术实现

服务器组件

  • server.ts:核心MCP服务器实现,包括工具和资源定义
  • main.ts:客户端集成和UI交互处理
  • browser-transport.ts:浏览器通信的自定义传输层

建筑

  • 使用模型上下文协议SDK实现服务器
  • 实现自定义浏览器传输层
  • 使用回调函数注册工具
  • 资源使用具有参数替换的模板路径

关键概念

  1. 工具

    • 注册使用 server.tool()
    • 通过回调函数执行
    • 使用Zod进行模式验证
  2. 资源

    • 基于模板的路径(例如。, storage://{key})
    • 通过访问 readCallback
    • 参数化资源处理

用法

计算器

  1. 选择一个操作(加、减、乘、除)
  2. 输入两个数字
  3. 点击“计算”查看结果
  4. 无效输入和除零的错误处理

存储

  1. 在相应字段中输入键和值
  2. 点击“设置存储”以存储该值
  3. 输入密钥并单击“获取存储”以检索值
  4. 为成功操作和错误提供反馈

依赖项

  • @模型上下文协议/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概念,同时保持简单明了。