К основному содержанию
скилл CX Codex

mqtt-development — скилл для Claude Code: правила MQTT

Скилл задаёт агенту правила разработки на MQTT: структура топиков, уровни QoS, сессии, LWT и защита соединения. Пригодится, когда пишете код для IoT или обмена сообщениями в реальном времени.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill mqtt-development -a claude-code
Открыть на GitHub

Что делает mqtt-development

Скилл подключается к агенту как набор инструкций и дальше работает фоном: когда вы просите написать клиент, брокер или схему топиков, агент опирается на эти правила. Внутри — разделы про архитектуру (брокер, клиенты, топики, подписки), дизайн топиков, QoS, управление сессиями, Last Will and Testament, безопасность, формат сообщений, реализацию клиента, настройку брокера и тестирование.

По топикам скилл требует иерархию через слэш и не больше семи уровней, чтобы имена проходили в AWS IoT Core. Ведущий слэш в начале запрещён, потому что он считается уровнем и путает маршрутизацию. Одноуровневый + рекомендуется для подписок устройств, многоуровневый # — только для серверных правил; подписка устройства на # не допускается. По QoS логика такая: 0 — для телеметрии, где потеря допустима, 1 — для команд, которые можно повторить, 2 — для транзакций и смены состояния.

Отдельный блок про безопасность. MQTT по умолчанию шлёт учётные данные открытым текстом, поэтому в продакшене нужен TLS: незашифрованный порт 1883, шифрованный 8883. Скилл советует проверять сертификат брокера, ротировать креды и раздавать права на уровне топиков через ACL. Для устройств с рваным соединением — постоянные сессии с хранением недоставленных сообщений и интервал keep-alive 30–60 секунд для стабильной сети, 10–15 для мобильной.

Какие задачи решает

  • спроектировать иерархию топиков, которая не сломается на AWS IoT Core
  • выбрать уровень QoS под задачу и не переплатить трафиком
  • настроить постоянную сессию для устройства с рваным соединением
  • закрыть брокер TLS и разграничить доступ по топикам
  • описать LWT, чтобы статус устройства менялся при обрыве

Примеры запросов агенту

  • Напиши MQTT-клиента на Python с автопереподключением и экспоненциальной задержкой
  • Предложи структуру топиков для зданий и датчиков температуры
  • Какой QoS ставить для команд включения реле?

Как установить mqtt-development

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill mqtt-development -a claude-code

2Вручную: положить файлы

~/.claude/skills/mqtt-development/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/mqtt-development/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора168

kubernetes Задаёт агенту правила работы с Kubernetes, Helm, Ansible и CI/CD. Пригодится, когда манифесты и пайплайны пишет ИИ, а не человек. CX Codex +1 1 000установок quarkus Скилл задаёт агенту правила кода на Quarkus: Jakarta EE, MicroProfile, нативные сборки GraalVM и реактивные паттерны. CX Codex +1 1 000установок prisma Правила проектирования схем Prisma ORM, изоляции тестов и типобезопасных запросов. Помогает выстроить слой репозиториев в TypeScript. CX Codex +1 1 000установок matplotlib-best-practices Скилл задаёт агенту правила работы с Matplotlib: типы графиков, подписи осей, палитры для дальтоников, экспорт в PDF и PNG. CX Codex +1 1 000установок python-testing Настраивает ассистента на написание тестов для Python по методике TDD с использованием pytest, hypothesis и моков. Пригодится при модульном и интеграционном тестировании. CX Codex +1 1 000установок vuejs-typescript-best-practices Задаёт агенту свод правил по Vue.js и TypeScript: Composition API, Pinia, VueUse, Tailwind и оптимизация сборки Vite. Пригодится, когда проект на Vue растёт и хочется единый стиль кода. CX Codex +1 1 000установок drizzle-orm Скилл задаёт агенту правила разработки на Drizzle ORM: схема как код, типы из таблиц, запросы и миграции. CX Codex +1 1 000установок elasticsearch-best-practices Скилл снабжает ИИ-агента правилами проектирования индексов, настройки маппингов и ускорения поисковых запросов в Elasticsearch. CX Codex +1 999установок

