关于 MCP Chat Desktop App
MCP Chat Desktop App 是基于 Electron 构建的跨平台桌面聊天应用,用于连接多种 LLM 并测试 MCP 服务。代码力求简洁,适合学习 MCP 原理的开发者与研究人员。
主要功能
- 01支持 Linux、macOS 和 Windows
- 02兼容 OpenAI SDK 支持的 LLM 配置
- 03可管理多个客户端连接多个 MCP 服务
- 04UI 可提取用于 Web 端
- 05Apache-2.0 开源许可
适用场景
- 01快速对比不同 LLM 后端的表现
- 02测试多个 MCP 服务的工具调用
- 03学习 MCP 客户端的基本实现
MCP 相关
该应用作为 MCP 客户端,通过 MCP 配置文件管理并连接多个 MCP 服务,并在对话中调用其工具。
详细介绍
MCP 聊天桌面应用
面向大模型的跨平台界面
这款桌面应用使用 MCP(Model Context Protocol),可与各种大语言模型(LLM)无缝连接并交互。应用基于 Electron 构建,确保全面的跨平台兼容性,可在不同操作系统上流畅运行。
本项目的主要目标是提供简洁、极简的代码库,帮助用户理解 MCP 的核心原理。此外,它还提供了一种快速高效的方式来测试多个服务和大模型,是开发者和研究人员的理想工具。
新闻
本项目最初是 Chat-UI 的一个修改版本,起初采用极简的代码方式,为教学目的实现 MCP 核心功能。
在对 MCP 进行迭代更新的过程中,我收到了社区反馈,建议采用全新架构,消除对第三方 CDN 的依赖,并建立更清晰的模块结构,以更好地支持衍生开发和调试工作流。
由此诞生了 Tool Unitary User Interface,这是一个经过重构、针对 AI 驱动开发进行优化的桌面应用。基于原有基础,TUUI 提供了一种实用的 AI 辅助开发范式。如果你感兴趣,也可以利用 AI 为 TUUI 开发新功能。该平台采用严格的代码检查和格式化系统,确保 AI 生成的代码符合编码规范。
📢 更新:2025 年 6 月
当前项目的重构工作已基本完成,现已提供预发布版本。详情请参阅以下文档:
功能
-
跨平台兼容性:支持 Linux、macOS 和 Windows。
-
灵活的 Apache-2.0 许可证:可轻松修改并构建自己的桌面应用。
-
动态大模型配置:兼容所有受 OpenAI SDK 支持的大模型,可通过手动配置或预设配置快速测试多个后端。
-
多客户端管理:使用 MCP 配置多个客户端,并管理它们与多个服务的连接。
-
UI 适配性:可直接提取 UI 用于 Web,确保 Web 版和桌面版的生态与交互逻辑一致。
架构
采用与 MCP 文档一致的简洁架构,帮助清晰理解 MCP 原理:
使用方法
克隆或下载此仓库后:
-
请修改 src/main 中的
config.json文件。
确保args中指定的command和path有效。 -
请确保系统已安装 Node.js。
你可以在终端运行node -v和npm -v,查看各自的版本以进行验证。 -
npm install -
npm start
配置
创建一个 .json 文件并将以下内容粘贴到其中。然后可以将此文件作为 Chat UI 的接口配置提供。
-
gtp-api.json{ "chatbotStore": { "apiKey": "", "url": "https://api.aiql.com", "path": "/v1/chat/completions", "model": "gpt-4o-mini", "max_tokens_value": "", "mcp": true }, "defaultChoiceStore": { "model": [ "gpt-4o-mini", "gpt-4o", "gpt-4", "gpt-4-turbo" ] } }
如果您可以直接访问 OpenAI API,可以替换 'url'。
或者,您也可以使用另一个支持函数调用的 API 端点:
-
qwen-api.json{ "chatbotStore": { "apiKey": "", "url": "https://dashscope.aliyuncs.com/compatible-mode", "path": "/v1/chat/completions", "model": "qwen-turbo", "max_tokens_value": "", "mcp": true }, "defaultChoiceStore": { "model": [ "qwen-turbo", "qwen-plus", "qwen-max" ] } } -
deepinfra.json{ "chatbotStore": { "apiKey": "", "url": "https://api.deepinfra.com", "path": "/v1/openai/chat/completions", "model": "meta-llama/Meta-Llama-3.1-70B-Instruct", "max_tokens_value": "32000", "mcp": true }, "defaultChoiceStore": { "model": [ "meta-llama/Meta-Llama-3.1-70B-Instruct", "meta-llama/Meta-Llama-3.1-405B-Instruct", "meta-llama/Meta-Llama-3.1-8B-Instruct" ] } }
构建应用
您可以通过以下方式构建自己的桌面应用:
npm run build-app
此命令行工具帮助您为当前操作系统构建和打包应用,生成的文件存储在 /artifacts 目录中。
对于遇到 RPM 构建问题的 Debian/Ubuntu 用户,请尝试以下解决方案之一:
-
编辑
package.json以跳过 RPM 构建步骤。或 -
使用
sudo apt-get install rpm安装rpm(您可能需要运行sudo apt update以确保软件包列表是最新的)
故障排除
错误:spawn npx ENOENT - ISSUE 40
修改 src/main 中的 config.json
在 Windows 上,npx 可能无法工作,请参考我的解决方案:ISSUE 101
- 或者您可以在 config.json 中使用
node:{ "mcpServers": { "filesystem": { "command": "node", "args": [ "node_modules/@modelcontextprotocol/server-filesystem/dist/index.js", "D:/Github/mcp-test" ] } } }
请确保提供的路径有效,特别是如果您使用相对路径。强烈建议提供绝对路径以获得更好的清晰度和准确性。
默认情况下,我将安装 server-everything、server-filesystem 和 server-puppeteer 以用于测试目的。但是,您可以安装其他服务库或使用 npx 来利用其他服务库。
安装超时
通常,执行整个项目的 npm install 后,node_modules 目录中的文件总大小通常会超过 500MB。
如果安装过程在 300MB 以下时停滞,且进度条保持静止,很可能是由于后期安装(特别是 Electron)超时造成的。
这个问题通常是因为从 Electron 默认服务器的下载速度过慢,或在某些地区甚至无法访问。要解决此问题,你可以修改环境变量或全局变量 ELECTRON_MIRROR,切换到你所在地区可访问的 Electron 镜像站点。
Electron builder 超时
使用 electron-builder 打包文件时,它会自动从 GitHub 下载多个大型发布包。如果网络连接不稳定,此过程可能会中断或超时。
在 Windows 上,你可能需要清除位于 C:\Users\YOURUSERNAME\AppData\Local 中 electron 和 electron-builder 目录下的缓存,然后重试。
由于可能存在终端权限问题,建议使用默认的 shell 终端,而不是 VSCode 的内置终端。
演示
多模态支持

推理和 Latex 支持

MCP 工具可视化

MCP 工具调用流程概览

MCP 提示词模板

动态大模型配置

DevTool 故障排除

评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。