MCP 使用指南
概述
MCP(Model Context Protocol) 是 Anthropic 推出的开放标准协议,让 AI Agent 安全地与外部工具、数据源和工作流连接。 通过 MCP,AI Agent 不再只是给出建议——它可以直接执行操作。Claude Code、Cline、Continue、Roo Code 等主流 AI Agent 均可使用。
Ameba 提供两套 MCP 服务,分工明确,协同形成"查文档 → 改代码 → 编译 → 烧录 → 观察现象"的自动化迭代闭环:
文档查询 MCP(知识层) ——云端 MCP 服务器,让 AI Agent 通过 HTTP 查询 Ameba 官方文档,了解 API 用法和示例代码。
SDK 开发 MCP(执行层) ——本地 MCP 服务器,由 AI 客户端(Claude Code)在本机直接启动并通过标准输入/输出通信,无需联网或额外认证;可直接修改工程配置、编译、烧录并验证代码运行结果。
文档查询 MCP 与 AI 聊天机器人 共享知识源,但面向不同的使用场景:聊天机器人服务于开发者本人手动提问;文档查询 MCP 则服务于 AI Agent,让其在 SDK 实际开发过程中实时、自动化地查询文档,辅助代码决策——这是它的核心价值。
下图展示了开发板、PC、AI Agent、两套 MCP 服务与 Ameba SDK 之间的关系,以及典型开发工作流:
编辑代码:Agent 根据 SDK 具体代码以及文档 MCP 知识,在编辑器中修改 SDK 源码;
编译固件:Agent 调用
build_firmware工具,触发 cmake/ninja 编译,并自动同步烧录布局配置到project_info.json5;烧录固件:Agent 调用
flash_firmware_tool工具,通过AmebaFlash.py将固件烧入开发板;串口验证:Agent 调用
serial_expect_tool等工具,等待 boot 日志或执行交互命令,验证运行结果。
文档查询 MCP
Ameba AIoT 文档提供 MCP 服务器,与 AI 聊天机器人 共享知识源。AI Agent 安装 Ameba 文档查询 MCP 服务器后可以直接查询和检索 Ameba AIoT 官方文档内容。
获取 MCP 服务器地址
获取 MCP 服务器地址步骤如下:
打开 RealMCU AIOT 网页
页面右下角点击 AI 图标打开 RealMCU AI 聊天机器人
在弹出的对话框中找到 使用 MCP 下拉框
Claude Code 选择点击 添加到 Claude Code ,复制 CLI 命令
其他 AI Agent 如 Roo Code、Cline、Continue 等,点击 复制 MCP 链接 获取 MCP 服务器地址
备注
MCP 服务器地址:
https://ameba-aiot.mcp.kapa.ai
获取到 MCP 服务器地址后,按照下方对应 AI Agent 的 tab 完成接入。
安装与认证
通用步骤:1. 获取 MCP 服务地址(见上节);2. 配置 MCP 客户端;3. 完成认证(通常通过 GitHub OAuth);4. 开始使用。
步骤 1 :添加 MCP 服务
在终端中运行如下命令,为 Claude Code 添加 Ameba 文档查询 MCP 服务:
claude mcp add --transport http realmcu-ask-ai-docs https://ameba-aiot.mcp.kapa.ai
参数说明:
--transport http:使用 HTTP 传输协议realmcu-ask-ai-docs:MCP 服务器名称(可自定义)https://ameba-aiot.mcp.kapa.ai:MCP 服务地址
步骤 2 :完成认证
打开 Claude Code
在对话框中输入
/mcp命令,查看realmcu-ask-ai-docs认证状态:realmcu-ask-ai-docs · △ needs authentication
按回车键确认认证,按照 Claude 的提示完成认证流程
认证成功后,返回 Claude 界面继续对话
再次输入
/mcp命令查看认证状态realmcu-ask-ai-docs · ✔ connected
小技巧
查看已添加的 MCP 列表:
claude mcp list移除 MCP 服务:
claude mcp remove realmcu-ask-ai-docs
步骤 1 :添加 MCP 服务
通过 VS Code 设置界面添加:
进入 Cline -> MCP Servers -> Remote Servers 填写以下内容:
Name: realmcu-ask-ai-docs URL: https://ameba-aiot.mcp.kapa.ai Transport Type: Streamable HTTP
点击 Add Server 按钮,添加 Ameba 文档查询 MCP 服务
步骤 2 :完成认证
跳转到 Configure 界面,找到刚添加的 realmcu-ask-ai-docs MCP 服务,点击 Authenticate 按钮
按照提示完成认证流程
步骤 1 :添加 MCP 服务
在 Roo Code 的 MCP 配置文件中添加 Ameba 文档查询 MCP 服务:
打开 Roo Code Settings 界面
找到 MCP Servers 配置部分,编辑 JSON 配置文件
点击
Edit Global MCP打开全局 MCP 配置文件mcp_config.json点击
Edit Project MCP打开当前工作区 MCP 配置文件.roo/mcp.json
添加以下内容:
{
"mcpServers": {
"realmcu-ask-ai-docs": {
"type": "streamable-http",
"url": "https://ameba-aiot.mcp.kapa.ai",
"disabled": false,
"alwaysAllow": [],
"headers": {
"Authorization": "Bearer <your_personal_access_token>"
}
}
}
}
Roo Code 目前对 Remote MCP Server 的 OAuth 2.0 认证流程支持不完整,无法自动弹出第三方 OAuth(如 GitHub)认证页面。 推荐使用 MCP Inspector 完成认证,提取 Token 后填入 Roo Code 配置中,作为临时解决方案。
步骤 2 :完成认证
利用官方 MCP Inspector 工具完成 GitHub OAuth 登录,拿到 Access Token 后填入 Roo Code 配置。
安装并启动 MCP Inspector
npx @modelcontextprotocol/inspector在 Inspector 中配置连接
Transport Type: Streamable HTTP URL: https://ameba-aiot.mcp.kapa.ai
点击 Connect → 此时会正常弹出 GitHub OAuth 认证页面 → 完成授权
从浏览器开发者工具提取 Token
完成 GitHub 授权后,打开浏览器 F12 → Network 面板,找到发往 ameba-aiot.mcp.kapa.ai 的请求,查看请求头: Authorization: Bearer eyJhbGxxxxxx...,复制该 Token 值。
将 Token 填入 Roo Code 配置
{ "mcpServers": { "realmcu-ask-ai-docs": { "type": "streamable-http", "url": "https://ameba-aiot.mcp.kapa.ai", "disabled": false, "alwaysAllow": [], "headers": { "Authorization": "Bearer eyJhbGxxxxxx..." } } } }
realmcu-ask-ai-docs MCP 服务即可在 Roo Code 中使用。
步骤 1 :添加 MCP 服务
通过 VS Code 设置界面添加:
进入 Continue -> Open Settings -> Tools, 点击 MCP Servers 的 + 按钮
在打开的 new-mcp-server.yaml 中替换以下内容添加 Ameba 文档查询 MCP 服务:
name: My Continue Config version: 0.0.1 schema: v1 mcpServers: - name: realmcu-ask-ai-docs type: streamable-http url: https://ameba-aiot.mcp.kapa.ai requestOptions: headers: Authorization: "Bearer <your_personal_access_token>"
推荐使用 MCP Inspector 完成认证,提取 Token 后填入 Continue 配置中。
步骤 2 :完成认证
利用官方 MCP Inspector 工具完成 GitHub OAuth 登录,拿到 Access Token 后填入 Continue 配置。
前面获取 Token 的步骤同 Roo Code 配置认证 中的步骤 1-3
将 Token 填入 Continue 配置
name: My Continue Config version: 0.0.1 schema: v1 mcpServers: - name: realmcu-ask-ai-docs type: streamable-http url: https://ameba-aiot.mcp.kapa.ai requestOptions: headers: Authorization: "Bearer eyJhbGxxxxxx..."
realmcu-ask-ai-docs MCP 服务即可在 Continue 中使用。
查询示例
以 Claude Code 为例,以下是实际查询 Ameba 文档的示例:
示例 1 :查询 OTA 压缩功能概述
示例 2 :查询 GPIO 使用方法
MCP 功能列表
文档查询 MCP 服务器基于 HTTP 协议,向 AI Agent 提供以下工具:
工具 |
描述 |
|---|---|
search_realtek_knowledge_sources(query) |
对 Realtek 的文档及其他知识库执行语义检索,返回与查询最相关的文本片段和来源链接,为 AI Agent 提供官方参考资料。 |
常见问题排查
现象 / 问题 |
解决方法 |
|---|---|
MCP 服务连接失败 |
确认网络可访问 |
认证后能持续使用多久 |
认证有效期取决于 Token 类型,通常长期有效。如需重新认证,告诉 AI Agent "重新进行 MCP 认证" |
能否同时配置多个 MCP 服务 |
可以。在同一配置文件中添加多个 MCP 服务器条目,使用不同的 server 名称即可 |
AI Agent 没有主动调用 MCP 服务 |
当前对话上下文未触发调用条件。明确告诉 AI 使用 MCP 查询,例如 "请通过 realmcu-ask-ai-docs MCP 服务查询 Ameba 的 OTA 功能" |
SDK 开发 MCP
SDK 开发 MCP 在本机将 MCP server 作为子进程启动,通过标准输入/输出与 AI 客户端直接交互,无需网络连接或额外认证。AI 可以直接修改工程配置,以及编译、烧录、读写串口,并根据返回结果继续决策,实现自动化闭环开发。
该 MCP 针对嵌入式开发场景做了深度优化:工具组合、参数设计、返回值的结构等,均以 Agent 易用为第一优先级。 编译、烧录日志专门做了精简处理,比直接调用 CLI 命令节约大量上下文,且保留关键错误信息和丰富提示,帮助 Agent 准确判断下一步动作。
软件环境与安装注册
步骤一:初始化环境与安装依赖
将 <SDK_ROOT> 替换为 SDK 的实际绝对路径(如 /home/user/ameba-sdk),在 SDK 根目录执行以初始化 Python 虚拟环境与工具链,并完成首次编译:
cd <SDK_ROOT>
source env.sh
ameba.py build
将 <SDK_ROOT> 替换为 SDK 的实际绝对路径(如 C:\Users\user\ameba-sdk),在 SDK 根目录执行以初始化 Python 虚拟环境与工具链,并完成首次编译:
cd <SDK_ROOT>
env.bat
ameba.py build
步骤二:注册 MCP
将 SDK 开发 MCP 注册到 AI 客户端。配置作用于当前 SDK 工作区,不同 SDK checkout 互不干扰。
在 SDK 根目录执行注册命令(配置写入 ~/.claude.json 或 %APPDATA%\Claude\claude.json 的 workspace 层级):
# Linux / macOS / WSL2
claude mcp add ameba-dev -- <SDK_ROOT>/tools/ameba/ameba_dev_mcp/launcher.sh
# Windows
claude mcp add ameba-dev -- <SDK_ROOT>\tools\ameba\ameba_dev_mcp\launcher.bat
验证:
claude mcp list
# 应出现:ameba-dev: ✓ Connected
卸载:
claude mcp remove ameba-dev
Trae 暂未提供单条 CLI 注册命令,通过项目级配置文件 .trae/mcp.json 添加。在 SDK 根目录创建该文件:
{
"mcpServers": {
"ameba-dev": {
"command": "<SDK_ROOT>/tools/ameba/ameba_dev_mcp/launcher.sh",
"args": [],
"env": {}
}
}
}
Windows 平台将 command 改为 <SDK_ROOT>\\tools\\ameba\\ameba_dev_mcp\\launcher.bat (JSON 中反斜杠需转义为 \\ )。
启用项目级 MCP:进入 Trae 设置 → MCP ,打开 启用项目级 MCP 开关。Trae 将自动从 .trae/mcp.json 加载 ameba-dev ,在 MCP 列表中可见。
也可通过设置中心手动添加:MCP → 添加 → 手动添加 ,将上述 JSON 粘贴至弹窗。
卸载:从 .trae/mcp.json 中删除 ameba-dev 条目,或在 MCP 列表中点击删除。
Cline 暂未提供单条 CLI 注册命令,可通过交互式向导或直接编辑 JSON 配置文件添加。
方式一:交互式向导
cline mcp
# 选择 Add server,按提示填写:
# server name : ameba-dev
# transport : stdio
# command : <SDK_ROOT>/tools/ameba/ameba_dev_mcp/launcher.sh
# (Windows: <SDK_ROOT>\tools\ameba\ameba_dev_mcp\launcher.bat)
方式二:直接编辑 JSON
在 Cline 面板点击 MCP Servers 图标 → Configure → Configure MCP Servers ,在打开的 JSON 中添加:
{
"mcpServers": {
"ameba-dev": {
"command": "<SDK_ROOT>/tools/ameba/ameba_dev_mcp/launcher.sh",
"args": [],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}
Windows 平台将 command 改为 <SDK_ROOT>\\tools\\ameba\\ameba_dev_mcp\\launcher.bat (JSON 中反斜杠需转义为 \\ )。
验证:在 Cline 面板的 MCP Servers 列表中确认 ameba-dev 显示为已连接状态。
卸载:执行 cline mcp 选择 Delete server ,或从 JSON 配置中删除 ameba-dev 条目。
备注
MCP server 依赖 .venv 存在才能启动。如果在注册 MCP 时 .venv 尚未建立,AI 客户端会显示连接失败。完成步骤一后重启 AI 客户端即可自动连上。
配置开发板
首次使用前,在 Claude Code 对话框中执行:
/ameba-setup-boards
AI 会引导填写开发板型号、串口端口等信息,并自动完成只读环境自检,全程无需手动编辑 JSON 文件。完成后在 SDK 根目录生成两个配置文件:
文件 |
说明 |
|---|---|
|
板子配置:alias → SoC 型号 + 串口端口 + 连接方式(本地/远端) |
|
烧录布局:各 SoC 的固件文件与地址表,首次 |
之后若需增减开发板或更换端口,重新执行 /ameba-setup-boards 或直接编辑 board_info.json5 即可。
如需手工指定烧录的 .bin 文件与 Flash 地址,参考 附录:project_info.json5 手动模式 。
典型 Agent 开发流程
在 Claude Code 中告诉 AI 你的开发目标,AI 会依次调用 build_firmware → flash_firmware_tool → serial_connect_tool → serial_expect_tool → serial_disconnect_tool 完成一轮验证:
# 在 Claude Code 中告诉 AI:
帮我修改 main 函数的打印日志,加入工程版本号。编译烧录 RTL8720E_COM20,等开发板 boot 完成后把 boot log 给我看
AI 串行调用示例:
build_firmware(alias="RTL8720E_COM20")
flash_firmware_tool(alias="RTL8720E_COM20")
serial_connect_tool(alias="RTL8720E_COM20")
serial_expect_tool(alias="RTL8720E_COM20",
patterns=["KM4 START SCHEDULER", "Crash Dump"],
timeout=20.0)
serial_disconnect_tool(alias="RTL8720E_COM20")
MCP 功能列表
SDK 开发 MCP 向 AI Agent 提供三类功能:
工具(Tools) 是 AI 可直接调用的操作(如编译、烧录、串口读写);
提示词(Prompts) 是预置的引导流程,Agent 据此完成多步交互任务;
资源(Resources) 是 AI 可读取的只读数据(如设备信息、配置文件)。
工具(Tools)
工具 |
说明 |
|---|---|
|
切换当前编译目标 SoC |
|
编译当前 SoC 固件;成功后自动同步 |
|
按 board/project 配置烧录固件到开发板 |
|
列出本机或指定开发板的可用串口 |
|
扫描远端 AmebaRemoteService 上的可用串口(无需 |
|
写入或合并 |
|
只读环境自检:验证 JSON 配置、串口可见性及远端 TCP 连通性 |
|
读取 Kconfig 符号当前值 |
|
写入 Kconfig 符号值并重新生成头文件 |
|
按名称或提示文本搜索 Kconfig 符号(支持正则) |
|
打开串口,默认复位开发板并清空缓冲区 |
|
关闭串口连接,释放端口 |
|
发送命令并等待响应(含清缓冲 + 写入 + 模式匹配) |
|
阻塞等待指定关键字匹配、空闲或超时 |
|
非阻塞快照当前缓冲区内容 |
提示词(Prompts)
提示词 |
说明 |
|---|---|
|
引导完成开发板配置初始化,一次交互生成 |
资源(Resources)
资源 URI |
说明 |
|---|---|
|
列出所有支持的设备 profile 及内存类型 |
|
获取指定设备的 Flash 布局、RAM 地址、固件列表等详细信息 |
|
获取指定设备与内存类型(nor/nand)的详细 profile |
|
列出 |
|
获取单块开发板的已解析配置(密码已脱敏) |
|
完整 |
|
完整 |
|
硬件故障排查参考(驱动、自动下载电路、常见错误码) |
常见问题排查
在 Claude Code 中按 Ctrl+O 可展开 MCP 工具调用的详细参数与返回值,查看具体错误码。提醒:
远端场景:开发板接在 Windows PC 上时,需运行
AmebaRemoteService.exe做串口 TCP 转发(端口 58916)。自动下载电路:开发板需要支持硬件自动下载电路,否则自动下载和自动 reset 将不能工作。(自动下载电路要求详见
<SDK_ROOT>/tools/ameba/ameba_dev_mcp/hardware_debug.md)
现象 / 错误码 |
解决方法 |
|---|---|
|
重新执行 |
|
确保开发板已插上 |
|
在远端 Windows PC 启动 |
|
满足 |
|
错误提示中已列出可用 alias,选择正确的开发板别名重试 |
ameba-dev 在 |
确认已执行 |
server 启动失败(import 错误) |
手动运行 |
附录:project_info.json5 手动模式
project_info.json5 中每个 SoC 条目支持两种模式:
模式 |
images 由谁管理 |
|
|---|---|---|
|
MCP 自动写入 |
会 (每次编译成功后自动更新) |
|
用户手工填写 |
不会 (MCP 永不修改此条目) |
手动模式适合以下场景:
需要固定烧录指定地址的
.bin,不让编译结果覆盖配置;烧录与编译分离(例如烧录预编译好的 release bin);
需要自定义哪些 image 参与烧录(增删条目)。
配置方法
将 flash_layout_setting_mode 改为 "manual" ,并手工填写 build_dir 和 images[] :
"RTL8721F": {
"flash_layout_setting_mode": "manual",
"build_dir": "/home/me/sdk/build_RTL8721F",
"memory_type": "nor",
"images": [
{
"path": "/home/me/sdk/build_RTL8721F/boot.bin",
"start_addr": "0x08000000",
"end_addr": "0x0803FFFF"
},
{
"path": "/home/me/sdk/build_RTL8721F/app.bin",
"start_addr": "0x08040000"
/* end_addr 可省略,省略时按实际文件大小推算,用于区段重叠校验 */
},
{
/* optional=true:文件不存在时只警告,不阻断烧录 */
"path": "/home/me/sdk/build_RTL8721F/vfs.bin",
"start_addr": "0x083C0000",
"optional": true
}
]
}
字段说明:
字段 |
必填 |
说明 |
|---|---|---|
|
是 |
固定为 |
|
是 |
绝对路径,指向 |
|
否 |
|
|
是 |
|
|
是 |
Flash 起始地址,格式 |
|
否 |
结束地址(含);省略时按文件大小推算,仅用于区段重叠校验 |
|
否 |
|
从 auto 迁移到 manual
找到当前
project_info.json5中该 SoC 的auto条目,将generated by build注释块内的 images 数据复制出来;将
flash_layout_setting_mode改为"manual";删除
/* === generated by build, do not edit === */注释;按需调整
images[]内容。
此后 build_firmware 编译成功也不会覆盖此条目,flash 地址由你全权掌控。
注意事项
所有 path 必须是绝对路径 ,相对路径会被校验拒绝;
images[]至少填一项,否则报MANUAL_IMAGES_EMPTY;烧录前 MCP 会做区段重叠校验 (当
end_addr已知时);手动模式下 MCP 不会 重新解析 SDK flash layout,用户负责保证地址与 SDK 一致。