BLE MCP传输工具

一个Node.js BLE传输工具,使MCP客户端能够通过BLE GATT与MCP设备通信,支持JSON-RPC消息框架和MTU限制链接。

  • by solnera
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 solnera/ble-mcp-transport-ts

使用说明

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-transport
import { 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适配器和适当的操作系统权限