Похожие

domain-iot actionbook Скилл задаёт ограничения IoT-разработки на Rust: сеть падает, питание ограничено, устройство доступно физически. Помогает агенту выбрать буфер, retry и TLS. CX Codex +1 2 700установок iot-engineer VoltAgent Community Помогает проектировать IoT-системы: от подключения устройств и обработки данных на edge до облачных сервисов. Подойдёт для задач с несколькими типами связи или большими потоками данных. 238установок arduino-azure-iot-edge-integration официальный github Помогает спроектировать связь Arduino с Azure IoT Hub и IoT Edge. Пригодится для телеметрии, команд устройству и работы при нестабильной сети. 100установок aws-messaging-and-streaming aws Помогает агенту выбрать, чем двигать данные в AWS: очередью, шиной событий или журналом. Полезно до того, как вы зафиксируете SQS или Kinesis. CX Codex +1 8 100установок iot-firmware ruvnet Разворачивает прошивки на парке устройств через канареечный релиз и блокирует выкатку при аномалиях. Пригодится для безопасного обновления IoT-устройств через агент. CX Codex +1 900установок iot-fleet ruvnet Скилл управляет флотами устройств Cognitum Seed через CLI-утилиту cognitum-iot. Помогает создавать группы оборудования, добавлять устройства и контролировать удаление. CX Codex +1 764установок

Рядом в теме «Бэкенд и API»

Всё по теме «Бэкенд и API» →

Вопросы о mqtt-development

Как установить mqtt-development в Claude?

Выполните npx skills add Mindrally/skills --skill mqtt-development -a claude-code. Файл скилла окажется по пути ~/.claude/skills/mqtt-development/SKILL.md.

Что делает mqtt-development?

Даёт агенту набор правил по MQTT: топики, QoS, сессии, LWT, TLS и ACL, формат payload, тестирование. Агент применяет их, когда вы пишете код обмена сообщениями.

Чем отличается QoS 1 от QoS 2?

QoS 1 гарантирует доставку, но допускает дубликаты. QoS 2 даёт ровно одну доставку через четырёхшаговое рукопожатие и стоит дороже по трафику.

Исходный текст

SKILL.md · Apache-2.0
---
name: mqtt-development
description: Best practices and guidelines for MQTT messaging in IoT and real-time communication systems
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# MQTT Development

You are an expert in MQTT (Message Queuing Telemetry Transport) protocol development for IoT and real-time messaging systems. Follow these best practices when building MQTT-based applications.

## Core Principles

- MQTT is designed as an extremely lightweight publish/subscribe messaging transport
- Ideal for connecting remote devices with small code footprint and minimal network bandwidth
- MQTT requires up to 80% less network bandwidth than HTTP for transmitting the same amount of data
- A minimal MQTT control message can be as little as two data bytes

## Architecture Overview

### Components

- **Message Broker**: Server that receives messages from publishing clients and routes them to destination clients
- **Clients**: Any device (microcontroller to server) running an MQTT library connected to a broker
- **Topics**: Hierarchical strings used to filter and route messages
- **Subscriptions**: Client registrations for specific topic patterns

## Topic Design Best Practices

### Topic Structure

- Use hierarchical topic structures with forward slashes as level separators
- Maximum of seven forward slashes (/) in topic names for AWS IoT Core compatibility
- Do NOT prefix topics with a forward slash - it counts towards topic levels and creates confusion
- Use meaningful, descriptive topic segments

### Topic Naming Conventions

```
{organization}/{location}/{device-type}/{device-id}/{data-type}
```

Example: `acme/building-1/sensor/temp-001/temperature`

### Wildcard Usage

