# BLEA

Даёт агенту безопасную работу с Bluetooth Low Energy: сканирование, GATT, чтение и запись характеристик с подтверждением. Пригодится, когда нужно разобрать живое устройство, а не гадать по логам.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 12
- Автор: Nitmi
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Nitmi/blea
- Обновлён: 2026-09-29
- HTML: https://affpapa.org/nevibecode/mcp/blea

## Что делает

BLEA расшифровывается как Bluetooth Low Energy Automation. Это общий рантайм `ble`, который работает и как CLI, и как локальный MCP-сервер: обычные подкоманды дают детерминированный JSON или JSONL, а `ble mcp` поднимает stdio-сервер с теми же инструментами и управляемыми BLE-сессиями. Агент получает скилл с описанием рабочего процесса и границ безопасности, а также декларацию MCP.

Сценарии закрывают типичный цикл: проверить доступ к Bluetooth в системе, найти нужное устройство рядом, разобрать GATT-сервисы, сохранить сырые байты и сравнить их между запусками. Запись и спаривание выполняются только после явного разрешения: у `pair` есть флаг `--allow-pairing` и подтверждение устройства, у `exchange` — `--allow-write`. Есть офлайн-режим: `diff` сравнивает два дампа, `replay` прогоняет захваченный файл заново.

Нужен Python 3.10 или новее, доступ к Bluetooth даёт система через Bleak. Рантайм ставится из PyPI, и это надо сделать до того, как агент полезет к железу: без `ble` в `PATH` локальный MCP-сервер не найдёт исполняемый файл. Имена устройств принимаются, только если такое имя ровно у одного найденного устройства, поэтому надёжнее брать идентификатор из `scan` — на macOS это обычно UUID, а не MAC-адрес.

## Требования
- Нужно: Python и uv (команды через uvx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add blea -- uvx blea
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from blea <команда>

### Codex

**Командой платформы**
```bash
codex mcp add blea -- uvx blea
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from blea <команда>

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "blea": {
            "command": "uvx",
            "args": [
                "blea"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from blea <команда>

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "blea": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "blea"
            ]
        }
    }
}
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from blea <команда>

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add blea uvx blea
```
uvx запускает команду с именем пакета; если в README она другая — uvx --from blea <команда>

## Когда брать
- проверить, есть ли у системы доступ к Bluetooth
- найти нужное BLE-устройство среди соседних
- разобрать GATT-сервисы и характеристики
- сохранить сырые байты и сравнить два замера
- прочитать характеристику перед изменением состояния

## Примеры запросов агенту
- Запусти `ble doctor --json` и скажи, что с доступом к Bluetooth.
- Просканируй эфир на 8 секунд и покажи найденные устройства.
- Сравни `before.blea.jsonl` и `after.blea.jsonl` через `ble diff`.

## Похожие
- [REA](https://affpapa.org/nevibecode/mcp/rea.md) — MCP-сервер · ★ 386989
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [browser-use](https://affpapa.org/nevibecode/mcp/browser-use.md) — MCP-сервер · ★ 119160
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47392
- [mcp-server](https://affpapa.org/nevibecode/mcp/mcp-server.md) — MCP-сервер · ★ 43872

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
