零门槛为小智接入MCP,小智Pro焕新上线:MCP广场+自定义服务
1. 小智Pro接入MCP到底解决了什么问题小智Pro这次焕新上线核心变化是在设备端MCP之外新增了一条「接入点MCP」路径。如果你之前折腾过给小智接MCP服务大概经历过两种选择要么改设备端代码新增MCP tool要么走官方暴露的MCP接入点自己搭服务。前者要制作固件适合批量生产后者不用动固件定制化程度高但需要自己把服务接进去对没有编程基础的人来说门槛还是偏高。我自己第一次尝试走接入点方式时卡在最基础的环节服务地址填什么、绑定关系怎么建立、连接状态在哪里看。官方示例教程能跑通但每一步都要对照文档猜。小智Pro这次把「MCP广场」和「MCP绑定管理」两个界面做出来了本质上是把「选服务—绑设备—看状态」这条链路产品化了。你不需要写一行代码在平台上点四步就能给小智接上一个MCP服务。这篇文章面向想快速扩展小智能力的开发者重点交付三件事MCP广场里怎么选服务、自定义服务的接入点怎么配、接完之后怎么验证和排错。涉及到的平台入口是小智Pro接入点地址从小智控制台复制MCP服务本身可以来自广场公共库也可以是你自己创建的私有服务。先说清楚「接入点MCP」是什么。它是一级目录和原来的设备端MCP并列。设备端MCP是固件里写死的工具集接入点MCP是运行时通过WebSocket连到平台侧由平台侧的MCP管理器去调度具体的MCP服务进程。你的小智设备只需要知道一个接入点地址剩下的服务发现、进程管理、连接保活都由平台侧处理。能做什么举几个实际场景。你在MCP广场看到一个「天气查询」公共MCP服务点绑定选你的设备连接状态切成连接设备端就能调用这个服务。你想接自己写的私有MCP服务在「我的MCP服务」里创建填服务地址和协议类型同样绑定到设备。整个过程不需要重新烧录固件也不需要在小智设备上装任何东西。适合谁三类人。第一类是没有固件开发经验、但想给小智加功能的用户第二类是有自己的MCP Server、想快速挂到小智上验证的开发者第三类是批量管理多台设备、需要统一配置MCP服务的团队。如果你属于第一类重点看第3节的配置步骤如果你属于第二类重点看第2节的自定义服务创建和第4节的验证请求。有一个细节值得提前说平台侧对MCP服务进程做了共享处理。实测下来一个SSE类MCP服务进程占用大约61MB内存stdio类更高。如果每台设备都起一个独立进程资源消耗会很快上去。所以生产环境里同一个MCP服务在所有调用它的设备之间复用同一个进程。这个设计对用户是透明的但你在排查「为什么连接成功但调用没反应」时需要知道平台侧是按服务维度管理进程的不是按设备维度。2. TaoToken前置接入点配置前要拿到的三件套在讲具体配置之前先把「接入点MCP」依赖的基础信息说清楚。不管你接的是广场里的公共MCP服务还是自己创建的私有服务最终设备端要连的是一个接入点地址而平台侧要能访问到你的MCP服务。这里涉及三件套Base URL、Key、Model ID。如果你用的是TaoToken作为模型侧的统一入口这三件套的获取路径如下。Base URL 是https://taotoken.net/api注意这个地址不带任何查询参数直接作为API根地址使用。Key 在控制台的 API Keys 页面创建路径是https://taotoken.net/console/api-keys。Model ID 根据你要调用的模型填写比如claude-sonnet-4-20250514这类标识。这三个值在后面的配置片段里会反复出现建议先拿到手。为什么接入点MCP需要TaoToken因为很多MCP服务本身不直接提供模型能力它负责的是工具调用和上下文管理真正做推理的模型需要单独配置。TaoToken在这里的角色是统一模型入口你不需要为每个MCP服务单独配一套模型凭证用同一个Base URL和Key就能覆盖。对于小智Pro这种要挂多个MCP服务的场景统一入口能省掉大量重复配置。具体操作路径打开https://taotoken.net/console/api-keys创建一个新的API Key复制保存。然后确认你要用的Model ID可以在模型对话页面测试一下这个模型是否可用地址是https://taotoken.net/models。测试通过后再往下走避免配置完了发现模型侧不通。如果你打算长期跑编码类或Agent类任务可以看一下Coding Plan地址是https://taotoken.net/coding-plan。它和按量调用的区别在于更适合持续性的开发场景。接入文档在https://taotoken.net/doc里面有完整的API说明和示例。这里要提醒一个容易踩的坑Base URL 末尾不要加斜杠也不要拼/v1之类的路径直接写https://taotoken.net/api。很多401报错是因为地址拼错了而不是Key无效。另外Key要放在请求头里格式是Authorization: Bearer 你的Key注意Bearer后面有一个空格。拿到三件套之后回到小智Pro平台。MCP广场里的公共MCP服务大部分已经预置了模型配置你只需要绑定设备即可。但如果你创建自定义MCP服务就需要在服务配置里填入Base URL、Key和Model ID。这一步在第3节会给出完整的JSON片段。还有一个前置动作确认你的小智设备已经在小智控制台xiaozhi.me里注册并且能复制到该设备的接入点地址。这个地址是设备维度的每台设备不同。复制路径是登录小智控制台找到对应设备在设备详情里复制接入点地址。这个地址后面要填到小智Pro的MCP绑定管理页面里。3. 可复制配置MCP广场选取与自定义服务接入点这一节是全文的操作核心。我按「广场选取」和「自定义服务」两条路径分别给出可复制的配置片段。所有片段里的路径和字段名都按平台实际界面来你直接替换成自己的值即可。先看MCP广场选取。登录小智Pro平台后进入「接入点MCP」一级目录默认落在「MCP广场」。广场有两个标签页「公共MCP服务」和「我的MCP服务」。公共MCP服务是平台所有用户公开的服务每个服务以卡片展示包含服务名称、描述、标签。卡片上有三个操作图标眼睛是查看详情点赞是对公共服务的认可绑定是把服务关联到指定设备。选取公共服务的步骤找到目标服务卡片点眼睛确认服务描述和协议类型然后点绑定在弹出的设备列表里选你的小智设备。绑定成功后服务会出现在「MCP绑定管理」页面里。此时连接状态默认是断开需要手动切换成连接。如果你要创建自定义MCP服务切到「我的MCP服务」标签页点创建。平台支持三种主流MCP协议STDIO、SSE、StreamableHttp。选择协议后填入服务地址和模型配置。下面是一个SSE协议的自定义服务配置片段你可以直接复制修改{ name: my-custom-mcp, protocol: sse, endpoint: https://your-mcp-server.example.com/sse, model: { base_url: https://taotoken.net/api, api_key: sk-你的TaoTokenKey, model_id: claude-sonnet-4-20250514 }, timeout: 30000, retry: { enabled: true, max_attempts: 3, interval: 2000 } }如果你用的是STDIO协议配置结构不同需要指定启动命令和参数{ name: my-stdio-mcp, protocol: stdio, command: python, args: [-m, mcp_proxy, https://mcp.example.net/5x/sse], model: { base_url: https://taotoken.net/api, api_key: sk-你的TaoTokenKey, model_id: claude-sonnet-4-20250514 }, env: { PYTHONUNBUFFERED: 1 } }StreamableHttp协议的配置更接近普通HTTP服务{ name: my-http-mcp, protocol: streamable_http, endpoint: https://your-mcp-server.example.com/mcp, headers: { Authorization: Bearer sk-你的TaoTokenKey }, model: { base_url: https://taotoken.net/api, api_key: sk-你的TaoTokenKey, model_id: claude-sonnet-4-20250514 } }创建完自定义服务后回到「MCP绑定管理」页面。这个页面展示当前账户下所有设备你可以选择特定设备查看它的MCP绑定情况。绑定操作分两步第一步前往小智控制台xiaozhi.me复制当前设备的接入点地址第二步在小智Pro的绑定管理页面里把这个接入点地址填到对应设备的配置里。绑定成功后支持修改不用重新创建。连接状态控制也在设备卡片上。点击设备卡片上的连接状态可以切换「连接」和「断开」。连接成功后回到小智控制台应该能看到设备侧已经挂上了对应的MCP服务。这里有个细节绑定管理和连接状态是两个独立动作。绑定只是建立关联关系连接才是真正建立WebSocket通信。很多人绑定完发现没反应是因为忘了点连接。再强调一下三件套的填写位置。Base URL 固定是https://taotoken.net/apiKey 从https://taotoken.net/console/api-keys获取Model ID 按你实际使用的模型填。这三个值在自定义服务的model字段里。如果你用的是广场里的公共服务平台已经预置好了不需要你填。4. 验证请求与成功结果怎么确认MCP真的接上了配置完成之后怎么确认MCP服务真的生效了我分三个层面来验证平台侧连接状态、设备侧调用日志、实际功能触发。平台侧验证最简单。在「MCP绑定管理」页面找到你绑定的设备看连接状态是否显示为「已连接」。如果显示「连接中」超过10秒大概率是接入点地址填错了或者设备侧没有正确响应。如果显示「断开」检查你是否手动点了连接按钮。平台侧的连接状态是基于WebSocket心跳判断的心跳正常才会显示已连接。设备侧验证需要看小智控制台。登录 xiaozhi.me找到对应设备在设备详情里应该能看到MCP接入点的连接记录。连接成功后控制台会显示当前设备挂载的MCP服务列表。如果列表为空说明绑定关系没有同步到设备侧回到小智Pro检查绑定是否保存成功。实际功能触发是最直接的验证。以天气查询MCP服务为例对着小智说「今天天气怎么样」如果MCP接好了设备会调用天气服务并返回结果。如果没接好设备会走默认的本地回复或者报错。我实测下来第一次触发可能会有1到2秒的延迟因为平台侧要启动MCP服务进程。后续调用会复用同一个进程响应会快很多。如果你想在命令行层面验证MCP服务本身是否可用可以用curl直接请求TaoToken的API确认模型侧通路正常curl -X POST https://taotoken.net/api/v1/messages \ -H Authorization: Bearer sk-你的TaoTokenKey \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, max_tokens: 100, messages: [ {role: user, content: 回复ok} ] }如果返回里包含正常的文本内容说明Base URL、Key、Model ID三件套没问题。如果返回401检查Key是否复制完整如果返回404检查Base URL是否写成了https://taotoken.net/api而不是其他路径。对于SSE协议的MCP服务可以用curl测试SSE端点是否可达curl -N -H Accept: text/event-stream \ https://your-mcp-server.example.com/sse正常的话会持续输出event流。如果卡住不动说明服务端没有正确推送事件需要检查MCP服务本身的实现。还有一个验证点是进程复用。前面提到平台侧对MCP服务进程做了共享。你可以在小智Pro平台的服务详情里看到当前服务的进程状态和调用设备数。如果同一个服务被多台设备调用进程数应该保持为1。如果发现进程数随设备数增长说明共享进程没有生效需要检查服务配置里的共享开关。成功结果的表现设备端能正常调用MCP工具平台侧连接状态稳定服务进程数符合预期。我试过同时绑三个MCP服务到一台设备连接状态都正常切换服务时没有出现互相干扰。这里的关键是每个服务的接入点地址要独立配置不要混用。5. 本篇常见错排查401、local proxy failed、reading choices这一节按真实报错来。我把接入点MCP过程中最容易遇到的几个错误和对应动作列出来你对照着排查。第一个401 Unauthorized。这个报错出现在模型侧调用时说明TaoToken的Key无效或者没带上。检查三件事Key是否从https://taotoken.net/console/api-keys正确复制请求头是否是Authorization: Bearer sk-xxx格式Base URL是否是https://taotoken.net/api。如果Key没问题但还是401可能是Key被禁用或者额度用尽去控制台确认Key状态。第二个local proxy failed。这个报错通常出现在STDIO协议的MCP服务上意思是本地进程启动失败。检查command和args字段是否正确比如python -m mcp_proxy里的模块名是否拼对。如果命令本身没问题检查运行环境里是否装了对应依赖。STDIO服务是在平台侧启动的不是你本地机器所以依赖要在平台侧环境里存在。第三个reading choices 相关报错。这个一般出现在模型返回结构解析时说明模型返回的格式和MCP服务期望的不一致。检查Model ID是否填对有些模型返回的字段名不同。如果用的是TaoToken统一入口确认Model ID是平台支持的标识。另外检查MCP服务本身对返回格式的解析逻辑有些服务对choices字段做了硬编码。第四个连接状态一直显示「连接中」。这个不是报错但比报错更让人困惑。排查顺序先确认小智控制台里的接入点地址复制完整没有多余空格再确认设备侧在线离线设备无法建立WebSocket最后确认平台侧MCP管理器是否正常可以在服务详情里看管理器状态。第五个OAuth相关报错。如果你的MCP服务需要OAuth鉴权报错里会出现OAuth字样。检查服务配置里的鉴权字段是否填对token是否过期。有些MCP服务的OAuth流程需要回调地址确认回调地址在小智Pro平台的白名单里。第六个绑定成功但设备无响应。这个最常见。排查动作在「MCP绑定管理」页面确认连接状态是「已连接」而不是「已绑定」在小智控制台确认设备侧看到了MCP服务列表对着设备触发一次实际调用看平台侧是否有调用日志。如果日志为空说明设备侧没有把请求发到接入点检查设备的网络和接入点地址。第七个进程数异常增长。前面说过平台侧应该共享进程。如果你在服务详情里看到进程数随设备数增长检查服务配置里的共享模式是否开启。有些自定义服务默认是独立进程模式需要手动改成共享。这里给一个排查顺序建议先看平台侧连接状态再看设备侧服务列表最后看实际调用日志。从外到内避免一上来就查代码。大部分问题出在配置层不是代码层。6. 接入之后把MCP用起来的几个实际动作接上MCP只是第一步真正用起来还需要几个动作。这一节说几个我实际用下来觉得有用的点。第一个动作从公共MCP服务开始试。MCP广场里的公共服务已经预置好了模型配置你只需要绑定和连接。用公共服务跑通整个链路之后再创建自定义服务。这样能把「配置问题」和「服务实现问题」分开排查。如果一上来就接自定义服务出错了很难判断是平台配置问题还是你的MCP Server问题。第二个动作给自定义服务加超时和重试。MCP服务调用可能因为网络波动失败配置里的timeout和retry字段就是干这个的。我一般设timeout为30000毫秒retry最多3次间隔2000毫秒。这样偶发的网络抖动不会直接导致调用失败。第三个动作多设备场景下确认进程共享。如果你有多台小智设备给它们绑同一个MCP服务然后在服务详情里看进程数。正常应该是1个进程服务多台设备。如果不是检查服务配置。这个对资源消耗影响很大尤其是stdio类服务。第四个动作定期检查接入点地址。小智控制台里的接入点地址是设备维度的如果设备重新注册或者更换地址可能会变。绑定管理页面支持修改发现连接异常时先确认地址是否还有效。第五个动作用模型对话页面做模型侧回归。地址是https://taotoken.net/models。当你怀疑是模型侧问题时直接在这个页面测试同一个Model ID能快速定位是模型问题还是MCP服务问题。如果你要长期跑编码类或Agent类任务Coding Plan 比按量调用更合适地址是https://taotoken.net/coding-plan。接入文档在https://taotoken.net/doc里面有完整的API说明。API Key 管理在https://taotoken.net/console/api-keys。最后说一个实际经验MCP服务的质量差异很大。广场里的公共服务可以先用点赞数做参考点赞多的通常稳定性好一些。自定义服务建议先在本地用curl验证通了再挂到平台上避免在平台侧反复调试。接入点MCP的价值在于把设备侧的门槛降下来了但服务本身的质量还是取决于实现。选服务的时候多看一眼描述和协议类型能省掉不少后续排查时间。