内容
# MCP 聊天桌面应用程序
## 跨平台接口用于大型语言模型
该桌面应用程序利用 MCP(模型上下文协议)与各种大型语言模型(LLMs)无缝连接和交互。基于 Electron 构建,该应用程序确保完全的跨平台兼容性,在不同操作系统上实现流畅运行。
该项目的主要目标是提供一个干净、极简的代码库,以简化对 MCP 核心原则的理解。此外,它还提供了一种快速有效的方法来测试多个服务器和 LLMs,使其成为开发人员和研究人员的理想工具。
## 新闻
该项目最初源自 Chat-UI 的修改版本,最初采用极简代码方法来实现 MCP 核心功能用于教育目的。
通过对 MCP 的迭代更新,我收到了社区反馈,倡导一种全新的架构——一种消除第三方 CDN 依赖并建立更清晰的模块化结构,以更好地支持衍生开发和调试工作流的架构。
这导致了 [工具单元用户界面](https://github.com/AI-QL/tuui) 的创建,这是一个为 AI 驱动的开发而优化的重构桌面应用程序。在原有基础上,TUUI 作为一种实用的 AI 辅助开发范式,如果您感兴趣,您也可以利用 AI 来为 TUUI 开发新功能。该平台采用严格的 linting 和格式化系统,以确保 AI 生成的代码符合编码标准。
> **📢 更新:2025 年 6 月**
> 当前项目重构工作已基本完成,预发布版本现已可用。请参阅以下文档了解详情:
> - [TUUI GitHub 仓库](https://github.com/AI-QL/tuui)
> - [TUUI 架构](https://deepwiki.com/AI-QL/tuui)
> - [TUUI 官方网站](https://www.tuui.com/)
## 功能
- 跨平台兼容性:支持 Linux、macOS 和 Windows。
- 灵活的 Apache-2.0 许可证:允许轻松修改和构建自己的桌面应用程序。
- 动态 LLM 配置:与所有 OpenAI SDK 支持的 LLMs 兼容,通过手动或预设配置启用多个后端快速测试。
- 多客户端管理:使用 MCP 配置文件配置和管理多个客户端以连接到多个服务器。
- UI 适应性:UI 可以直接提取用于 Web 使用,确保 Web 和桌面版本之间具有一致的生态系统和交互逻辑。
## 架构
采用与 MCP 文档一致的直接架构,以促进对 MCP 原则的清晰理解:
[DeepWiki](https://deepwiki.com/AI-QL/chat-mcp)
## 如何使用
克隆或下载此仓库后:
1. 请修改位于 [src/main](src/main) 的 `config.json` 文件。
确保 `args` 中指定的 `command` 和 `path` 有效。
2. 请确保您的系统上已安装 [Node.js](https://nodejs.org/)。
您可以通过在终端中运行 `node -v` 和 `npm -v` 来检查它们各自的版本。
3. `npm install`
4. `npm start`
## 配置
创建一个 `.json` 文件,并将以下内容粘贴到其中。该文件可以作为聊天 UI 的接口配置提供。
- `gtp-api.json`
```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"
]
}
}
```
您可以替换 'url' 如果您直接访问 OpenAI API。
或者,您也可以使用另一个支持函数调用的 API 端点:
- `qwen-api.json`
```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`
```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"
]
}
}
```
## 构建应用程序
您可以通过以下方式构建自己的桌面应用程序:
```bash
npm run build-app
```
该 CLI 帮助您构建和打包适用于您当前操作系统的应用程序,产物存储在 /artifacts 目录中。
对于 Debian/Ubuntu 用户遇到 RPM 构建问题,请尝试以下解决方案之一:
- 编辑 `package.json` 以跳过 RPM 构建步骤。或
- 使用 `sudo apt-get install rpm` 安装 `rpm` (您可能需要运行 `sudo apt update` 以确保您的软件包列表是最新的)
# 故障排除
## 错误:spawn npx ENOENT - [问题 40](https://github.com/modelcontextprotocol/servers/issues/40)
修改位于 [src/main](src/main) 的 `config.json`
在 Windows 上,npx 可能无法正常工作,请参考我的解决方法:[问题 101](https://github.com/modelcontextprotocol/typescript-sdk/issues/101)
- 或者,您可以在 `config.json` 中使用 `node`:
```json
{
"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 构建超时
使用 electron-builder 打包文件时,它会自动从 GitHub 下载几个大型发布包。如果网络连接不稳定,此过程可能会中断或超时。
在 Windows 上,您可能需要在尝试重试之前清除位于 `C:\Users\YOURUSERNAME\AppData\Local` 下的 `electron` 和 `electron-builder` 目录中的缓存。
由于潜在的终端权限问题,建议使用默认 shell 终端而不是 VSCode 的内置终端。
## 演示
### 多模态支持

### 推理和 LaTeX 支持

### MCP 工具可视化

### MCP 工具调用过程概览

### MCP 提示模板

### 动态 LLM 配置

### 开发工具故障排除
