架构
MoMCP-TUI 采用模块化架构,职责分离清晰。
高层架构
MoMCP-TUI 分为四层。TUI 层基于 Textual 框架处理所有用户交互,包括聊天界面、弹窗对话框和命令面板。核心层包含与大模型 API 通信的 LLM 客户端、编排工具服务器的 MCP 管理器,以及配置管理器。MCP 层管理本地(stdio)和远程(HTTP)工具服务器的连接。工具层提供上下文压缩、取消机制、剪贴板访问和国际化等横切关注点。
请求流程
当你发送消息时,TUI 将其追加到对话历史,并将完整上下文及可用工具定义传递给 LLM 客户端。大模型实时流式返回思考过程和回复内容。如果模型判断需要调用工具,它会发出工具调用事件 — TUI 将请求路由到 MCP 管理器,由管理器在对应的服务器上执行工具,并将结果反馈给大模型。对于复杂的多步任务,这个循环最多可重复 12 次。
线程模型
MoMCP-TUI 使用多线程架构:
MCP 管理器在守护线程中运行自己的 asyncio 事件循环,使用 run_coroutine_threadsafe 桥接同步/异步边界。
关键设计决策
- 同步优先的 TUI: Textual 应用同步运行;LLM 调用在后台线程中进行
- 异步 MCP: MCP 服务器使用 asyncio 实现并发工具调用
- 基于 Token 的压缩: 当对话超过
max_context_tokens时自动压缩 - 白名单安全: 文件访问被限制在明确允许的路径内