BLE MCP传输
一种Node.js BLE传输,使MCP客户端能够通过BLE GATT与MCP设备通信。它依赖于@abandonware/noble进行扫描、连接和特征I/O,并包括用于MTU约束链路的JSON-RPC消息帧。
特性
- 通过服务UUID扫描并连接到外围设备
- 通过RX/TX特性进行双向消息传递
- 大型有效载荷的消息打包和重组
- 与@modelcontextprotocol/sdk传输接口兼容
快速开始
安装
npm i ble-mcp-transportimport { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { BleTransport } from "ble-mcp-transport";
const transport = new BleTransport({
scanTimeout: 10000,
});
const client = new Client(
{ name: "ble-mcp-client", version: "1.0.0" },
{ capabilities: {} }
);
await client.connect(transport);
const tools = await client.listTools();
console.log(tools);运输选项
BleTransport 支持以下可选设置:
serviceUuid:服务UUID(默认为内置值)rxCharUuid:RX特征UUID(默认为内置值)txCharUuid:TX特征UUID(默认为内置值)namePrefix:外围设备名称前缀过滤器scanTimeout:扫描超时(毫秒)(默认值10000)
内置UUID:
- 服务:
00001999-0000-1000-8000-00805f9b34fb - RX:
4963505f-5258-4000-8000-00805f9b34fb - TX:
4963505f-5458-4000-8000-00805f9b34fb
协议和框架
- 使用BLE GATT进行通信
- RX特性:客户端写入消息
- TX特性:服务器通知消息
- 起始数据包包括总长度;后续数据包增量序列
- JSON-RPC消息在完全重新组装后发出
发展
npm run build需求
- Node.js运行时
- BLE适配器和适当的操作系统权限
