mcpField
M
MCP Chat Desktop App

MCP Chat Desktop App

github.com/ai-ql桌面应用23957 周前更新

关于 MCP Chat Desktop App

MCP Chat Desktop App 是基于 Electron 构建的跨平台桌面聊天应用,用于连接多种 LLM 并测试 MCP 服务。代码力求简洁,适合学习 MCP 原理的开发者与研究人员。

主要功能

  1. 01支持 Linux、macOS 和 Windows
  2. 02兼容 OpenAI SDK 支持的 LLM 配置
  3. 03可管理多个客户端连接多个 MCP 服务
  4. 04UI 可提取用于 Web 端
  5. 05Apache-2.0 开源许可

适用场景

  1. 01快速对比不同 LLM 后端的表现
  2. 02测试多个 MCP 服务的工具调用
  3. 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 原理:

DeepWiki

使用方法

克隆或下载此仓库后:

  1. 请修改 src/main 中的 config.json 文件。
    确保 args 中指定的 command 和 path 有效。

  2. 请确保系统已安装 Node.js。
    你可以在终端运行 node -v 和 npm -v,查看各自的版本以进行验证。

  3. npm install

  4. 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 的内置终端。

演示

多模态支持

README 配图

推理和 Latex 支持

README 配图

MCP 工具可视化

README 配图

MCP 工具调用流程概览

README 配图

MCP 提示词模板

README 配图

动态大模型配置

README 配图

DevTool 故障排除

README 配图

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

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