chatmcp
全平台 MCP 协议 AI 客户端,支持工具链编排与多 LLM Provider 无缝切换
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
全平台 MCP 协议 AI 客户端,支持工具链编排与多 LLM Provider 无缝切换
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有遇到过这样的尴尬时刻:想同时用 Claude 写代码、DeepSeek 做中文问答、Ollama 跑本地模型——却不得不在四五个聊天窗口之间来回切换,聊天记录散落各处,找个历史对话要翻半天?ChatMCP 正是为解决这个痛点而生的开源项目。
Model Context Protocol(MCP)是 Anthropic 在 2024 年底开源的一种 AI 工具调用协议标准,目标是让 AI 模型能够标准化地调用外部工具和数据源。协议发布后,社区迅速涌现出大量 MCP Server 实现,但客户端支持却参差不齐——大多数用户只能通过命令行或代码集成来使用。
开发者 daodao97 在 2024 年 12 月创建了 ChatMCP 项目,旨在打造一个对普通用户友好的 MCP 客户端。项目采用 Flutter 框架开发,从一开始就走跨平台路线,支持 macOS、Windows、Linux、iOS、Android 和 Web 六端。这在 MCP 生态中是相当少见的技术决策——Flutter 让一套代码同时覆盖桌面和移动平台成为可能。
截至 2025 年中,ChatMCP 已获得 2200+ GitHub Stars,208 个 Fork,活跃 Issues 47 个,社区讨论热度持续攀升。
ChatMCP 的代码结构体现了清晰的工程分层思维:

图1:ChatMCP 项目 Logo
核心代码位于 lib/ 目录下,按照职责划分了多个模块:
| 模块 | 职责 |
|---|---|
mcp/ | MCP 协议客户端实现,支持 stdio/SSE/Streamable/InMemory 四种通信方式 |
llm/ | LLM 提供商适配层,支持 OpenAI/Claude/DeepSeek/Gemini/Ollama/Claude Code/Copilot/Foundry 共 8 种 |
dao/ | SQLite 数据持久化,聊天记录和消息存储 |
provider/ | Flutter Provider 状态管理 |
page/ | 页面视图(布局/设置) |
widgets/ | 自定义 UI 组件(Markdown 渲染/浏览器/图片等) |
services/ | 网络同步服务(局域网设备间聊天同步) |
图2:MCP 工作流

图3:MCP InMemory 服务器

ChatMCP 不仅仅是一个聊天窗口,它将 MCP 协议的能力完整融入到了用户交互中:
多模型自由切换:内置 8 种 LLM 提供商适配器,通过设置页面配置 API Key 和 Base URL 后即可切换。这意味着用户可以在同一个应用中同时和 GPT-4、Claude 3.5、DeepSeek V3 等模型对话,无需在浏览器多个标签页间跳转。
MCP 工具调用可视化:连接 MCP Server 后,Server 注册的工具会以可视化卡片形式展示在侧边栏,用户可以点击调用并查看结果。这比直接写 JSON 配置文件的方式直观得多。
图4:MCP 工具列表

富文本渲染:ChatMCP 的消息展示支持 Markdown、LaTeX 数学公式、Mermaid 图表、代码高亮,以及 HTML 预览(来自 AI 的富文本回复可以直接渲染)。这对于需要阅读 AI 生成的技术文档、研究报告的用户来说非常实用。
图5:Artifact 交互展示

图6:LaTeX 公式渲染

图7:Mermaid 图表渲染

Thinking 模式:展示 AI 的思考过程,让用户理解 AI 是如何推理的,而不是只看到最终答案。
图8:Thinking 模式

图片生成集成:直接调用 DALL-E 等图片生成模型,在聊天中展示 AI 生成的图片。
图9:图片生成

局域网数据同步:同一个局域网内的多台设备可以同步聊天记录,适合多设备办公的用户——桌面端打完的草稿,手机上接着聊。
图10:数据同步

ChatMCP 的 lib/mcp/ 模块实现了 MCP 协议的所有四种通信方式:
图11:MCP stdio 连接模式

图12:MCP SSE 连接模式

每种模式都有对应的客户端实现类(StdioClient、SSEClient、StreamableClient、InMemoryClient),通过 McpClient 接口统一抽象。
ChatMCP 提供了两种使用方式:
方式一:直接下载 Release 包(推荐普通用户)。GitHub Release 页面提供了 macOS (.dmg/.zip)、Windows (.zip/.msi)、Linux (AppImage/.deb) 以及 Android (APK) 的预编译包,下载即用。iOS 用户可通过 TestFlight 加入测试版,Web 用户直接访问 daodao97.github.io/chatmcp。
Linux 用户需要额外安装运行时依赖库(Ubuntu 22.04/24.04),官方 README 中提供了详细的 apt install 命令,包括 GTK3、EGL 图形库、SQLite 等。
方式二:源码编译(适合开发者)。需要安装 Flutter SDK >= 3.8.1 和对应平台的工具链(Android Studio / Xcode / Linux GTK dev packages),然后执行 flutter build 系列命令。Android 构建提供了 APK 拆分和 AAB 发布格式的完整脚本。
LLM 提供商配置界面

HTML 预览功能

ChatMCP 作为一款快速迭代的开源项目,也存在一些值得关注的局限:
平台工具链依赖:Flutter 桌面应用在 Linux 上需要 GTK3 环境,在 macOS 上需要 Xcode,编译门槛不低。对于没有 Flutter 开发经验的用户,源码编译仍然有一定挑战。
无 Docker 支持:项目没有提供 Dockerfile 或 docker-compose,这在 MCP Server 生态中是比较常见的部署方式。期望一键启动 ChatMCP + 多个 MCP Server 的用户需要自行编排。
数据安全需自行把控:应用使用 SQLite 本地存储,聊天记录默认存在本地。但如果是连接远程 MCP Server 或使用云端 LLM API,数据流向需要用户自行评估。
多语言支持但贡献门槛:项目已有英语、中文、土耳其语三种语言,但语言文件采用 ARB 格式,需要 Flutter intl 工具链知识,对社区贡献翻译有一定技术门槛。
ChatMCP 代表了 MCP 协议生态从「开发者玩具」向「用户产品」演进的趋势。随着 MCP 协议被更广泛地采用,类似 ChatMCP 这种桥接协议与终端用户的客户端工具将变得越来越重要。
从增长曲线看,2200+ Stars 且持续有活跃 Issues 的表现,说明项目已经度过了早期的「概念验证」阶段,正在进入功能完善和稳定性打磨期。值得关注的方向包括:与更多 MCP Server 的集成、Web 端的实时协作、以及更丰富的插件系统。
对于 AI 爱好者和开发者来说,ChatMCP 提供了一个同时管理多个 AI 模型和 MCP 工具的统一入口,是日常 AI 工作中值得收藏到工具箱里的实用客户端。
本文基于 ChatMCP v0.0.76 版本分析,项目持续活跃,建议关注 GitHub Releases 获取最新动态。