- **Single-level wildcard (+)**: Matches one topic level - prefer for device subscriptions
- **Multi-level wildcard (#)**: Matches all remaining levels - use sparingly
- Never allow a device to subscribe to all topics using `#`
- Reserve multi-level wildcards for server-side rules engines
- Use single-level wildcards (+) for device subscriptions to prevent unintended consequences

## Quality of Service (QoS) Levels

### QoS 0 - At Most Once

- Fire and forget - no acknowledgment
- Fastest but least reliable
- Use for: Sensor data where occasional loss is acceptable, high-frequency telemetry

### QoS 1 - At Least Once

- Guaranteed delivery, may have duplicates
- Balance of reliability and performance
- Use for: Important notifications, commands that can be safely repeated

### QoS 2 - Exactly Once

- Guaranteed single delivery using four-way handshake
- Highest overhead but most reliable
- Use for: Financial transactions, critical commands, state changes

### Choosing QoS

- Match QoS to your reliability requirements
- Consider bandwidth constraints - higher QoS means more overhead
- Publisher and subscriber QoS are independent - broker delivers at lower of the two

## Session Management

### Clean Sessions

- `cleanSession=true`: No session state preserved, suitable for transient clients
- `cleanSession=false`: Broker stores subscriptions and queued messages for offline clients

### Persistent Sessions

- Enable for devices with intermittent connectivity
- Broker stores undelivered messages (based on QoS) for later delivery
- Set appropriate session expiry intervals
- Consider message queue limits on the broker

### Keep-Alive

- Configure keep-alive interval based on network conditions
- Broker uses keep-alive to detect dead connections
- Shorter intervals = faster detection, more overhead
- Typical values: 30-60 seconds for stable networks, 10-15 for mobile

## Last Will and Testament (LWT)

- Configure LWT message for each client
- Broker publishes LWT when client disconnects unexpectedly
- Use for: Device status updates, alerts, cleanup triggers
- LWT topic typically: `{base-topic}/status` with payload `offline`

## Security Best Practices

### Transport Security

- MQTT sends credentials in plain text by default
- Always use TLS to encrypt connections in production
- Default unencrypted port: 1883
- Encrypted port: 8883
- Verify broker certificates to prevent MITM attacks

### Authentication

- Use strong client credentials (username/password or certificates)
- Implement OAuth, TLS 1.3, or customer-managed certificates where supported
- Rotate credentials regularly
- Consider client certificate authentication for high-security scenarios

### Authorization

- Implement topic-level access control
- Clients should only access topics they need
- Use ACLs (Access Control Lists) on the broker
- Separate read and write permissions per topic

## Message Design

### Payload Format

- Use efficient serialization (JSON for readability, binary for efficiency)
- Keep payloads small - MQTT is designed for constrained environments
- Include timestamps in messages for time-series data
- Consider schema versioning for payload format changes

### Message Properties

- Use retained messages for current state (last known value)
- Set appropriate message expiry for time-sensitive data
- Use user properties for metadata without polluting payload

## Client Implementation

### Connection Handling

- Implement automatic reconnection with exponential backoff
- Handle connection loss gracefully
- Queue messages during disconnection for later delivery
- Use connection pooling for multi-threaded applications

### Subscription Management

- Subscribe to specific topics, avoid broad wildcards
- Unsubscribe when no longer needed
- Handle subscription acknowledgment failures
- Resubscribe after reconnection if using clean sessions

### Publishing Best Practices

- Validate messages before publishing
- Handle publish failures appropriately
- Use batching for high-frequency publishing where supported
- Consider message ordering requirements

## Broker Configuration

### Scalability

- Configure appropriate connection limits
- Set message queue sizes based on expected load
- Implement clustering for high availability
- Use load balancers for horizontal scaling

### Monitoring

- Track connection counts and rates
- Monitor message throughput and latency
- Alert on queue depth and memory usage
- Log authentication failures

## Testing

### Unit Testing

- Mock MQTT client for isolated testing
- Test message serialization/deserialization
- Verify QoS handling logic

### Integration Testing

- Test with real broker in test environment
- Verify reconnection scenarios
- Test LWT functionality
- Load test with realistic device counts

## Common Patterns

### Request/Response

- Use correlated topics: `request/{id}` and `response/{id}`
- Include correlation ID in message
- Implement timeouts for responses

### Device Shadow/Twin

- Maintain desired and reported state
- Use separate topics for state updates
- Handle state synchronization on reconnection

### Command and Control

- Use dedicated command topics per device
- Implement command acknowledgment
- Handle command queuing for offline devices

© Mindrally · Apache-2.0 · Mindrally/skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой