es617 avatar

Ble Mcp Server

es617/ble-mcp-server

Gives AI agents direct access to Bluetooth Low Energy hardware through a full set of tools: scan for devices, connect, discover services, read and write characteristics, and subscribe to notifications. Built on bleak for cross-platform support across macOS, Windows, and Linux. Works stdio by default with Claude Code, VS Code Copilot, and other MCP clients. Includes a protocol spec system so agents can understand device-specific commands instead of raw UUIDs, plus a plugin layer for high-level operations like sensortag.read_temp. Writes and plugins are opt-in via environment variables. Useful for iterating on BLE protocols, debugging hardware conversationally, automating test sequences, or exploring unknown devices without boilerplate.

GitHub stars
13
tools
35
auth
Secret needed
transport
STDIO, HTTP, SSE
env vars
6
last updated
Mar 30, 2026

Tools

35 tools

Public tool metadata for what this MCP can expose to an agent.

ble_scan_start

No parameter schema in public metadata yet.

ble_scan_get_results

No parameter schema in public metadata yet.

ble_scan_stop

No parameter schema in public metadata yet.

ble_connect

No parameter schema in public metadata yet.

ble_disconnect

No parameter schema in public metadata yet.

ble_connection_status

No parameter schema in public metadata yet.

ble_discover

No parameter schema in public metadata yet.

ble_mtu

No parameter schema in public metadata yet.

ble_read

No parameter schema in public metadata yet.

ble_write

No parameter schema in public metadata yet.

ble_read_descriptor

No parameter schema in public metadata yet.

ble_write_descriptor

No parameter schema in public metadata yet.

ble_subscribe

No parameter schema in public metadata yet.

ble_unsubscribe

No parameter schema in public metadata yet.

ble_wait_notification

No parameter schema in public metadata yet.

ble_poll_notifications

No parameter schema in public metadata yet.

ble_drain_notifications

No parameter schema in public metadata yet.

ble_connections_list

No parameter schema in public metadata yet.

ble_subscriptions_list

No parameter schema in public metadata yet.

ble_scans_list

No parameter schema in public metadata yet.

ble_tasks_list

No parameter schema in public metadata yet.

ble_tasks_cancel

No parameter schema in public metadata yet.

ble_spec_template

No parameter schema in public metadata yet.

ble_spec_register

No parameter schema in public metadata yet.

ble_spec_list

No parameter schema in public metadata yet.

ble_spec_attach

No parameter schema in public metadata yet.

ble_spec_get

No parameter schema in public metadata yet.

ble_spec_read

No parameter schema in public metadata yet.

ble_spec_search

No parameter schema in public metadata yet.

ble_trace_status

No parameter schema in public metadata yet.

ble_trace_tail

No parameter schema in public metadata yet.

ble_plugin_template

No parameter schema in public metadata yet.

ble_plugin_list

No parameter schema in public metadata yet.

ble_plugin_reload

No parameter schema in public metadata yet.

ble_plugin_load

No parameter schema in public metadata yet.

Sponsors

Configuration

BLE_MCP_ALLOW_WRITES

Enable BLE characteristic writes (off by default for safety)

BLE_MCP_WRITE_ALLOWLIST

Comma-separated UUID allowlist for writable characteristics

BLE_MCP_PLUGINS

Plugin policy: 'all' or comma-separated plugin names. Unset = disabled.

BLE_MCP_TOOL_SEPARATOR

Tool name separator character (default '_'). Set to '.' if your client supports dots.

BLE_MCP_MAX_SESSIONS

Maximum concurrent MCP sessions (default 1).

BLE_MCP_AUTH_TOKEN*secret

Password for OAuth approval page. Required unless --no-auth is used.

Readme

BLE MCP Server

MCP License: MIT Python BLE

A stateful Bluetooth Low Energy (BLE) Model Context Protocol (MCP) server for developer tooling and AI agents. Works out of the box with Claude Code, VS Code with Copilot, and any MCP-compatible runtime. Defaults to stdio (no HTTP, no open ports), with optional SSE and Streamable HTTP transports for remote access and multi-session use. Uses bleak for cross-platform BLE on macOS, Windows, and Linux.

Example: Let Claude Code scan for nearby BLE devices, connect to one, read characteristics, and stream notifications from real hardware.

Demo

7-minute video walkthrough — scanning a real BLE device, discovering services, reading values, and promoting flows into plugins.


Why this exists


View the full README on GitHub

Details

Repository
github.com/es617/ble-mcp-server
Package
ble-mcp-server
Transport
STDIO, HTTP, SSE
Auth
Required
Registry
MCP registry, active

More from es617