mcphost
让 Claude/GPT/Gemini 通过 MCP 协议真正调用外部工具的 CLI 主机程序
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
让 Claude/GPT/Gemini 通过 MCP 协议真正调用外部工具的 CLI 主机程序
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
大多数 AI 助手能说会道,但一遇到真实任务就卡壳——无法读写文件、无法执行命令、无法连接外部服务。MCPHost(Model Context Protocol Host)正是为解决这一痛点而生:它是一个 CLI 主机程序,让 Claude、GPT-4、Gemini、Ollama 等大模型能够通过 MCP(Model Context Protocol)协议真正调用外部工具,完成实际工作。
2024 年 12 月,由独立开发者社区 mark3labs 创建,不到半年时间便积累了超过 1500 颗 GitHub 星标。项目基于 Go 语言开发,采用 MIT 开源协议。由于项目方已将其归档,推荐用户迁移至其继任者 Kit 继续使用。
MCPHost 实现了 MCP 规范中经典的三方架构:
MCP 协议本质上是 AI 应用与外部能力之间的「USB 接口」——有了统一协议,无需为每个 AI 模型单独适配各种工具,MCP Server 一次开发,处处可用。
代码通过 internal/models/ 和 internal/tools/ 模块实现了灵活的模型提供商注册机制。项目依赖中引入 charm.land/bubbletea/v2,这是 Go 生态中知名的 TUI 框架,负责构建交互式终端界面。Bubble Tea 的核心是一个基于**消息(Events)+ 更新(Update)+ 渲染(View)**的纯函数式模型,非常适合复杂交互状态的 CLI 应用。
通过 internal/tools/mcp.go 实现 MCP 协议的客户端能力:
connection_pool.go)buffered_logger.go)debug_logger.go)| 模式 | 说明 | 适用场景 |
|---|---|---|
| 交互模式(默认) | 实时对话,支持流式输出,终端 TUI | 日常开发调试 |
| 脚本模式 | 执行 .sh 脚本文件,AI 自动完成复杂多步任务 | 自动化流水线 |
| 非交互模式 | 单次命令调用,适合 CI/CD 集成 | 无人值守任务 |
internal/hooks/ 模块提供了强大的钩子扩展能力,开发者可以在 AI 响应的任意阶段注入自定义逻辑:
/sdk/mcphost.go 对外暴露了编程接口,开发者可以将 MCPHost 作为 Go 库集成到自己的应用中。
| 维度 | 评分 | 说明 |
|---|---|---|
| 代码结构 | ⭐⭐⭐⭐ | 模块化设计清晰,internal/ 目录职责分明 |
| 测试覆盖 | ⭐⭐⭐⭐ | 包含单元测试和集成测试(go test -race ./...) |
| 文档质量 | ⭐⭐⭐⭐⭐ | README 极其详尽(超 32000 字),覆盖所有使用场景 |
| 代码规范 | ⭐⭐⭐⭐ | .golangci.yml 配置规范检查,go vet ./... |
| 安全性 | ⭐⭐⭐⭐ | 工具调用需用户确认,支持 hooks 自定义验证逻辑 |
| 活跃度 | ⚠️ 已归档 | 2026 年 4 月后停止维护,迁移至 Kit |
安装(源码编译):
git clone https://github.com/mark3labs/mcphost.git
cd mcphost
go build -o output/mcphost
环境依赖:
MCPHost 是 MCP 协议生态中的重要客户端实现,代表了 AI 应用从「对话」向「行动」演进的趋势。继任者 Kit 在其基础上构建了更强大的可扩展架构。对于需要在终端环境中赋予 AI 实际执行能力的开发者而言,MCPHost 提供了完整的技术参考实现,其 MCP 协议实现细节仍具很高学习价值。