Mira 主要作为 MCP Host 使用。
MCP 页面负责管理市场中的第三方 MCP Server、已安装服务,以及后续非核心内置 MCP 包。当前界面重点是市场浏览、安装状态、连接配置、能力发现与 Agent Access,不会在安装后自动把全部工具注入聊天。
MCP Server 是什么#
MCP Server 是一个通过 Model Context Protocol 对外提供能力的服务。
它可能提供:
- Tools:可以执行的动作;
- Resources:可以读取的资源;
- Prompts:服务端提供的提示模板。
MCP 不是模型 Provider。Provider 负责模型推理请求,MCP Server 负责把外部工具和资源通过统一协议交给 Host。
市场与已安装#
页面顶部可以在「市场」和「已安装」之间切换。
- 市场用于浏览可安装服务;
- 已安装用于管理当前设备上的 MCP Server;
- 搜索框可以按名称、描述、Endpoint 或能力 ID 筛选;
- 刷新用于重新获取当前状态;
- 使用指南用于解释安装和连接流程。
当前界面把市场浏览和 Agent 自动使用分开。发现一个服务,不代表它已经安装;安装完成,也不代表它已经连接或允许 Agent 调用。
一个服务的状态链#
可以把 MCP 的使用过程理解为:
发现
→ 安装
→ 启用
→ 配置
→ 连接
→ 接受免责声明
→ Discover Tools
→ 允许 Agent 使用
→ 进入公共可用工具面
→ 本轮 Tool Exposure
→ 具体调用审批其中任一步失败,都不应伪装成「可用」。
页面会显示连接状态、发现到的能力数量、协议版本和服务描述,帮助用户判断问题发生在哪一层。
配置与连接#
不同 MCP Server 可能需要不同配置:
- 本地命令与参数;
- 工作目录;
- 环境变量;
- 远程 Endpoint URL;
- Bearer Token 或自定义请求头;
- 超时时间;
- 其他服务专属参数。
配置保存后,还需要实际连接。连接成功说明 Host 能够与 Server 通信,但不代表所有 Tool 都已经发现、允许 Agent 使用或适合当前任务。
Discover#
「Discover」用于重新发现当前 Server 提供的 Tools、Resources 和 Prompts。
服务升级、配置变化或远端能力调整后,可以重新 Discover。页面会显示已发现的数量和名称,便于核对服务声明与实际能力是否一致。
当前进入 Agent Tool Runtime 的是已发现并成功投影的 Tool。投影后的稳定 ID 形式是:
mcp:<serverId>:tool:<toolName>这避免外部 Tool 与 Mira 内置 Tool 重名,也阻止 Provider 私有命令直接穿透到 Planner。
允许 Agent 使用#
「允许 Agent 使用」是单独的权限开关。
关闭时,MCP Server 仍然可以保持安装和连接状态,但它的能力不会进入 Agent 可用集合。
打开后也不是无条件暴露。External MCP Tool 要进入 Agent 公共能力面,还必须同时满足:
- Server 已启用并连接;
- Transport 配置有效;
- 免责声明已接受;
- Discover 已获得 Tool;
- canonical projected implementation 仍存在;
- 当前用户显式打开 Agent Access。
随后 Harness 才会把它与其他公共工具一起形成 Tool Exposure。
公共且可用工具 <= 20
→ 全部暴露
公共且可用工具 > 20
→ embedding / rerank
→ 暴露前 20排名只控制模型上下文,不代表已经批准执行。External MCP 的每次真实 Tool Invocation 仍需要审批。
这层分离很重要:
- 已安装回答「设备上有没有」;
- 已连接回答「当前能不能通信」;
- 已发现回答「服务声称提供什么」;
- 允许 Agent 使用回答「是否允许进入公共可用能力面」;
- Tool Exposure回答「模型本轮能否看见」;
- Policy / Approval回答「这一次具体调用是否允许真实执行」。
本地与远程 MCP#
Mira 可以面对两种常见服务。
本地进程#
通常通过命令、包名和环境变量启动,例如基于 Node.js、Python 或本地二进制的 MCP Server。
它依赖本机运行时、工作目录和依赖安装情况。配置本地命令意味着 Mira 会管理一个真实进程,不应把安装成功等同于运行时健康。
远程服务#
通常通过 Streamable HTTP Endpoint 连接。
它依赖网络、认证、服务可用性和远端协议兼容性。远程 MCP 获得的数据范围应由工具参数、Server 配置和用户授权共同控制。
会话恢复#
当已持久化的 MCP 会话失效时,Runtime 可以尝试一次重新初始化,再重试当前调用。恢复不是无限重连;第二次仍失败时,会返回结构化失败并停止继续尝试。
常见问题排查#
- 服务是否已安装并启用;
- 本地命令或远程 Endpoint 是否正确;
- 所需运行时和依赖是否存在;
- 环境变量和认证信息是否完整;
- 连接是否成功;
- 是否已接受免责声明;
- Discover 是否拿到 Tool;
- Agent Access 是否打开;
- 当前工具是否仍成功投影到 Registry;
- 本轮 Tool Exposure 是否包含它;
- Policy 或审批是否阻止了本次调用。
不要把「Agent 没有选择这个工具」直接判断为 MCP 连接失败。连接、Discover、公共可用性、模型暴露、Planner 选择和真实执行是不同层级。
进一步阅读: