{"data":{"slug":"78-xiaozhi-esp32","name":"xiaozhi-esp32","tagline":"An MCP-based chatbot","github_url":"https://github.com/78/xiaozhi-esp32","owner":"78","repo":"xiaozhi-esp32","owner_avatar_url":"https://avatars.githubusercontent.com/u/4488133?v=4","primary_language":"C++","stars":29150,"forks":6735,"topics":["chatbot","esp32","mcp"],"archived":false,"github_pushed_at":"2026-08-21T05:52:29+00:00","maintenance_label":"Very active","stars_delta_30d":788,"url":"https://www.graphcanon.com/tools/78-xiaozhi-esp32","markdown_url":"https://www.graphcanon.com/tools/78-xiaozhi-esp32.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/78-xiaozhi-esp32","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=78-xiaozhi-esp32","description":"An MCP-based chatbot | 一个基于MCP的聊天机器人","homepage_url":"https://xiaozhi.me","license":"MIT","open_issues":674,"watchers":240,"ai_summary":"A chatbot developed using the ESP32 microcontroller and employing an MCP (Microcontroller Peripherals Chip) for functionality.","readme_excerpt":"# An MCP-based Chatbot\n\n(English | [中文](README_zh.md) | [日本語](README_ja.md))\n\n## Introduction\n\n👉 [Human: Give AI a camera vs AI: Instantly finds out the owner hasn't washed hair for three days【bilibili】](https://www.bilibili.com/video/BV1bpjgzKEhd/)\n\n👉 [Handcraft your AI girlfriend, beginner's guide【bilibili】](https://www.bilibili.com/video/BV1XnmFYLEJN/)\n\nAs a voice interaction entry, the XiaoZhi AI chatbot leverages the AI capabilities of large models like Qwen / DeepSeek, and achieves multi-terminal control via the MCP protocol.\n\n<img src=\"docs/mcp-based-graph.jpg\" alt=\"Control everything via MCP\" width=\"320\">\n\n## Recent Updates\n\n- The mainline now targets ESP-IDF v6.0 or later, with v6.0.2 as the preferred stable SDK. The previous 157-variant baseline was validated on ESP-IDF v6.0.1; the current matrix contains 171 variants, of which 170 support IDF 6.0.x and the ESP32-S31 variant requires IDF 6.1 or later.\n- MQTT and BluFi cryptographic code has migrated to PSA Crypto. IDF 6 component splits and third-party dependency compatibility have also been addressed.\n- Audio pipeline concurrency, MQTT/UDP packet validation, and release-matrix selection have been hardened.\n- ESP-IDF v5.5 is retained only for documented legacy boards. ESP32-P4 Rev1 and Rev3 are both supported on IDF 6 with ESP-SR 2.4.7; see the [ESP-IDF 6.0 Migration Guide](docs/esp-idf-6-migration.md) for full compatibility and board-validation details.\n\n### Features Implemented\n\n- Wi-Fi, wired Ethernet, USB RNDIS, and ML307/EC801E or NT26 Cat.1 4G networking; supported boards can switch between Wi-Fi and 4G\n- Offline voice wake-up with [ESP-SR](https://github.com/espressif/esp-sr), including customizable wake words\n- Two communication transports: [WebSocket](docs/websocket.md) and [MQTT + UDP](docs/mqtt-udp.md)\n- Opus audio streaming with conventional streaming ASR + LLM + TTS pipelines and Realtime end-to-end voice models; AEC-capable hardware supports realtime full-duplex interaction\n- Speaker recognition, identifies the current speaker [3D Speaker](https://github.com/modelscope/3D-Speaker)\n- OLED / LCD displays with emoji and rich expression support, plus camera vision input on supported boards\n- Battery display and power management\n- 39 interface languages, with localized voice prompts where available and English fallback\n- ESP32, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-S3, and ESP32-P4 chip platforms\n- Wi-Fi provisioning through hotspot or BluFi\n- Device-side MCP for device control (Speaker, LED, Servo, GPIO, etc.)\n- Cloud-side MCP to extend large model capabilities (smart home control, PC desktop operation, knowledge search, email, etc.)\n- Customizable wake words, fonts, emojis, and chat backgrounds with online web-based editing ([Custom Assets Generator](https://github.com/78/xiaozhi-assets-generator))\n\n## Hardware\n\n### Breadboard DIY Practice\n\nSee the Feishu document tutorial:\n\n👉 [\"XiaoZhi AI Chatbot Encyclopedia\"](https://ccnphfhqs21z.feishu.cn/wiki/F5krwD16viZoF0kKkvDcrZNYnhb?from=from_copylink)\n\nBreadboard demo:\n\n\n\n### Supports 138 Board Directories and 171 Release Variants (Partial List)\n\n- <a href=\"https://oshwhub.com/li-chuang-kai-fa-ban/li-chuang-shi-zhan-pai-esp32-s3-kai-fa-ban\" target=\"_blank\" title=\"LiChuang ESP32-S3 Development Board\">LiChuang ESP32-S3 Development Board</a>\n- <a href=\"https://github.com/espressif/esp-box\" target=\"_blank\" title=\"Espressif ESP32-S3-BOX-3\">Espressif ESP32-S3-BOX-3</a>\n- <a href=\"https://docs.m5stack.com/zh_CN/core/CoreS3\" target=\"_blank\" title=\"M5Stack CoreS3\">M5Stack CoreS3</a>\n- <a href=\"https://docs.m5stack.com/en/atom/Atomic%20Echo%20Base\" target=\"_blank\" title=\"AtomS3R + Echo Base\">M5Stack AtomS3R + Echo Base</a>\n- <a href=\"https://gf.bilibili.com/item/detail/1108782064\" target=\"_blank\" title=\"Magic Button 2.4\">Magic Button 2.4</a>\n- <a href=\"https://www.waveshare.net/shop/ESP32-S3-Touch-AMOLED-1.8.htm\" target=\"_blank\" title=\"Waveshare ESP32-S3-Touch-AMOLED-1.8\">Waveshare ESP32-S3-Touch-AMOLED-1.8</a>\n- <a href=","github_created_at":"2024-08-31T10:08:16+00:00","created_at":"2026-07-11T11:47:59.473473+00:00","updated_at":"2026-08-25T18:01:30.920339+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"}],"tags":[{"slug":"chatbot","name":"chatbot"},{"slug":"esp32","name":"esp32"},{"slug":"mcp","name":"mcp"}],"trust":{"provenance":{"is_fork":false,"github_id":850267588,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-08-25T18:01:30.112Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":2,"days_since_push":4,"last_release_at":"2026-08-06T01:03:05Z","stars_delta_30d":788,"open_issues_delta_30d":6},"security_summary":{"status":"no_manifest","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T11:48:00.674Z","medium_count":0,"scan_profile":"mcp_manifest","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-08-25T18:01:30.611Z"},"languages":{"value":["c++"],"source":"github.language","observed_at":"2026-08-25T18:01:30.611Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-08-25T18:01:30.611Z"}},"decision_facts":{"hosting":null,"pricing":null,"requirements":null,"constraints":null,"when_to_use":["Need a lightweight chatbot that can operate on low-power devices","Looking to leverage existing ESP32 setups for AI functionalities"],"when_not_to_use":["Require complex AI processing better suited to higher-end processors","Seeking solutions with extensive cloud-based language model integration"],"source":"enrich:decision_facts","observed_at":"2026-07-12T16:35:56.209Z"},"constraint_facets":null,"decision_summary":[{"label":"Adopt for","value":"xiaozhi-esp32 uses the ESP32 microcontroller with MCP for a localized AI experience."}]}}