此桌面应用程序利用MCP(模型上下文协议)无缝连接并交互各种大型语言模型(LLMs)。基于Electron构建的应用程序确保了全平台兼容性,使其在不同操作系统上都能顺畅运行。
该项目的主要目标是提供一个简洁、极简主义的代码库,简化对MCP核心原则的理解。此外,它还提供了一种快速高效的方式来测试多个服务器和LLMs,使其成为开发者和研究人员的理想工具。
该项目最初源于Chat-UI的一个修改版本,最初采用极简代码方法来实现教育目的的核心MCP功能。
通过MCP的迭代更新,我收到了社区反馈,建议采用全新的架构——该架构消除了第三方CDN依赖,并建立了更清晰的模块化结构,以更好地支持衍生开发和调试工作流程。
这导致了单一工具用户界面的创建,这是一个经过重新设计的桌面应用程序,优化了AI驱动的开发。基于原始基础,TUUI作为实用的AI辅助开发范式,如果你感兴趣,也可以利用AI为TUUI开发新功能。该平台采用严格的代码检查和格式系统,确保AI生成的代码符合编码标准。
📢 更新:2025年6月
当前项目的重构工作已基本完成,现在可以使用预发布版本。详情请参阅以下文档:
跨平台兼容性:支持Linux、macOS和Windows。
灵活的Apache-2.0许可证:允许轻松修改并构建自己的桌面应用程序。
动态LLM配置:与所有OpenAI SDK支持的LLMs兼容,通过手动或预设配置快速测试多个后端。
多客户端管理:配置和管理多个客户端,使用MCP配置连接到多个服务器。
UI适应性:UI可以直接提取用于网络使用,确保网络版和桌面版之间的一致生态系统和交互逻辑。
采用了与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
此CLI帮助您构建并打包当前操作系统的应用程序,生成的文件存储在/artifacts目录下。
对于遇到RPM构建问题的Debian/Ubuntu用户,尝试以下解决方案之一:
编辑package.json以跳过RPM构建步骤。或者
使用sudo apt-get install rpm安装rpm(您可能需要运行sudo apt update以确保您的软件包列表是最新的)
修改src/main中的config.json
在Windows上,npx可能无法正常工作,请参考我的解决办法:问题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打包文件时,它会自动从GitHub下载几个大型发行包。如果网络连接不稳定,这个过程可能会中断或超时。
在Windows上,您可能需要清除位于C:\Users\YOURUSERNAME\AppData\Local下的electron和electron-builder目录中的缓存,然后再尝试重试。
由于潜在的终端权限问题,建议使用默认shell终端而不是VSCode内置终端。