embedded-dev-antigravity
npx skills add https://github.com/nannaolympicbroadcast/embeddeddevagentskill --skill embedded-dev-antigravity
Agent 安装分布
Skill 文档
ð åµå ¥å¼å¼å Agent Skill â Antigravity IDE
ææç»ç«¯äº¤äºéè¿ fastmcp CLI 宿ï¼ç´æ¥æå Electerm MCP Serverï¼
MCP Server å°åï¼http://127.0.0.1:30837/mcp
Step 0 â 建ç«ç¡¬ä»¶ä¸ç®æ ç³»ç»ä¸ä¸æï¼æ¯æ¬¡å¯¹è¯é¦å æ§è¡ï¼
æ¯æ¬¡å¯¹è¯å¼å§æ¶å¿ 须确认以ä¸ä¿¡æ¯ï¼åå ¥è®°å¿ï¼ä½ä¸ºä¸åæä½çåæï¼
å¼åæ¿åå· ï¼___ï¼ä¾ï¼STM32F407, ESP32-S3, Raspberry Pi 4ï¼
主æ§è¯çæ¶æ ï¼___ï¼ä¾ï¼ARM Cortex-M4, Xtensa LX7, RISC-Vï¼
ç®æ ç³»ç»/åºä»¶ ï¼___ï¼ä¾ï¼FreeRTOS, Zephyr, Bare-metal, Linux, U-Bootï¼
å·¥å
·é¾ ï¼___ï¼ä¾ï¼arm-none-eabi-gcc, xtensa-esp32s3-elf-gccï¼
è¿æ¥æ¹å¼ ï¼___ï¼ä¸²å£ / SSH / JTAG / SWDï¼
串å£è·¯å¾ ï¼___ï¼ä¾ï¼/dev/ttyUSB0, COM3ï¼
æªç¡®è®¤åä¸å¾ç»åºå
·ä½å½ä»¤ãç¡®è®¤åæ¯æ¬¡åå¤é¡¶é¨æ¾ç¤ºï¼
[ð å½åç®æ ï¼<å¼åæ¿> / <ç³»ç»>]
Step 1 â fastmcp å®è£ ä¸ Electerm è¿æ¥
1.1 å®è£ fastmcp
# éè¿ pip å®è£
ï¼æ¨èï¼è·¨å¹³å°ï¼ï¼æ³¨æéè¦ 3.0 æä»¥ä¸çæ¬
pip install "fastmcp>=3.0.0"
# æéè¿ uv å®è£
uv tool install "fastmcp>=3.0.0"
å®è£ åéªè¯ï¼
fastmcp version
1.2 æ£æ¥ Electerm MCP Server è¿éæ§
# ååº electerm server çææå¯ç¨å·¥å
·
fastmcp list http://127.0.0.1:30837/mcp
è¥è¾åºå·¥å ·å表ï¼åè¿æ¥æåãè¥æ¥éï¼æ§è¡ä¸æ¹å®è£ å¼å¯¼ã
1.3 Electerm æªå°±ç»ªæ¶çå¼å¯¼æ¥éª¤
â ä¸è½½ Electerm â https://electerm.html5beta.com/ï¼Win / macOS / Linuxï¼
â¡ å¼å¯ MCP Server
- æå¼ Electerm â 左侧 âï¸ é½¿è½®
- Widgets â MCP Server
- â å¾éå ¨é¨é项 â ç¹å» [Start Widgets]
- è®°å½ Widgets 颿¿ä¸æ¾ç¤ºçå®é 端å£å·
è¥ç«¯å£ä¸æ¯ 30837ï¼å°åç»å½ä»¤ä¸ç端å£å·æ¿æ¢ä¸ºå®é
端å£ï¼
http://127.0.0.1:<å®é
端å£>/mcp
ð https://github.com/electerm/electerm/wiki/MCP-Widget-Usage-Guide
Step 2 â fastmcp å½ä»¤åè
ææå½ä»¤åç´æ¥æå MCP Server URLï¼http://127.0.0.1:30837/mcp
# æ¥ç electerm server ææå·¥å
·åæè¿°
fastmcp list http://127.0.0.1:30837/mcp
# æ¥çææå·¥å
·ç详ç»åæ° schema
fastmcp list http://127.0.0.1:30837/mcp --input-schema
# æç´¢å·¥å
·ï¼Windows ç¨ findstrï¼Linux/macOS ç¨ grepï¼
fastmcp list http://127.0.0.1:30837/mcp | findstr "session"
fastmcp list http://127.0.0.1:30837/mcp | findstr "terminal"
fastmcp list http://127.0.0.1:30837/mcp | findstr "exec"
# è°ç¨å·¥å
·ï¼key=value åæ°å½¢å¼ï¼
fastmcp call http://127.0.0.1:30837/mcp <tool_name> key=value
# è°ç¨å·¥å
·ï¼JSON åæ°å½¢å¼ï¼éå夿忰ï¼
fastmcp call http://127.0.0.1:30837/mcp <tool_name> '{"key": "value"}'
# è°ç¨æ åæ°å·¥å
·
fastmcp call http://127.0.0.1:30837/mcp <tool_name>
æ å工使µ
# 1. åç°å·¥å
·
fastmcp list http://127.0.0.1:30837/mcp
# 2. æ¥çç®æ å·¥å
·çåæ° schema
fastmcp list http://127.0.0.1:30837/mcp --input-schema | findstr -A 10 "<tool_name>"
# 3. è°ç¨
fastmcp call http://127.0.0.1:30837/mcp <tool_name> param=value
Step 3 â æ¯æ¬¡åçå¿ é¡»æç´¢å¹¶å¼ç¨å®æ¹ææ¡£
æ¯ä¸ªææ¯åçé½å¿
é¡»éè¿ web_search æç´¢ï¼ç»å°¾éåè龿¥ã
æç´¢ Query 模æ¿ï¼
site:docs.espressif.com <å
³é®è¯>
site:docs.zephyrproject.org <å
³é®è¯>
"<å¼åæ¿åå·>" <é®é¢> site:github.com
<è¯çåå·> <é误信æ¯>
æ¯æ¬¡åçæ«å°¾éï¼
ð åèèµæï¼
- [æ é¢](URL) â æ¥æº
Step 4 â åå§åå¼åæ¿ï¼ä¸²å£è¿æ¥å¼å¯¼
å½ç¨æ·é¦æ¬¡è¿æ¥å¼åæ¿æ¶ï¼
â æç´¢ç®æ æ¿ä¸²å£ææ¡£
<å¼åæ¿åå·> serial console UART setup
<å¼åæ¿åå·> TX RX UART pins pinout
â¡ ç¡¬ä»¶è¿æ¥æ£æ¥æ¸ å
â¡ USB-TTL 转æ¢å¨ï¼CH340 / CP2102 / FTDIï¼å·²æå
¥ PC
â¡ TX-RX 交åï¼æ¿å TX â 转æ¢å¨ RXï¼æ¿å RX â 转æ¢å¨ TX
â¡ GND å
±å°
â¡ æ³¢ç¹ç确认ï¼å¸¸è§ï¼115200 / 921600 / 9600ï¼
æ¥ç串å£è®¾å¤ï¼
Linux/macOSï¼ls /dev/ttyUSB* /dev/ttyACM* /dev/cu.*
Windowsï¼è®¾å¤ç®¡çå¨ > 端å£(COMåLPT)
⢠Electerm 建ç«ä¸²å£ä¼è¯
- Electerm + â Serial â å¡«å ¥è·¯å¾åæ³¢ç¹ç â è¿æ¥
fastmcp list http://127.0.0.1:30837/mcp | findstr "session"æ¾å°å举ä¼è¯çå·¥å ·fastmcp call http://127.0.0.1:30837/mcp <list_tool>è·å session_id
Step 5 â å¨ç®æ è®¾å¤æ§è¡å½ä»¤
# å
åç°å·¥å
·
fastmcp list http://127.0.0.1:30837/mcp
# æ¾æ§è¡å½ä»¤ç±»å·¥å
·
fastmcp list http://127.0.0.1:30837/mcp | findstr "exec"
fastmcp list http://127.0.0.1:30837/mcp | findstr "command"
# æ¥çå·¥å
·åæ°
fastmcp list http://127.0.0.1:30837/mcp --input-schema
# æ§è¡ï¼key=value ç®æ´åæ³ï¼
fastmcp call http://127.0.0.1:30837/mcp <exec_tool> sessionId=<session_id> command="uname -a"
# æ§è¡ï¼JSON åæ³ï¼éåå«ç¹æ®å符æå¤æå½ä»¤ï¼
fastmcp call http://127.0.0.1:30837/mcp <exec_tool> '{"sessionId": "<session_id>", "command": "dmesg | grep -i error | tail -20"}'
常ç¨åµå ¥å¼è°è¯å½ä»¤
# Embedded Linux
dmesg -w # 宿¶å
æ ¸æ¥å¿
cat /proc/cpuinfo | head -20 # CPU ä¿¡æ¯
free -h && df -h # å
å/ç£ç
i2cdetect -y 1 # I2C è®¾å¤æ«æ
cat /sys/class/thermal/*/temp # æ¸©åº¦ä¼ æå¨
# Zephyr Shellï¼ä¸²å£ç´è¿ï¼
kernel threads # ä»»å¡å表
kernel stacks # æ ä½¿ç¨æ
åµ
device list # 已注å驱å¨å表
# ESP-IDF
idf.py -p /dev/ttyUSB0 flash monitor
# STM32 / OpenOCD
openocd -f interface/stlink.cfg -f target/stm32f4x.cfg \
-c "program build/app.elf verify reset exit"
Step 6 â ç½ç»é ç½®ä¸æä»¶ä¼ è¾ (SFTP)
å½ç¨æ·éè¦åå¼åæ¿åæ¥æä¼ è¾æä»¶æ¶ï¼é¦ééè¿ç½ç»ï¼å¦ SFTPï¼è¿è¡é«éä¼ è¾ã 请éµå¾ªä»¥ä¸å¼å¯¼æµç¨ï¼
â æéç¨æ·å»ºç«ç½ç»è¿æ¥ç¯å¢ åç¥ç¨æ·éè¦å°å¼åæ¿ä¸çµèè¿æ¥è³åä¸å±åç½ï¼æä¸¤ç§æ¨èæ¹å¼ï¼
- æå¼çµèçâç§»å¨çç¹âï¼åå¤è®©å¼åæ¿è¿æ¥çµèçç¹ï¼
- æå°å¼åæ¿åçµèåæ¶è¿æ¥å°åä¸ä¸ªå®¶åº/åå ¬è·¯ç±å¨ Wi-Fiã
â¡ è·å忮并æä½å¼åæ¿è¿ç½
主å¨åç¨æ·è¯¢é®è¦è¿æ¥ç Wi-Fi åç§°ï¼SSIDï¼åå¯ç ã
è·åä¿¡æ¯åï¼Agent åºä¸»å¨å©ç¨ç°æç串å£ä¼è¯ï¼åè Step 5ï¼ï¼å¨ç®æ ç³»ç»ç»ç«¯æ§è¡èç½å½ä»¤ï¼å¦ Linux ç³»ç»éè¿ nmcli dev wifi connect <SSID> password <PWD>ï¼æ Zephyr/ESP32 çç¯å¢ç wifi æä»¤ï¼è®©å¼åæ¿è¿ä¸è¯¥ Wi-Fiã
⢠éªè¯ç½ç»ä¸ SFTP ä¼ è¾
è¿æ¥æååï¼å¨ä¸²å£æ§è¡ ifconfig æ ip a å½ä»¤è·åå¼åæ¿åé
å°çå±åç½ IP å°åã
æ¿å° IP åï¼å³å¯ä½¿ç¨ SFTP æ scp è¿è¡æä»¶ä¼ è¾ã
Step 7 â å³çæ
ç¨æ·è¾å
¥
ââ "è¿ä¸²å£" / "åå§åå¼åæ¿" â [Step 4] 串å£å¼å¯¼ + web_search
ââ "æ§è¡å½ä»¤" / "æ¥æ¥å¿" / "è°è¯" â [Step 2] list åç°å·¥å
· â call æ§è¡
ââ "ç¼è¯æ¥é" / "é
ç½® toolchain" â [Step 3] web_search â æ¹æ¡ â MCP éªè¯
ââ "ç§åºä»¶" / "flash" â æç´¢ææ¡£ â çæå½ä»¤ â ç¨æ·ç¡®è®¤ â call æ§è¡
ââ "ä¼ æä»¶" / "忥代ç " â [Step 6] æç¤ºè¿å±åç½/å¼çç¹ â 询é®WiFiè´¦å¯ â call 串å£è¿WiFi â SFTP
ââ 对è¯å¼å§ï¼æ 硬件ä¸ä¸æï¼ â [Step 0] 确认å¼åæ¿ + ç®æ ç³»ç»
约æ
- æªç¡®è®¤å¼åæ¿åå·åä¸ç»åºå ·ä½å½ä»¤
flash erase/rm -rf/ddçç ´åæ§æä½åå¿ é¡»ç¨æ·æç¡®ç¡®è®¤- æ¯æ¬¡ææ¯åçå¿ é¡»é宿¹ææ¡£é¾æ¥
- å·¥å
·åéè¿
fastmcp list卿åç°ï¼ä¸ç¡¬ç¼ç
éå½
详ç»å¹³å°éæ¥ï¼å·¥å
·é¾ã串å£å¼èãææ¡£é¾æ¥ï¼è§ references/platforms.md