Que fait picoxtools-debugger ?
Compétence Codex et serveur MCP local pour un diagnostic UART sécurisé avec PicoXtools.
Aperçu
Cette compétence permet à un agent Codex d'effectuer des diagnostics UART sur des dispositifs compatibles PicoXtools de manière sécurisée et reproductible. Elle comprend un serveur MCP (Model Context Protocol) qui expose des outils standardisés pour la communication série, la découverte de ports et l'exécution de diagnostics.
Fonctionnalités
- Découverte automatique des ports – Identification des ports UART disponibles sur le système.
- Configuration de la communication série – Paramètres de baud rate, bits de données, parité, etc.
- Exécution de diagnostics sécurisés – Envoi et réception de commandes de diagnostic avec validation.
- Gardes-fous intégrés – Vérifications pour éviter les erreurs de configuration ou les dommages matériels.
- Intégration MCP – Appels standardisés pour une interaction transparente avec l'agent IA.
Prérequis
- Python 3.8 ou supérieur
pyserialouserialinstallé- PicoXtools ou un dispositif compatible UART
- Environnement de développement Codex (CLI ou IDE)
Installation
-
Clonez ce dépôt :
git clone https://github.com/ashllll/picoxtools-debugger.git cd picoxtools-debugger -
Installez les dépendances :
pip install -r requirements.txt -
Configurez les variables d'environnement (optionnel) :
SERIAL_PORT– Port série par défaut (ex./dev/ttyUSB0)BAUD_RATE– Baud rate (défaut : 115200)
Utilisation
Démarrer le serveur MCP
python mcp_server.py
Le serveur écoutera sur localhost:8000 (par défaut). Vous pouvez configurer le port via l'argument --port.
Outils MCP disponibles
| Outil | Description |
|---|---|
list_ports | Liste les ports UART disponibles |
connect | Établit une connexion série avec le dispositif |
send_command | Envoie une commande de diagnostic |
read_response | Lit la réponse du dispositif |
disconnect | Ferme la connexion série |
Exemple d'utilisation avec l'agent IA
- L'agent découvre les ports :
list_ports - Se connecte au port cible :
connect(port="/dev/ttyUSB0", baud=115200) - Envoie une commande de diagnostic :
send_command(command="AT+DIAG") - Lit la réponse :
read_response() - Se déconnecte :
disconnect()
Sécurité
Cette compétence inclut des protections pour éviter :
- La connexion à des ports non UART
- L'envoi de commandes non valides
- Les déconnexions intempestives pendant une session de diagnostic
Licence
MIT