06.2 MCP、LSP 与插件能力面
关注源码
src/services/mcp/*src/services/lsp/*src/services/plugins/*src/services/mcp/MCPConnectionManager.tsxsrc/services/mcp/useManageMCPConnections.ts
MCP 是第一类能力源
MCP 在这套系统里不是附属集成,而是直接参与:
- tools
- commands
- resources
- skill discovery
- permission / channel / elicitation
这使它在运行时地位上几乎与内建工具等价。
MCP 连接管理是“状态同步器”
useManageMCPConnections.ts 不只负责建立连接,还负责:
- 初始化客户端集合
- 拉取 tools / commands / resources
- 批量写回
AppState.mcp - 处理 reconnect / toggle enabled
- 监听 channel 通知、permission relay、elicitation
- 记录 plugin errors
它本质上是在把外部 server 状态持续同步进本地运行时。
MCPConnectionManager.tsx 的意义
它给 UI 层暴露:
- reconnectMcpServer
- toggleMcpServer
让 MCP 状态管理成为应用级 context,而不是零散按钮逻辑。
LSP 的位置
LSP 不是单独的工具系统,而是:
services/lsp/manager.ts维护服务端实例LSPDiagnosticRegistry管理诊断数据LSPTool把相关能力暴露给模型
这意味着 LSP 更像“辅助感知层”,并与 diagnostic UI、plugin recommendation、context suggestions 相连。
插件系统的作用
插件层主要负责:
- 安装与更新
- 命令注入
- MCP server 暴露
- settings / trust / marketplace 约束
插件不会绕开主系统,而是通过命令池、MCP 池和 settings/policy 体系接入。
设计上的关键点
1. MCP、插件、LSP 不是三套平行孤岛
插件可以带 MCP,MCP 能变成 skill/command/tool,LSP 又能反哺上下文和推荐。
2. 集成状态进入 AppState
这意味着外部系统不是“需要时现查”,而是被持续维护成前台可消费的状态。
3. 平台能力接入仍服从主运行时约束
即使是外部工具,也仍然要经过:
- tool pool 装配
- permissions
- UI 渲染
- transcript/message 语义