TUUI - Tool Unitary User Interface
Un cliente MCP de escritorio para integración de herramientas y orquestación de APIs LLM de múltiples proveedores.
Documentación
TUUI - Parque de Juegos de IA Local con MCP
TUUI es un cliente MCP de escritorio diseñado como una integración de utilidad unitaria de herramientas, acelerando la adopción de IA a través del Protocolo de Contexto de Modelo (MCP) y permitiendo la orquestación de API de LLM de múltiples proveedores.
Zero accounts Full control Open source Download and Run
📜 Introducción
Este repositorio es esencialmente una aplicación de escritorio de chat LLM basada en MCP. También representa un experimento audaz en crear un proyecto completo usando IA. Muchos componentes dentro del proyecto han sido directamente convertidos o generados a partir del proyecto prototipo mediante IA.
Dadas las consideraciones sobre la calidad y seguridad del contenido generado por IA, este proyecto emplea verificaciones estrictas de sintaxis y convenciones de nomenclatura. Por lo tanto, para cualquier desarrollo adicional, asegúrese de utilizar las herramientas de linting que he configurado para verificar y corregir automáticamente los problemas de sintaxis.
✨ Características Destacadas
- ✨ Acelera la integración de herramientas de IA mediante MCP
- ✨ Orquesta APIs de LLM de múltiples proveedores mediante configuración dinámica
- ✨ Soporte para pruebas automatizadas de aplicaciones
- ✨ Soporte para TypeScript
- ✨ Soporte multilingüe
- ✨ Gestor de diseño básico
- ✨ Gestión de estado global mediante el store de Pinia
- ✨ Soporte rápido a través de la comunidad de GitHub y la documentación oficial
🔥 Características de MCP
| Estado | Característica | Categoría | Nota |
|---|---|---|---|
| ✅ | Tools | Servidor | |
| ✅ | Prompts | Servidor | |
| ✅ | Resources | Servidor | |
| 🔲 | Roots | Cliente | Esto generalmente solo se usa para el IDE de Vibe Coding y normalmente se puede configurar a través de variables de entorno del servidor. |
| ✅ | Sampling | Cliente | |
| ✅ | Elicitation | Cliente | |
| ✅ | Discovery | Registro | Proporciona descubrimiento de servidores MCP en tiempo real en el registro MCP |
| ✅ | MCPB | Extensión | MCP Bundles (.mcpb) es el nuevo nombre de lo que anteriormente se conocía como Desktop Extensions (.dxt) |
🚀 Primeros Pasos
Puede comenzar rápidamente con el proyecto a través de una variedad de opciones adaptadas a su rol y necesidades:
-
Para
exploreel proyecto, visite la página wiki: TUUI.com -
Para
downloady usar la aplicación directamente, vaya a la página de versiones: Releases -
Para la configuración de
developer, consulte la guía de instalación: Getting Started (English) | 快速入门 (中文) -
Para
ask the AIdirectamente sobre el proyecto, visite: TUUI@DeepWiki
⚙️ Requisitos Principales
Para usar las características relacionadas con MCP, asegúrese de que se cumplan los siguientes requisitos previos en su entorno:
-
Configure un backend de LLM (por ejemplo,
ChatGPT,Claude,Qweno autoalojado) que admita llamadas a herramientas/funciones. -
Para servidores basados en NPX/NODE: Instale
Node.jspara ejecutar herramientas JavaScript/TypeScript. -
Para servidores basados en UV/UVX: Instale
Pythony la bibliotecaUV. -
Para servidores basados en Docker: Instale
DockerHub. -
Para sistemas macOS/Linux: Modifique la configuración predeterminada de MCP (por ejemplo, ajuste las rutas de CLI o los permisos).
Consulte la documentación de MCP Server Issue para obtener orientación
Para obtener orientación sobre la configuración del LLM, consulte la plantilla (es decir: Qwen):
{
"name": "Qwen",
"apiKey": "",
"url": "https://dashscope.aliyuncs.com/compatible-mode",
"path": "/v1/chat/completions",
"model": "qwen-turbo",
"modelList": ["qwen-turbo", "qwen-plus", "qwen-max"],
"maxTokensValue": "",
"mcp": true
}
La configuración acepta un objeto JSON (para un solo chatbot) o una matriz JSON (para múltiples chatbots):
[
{
"name": "Openrouter && Proxy",
"apiKey": "",
"url": "https://api3.aiql.com",
"urlList": ["https://api3.aiql.com", "https://openrouter.ai/api"],
"path": "/v1/chat/completions",
"model": "openai/gpt-4.1-mini",
"modelList": [
"openai/gpt-4.1-mini",
"openai/gpt-4.1",
"anthropic/claude-sonnet-4",
"google/gemini-2.5-pro-preview"
],
"maxTokensValue": "",
"mcp": true
},
{
"name": "DeepInfra",
"apiKey": "",
"url": "https://api.deepinfra.com",
"path": "/v1/openai/chat/completions",
"model": "Qwen/Qwen3-32B",
"modelList": [
"Qwen/Qwen3-32B",
"Qwen/Qwen3-235B-A22B",
"meta-llama/Meta-Llama-3.1-70B-Instruct"
],
"mcp": true
}
]
📕 Configuración Adicional
| Configuración | Descripción | Ubicación | Nota |
|---|---|---|---|
| LLM Endpoints | Configuración predeterminada de chatbots LLM | llm.json | Los tipos de configuración completos se pueden encontrar en llm.d.ts |
| MCP Servers | Configuraciones predeterminadas de servidores MCP | mcp.json | Para la sintaxis de configuración, consulte MCP Servers |
| Startup Screen | Noticias predeterminadas en la pantalla de inicio | startup.json | |
| Popup Screen | Prompts predeterminados en la pantalla de inicio | popup.json |
Para el paquete descomponible, también puede modificar la configuración predeterminada de la versión compilada:
Por ejemplo, src/main/assets/config/llm.json se ubicará en resources/assets/config/llm.json
Una vez que modifique o importe las configuraciones, se almacenarán en su localStorage de forma predeterminada.
Alternativamente, puede borrar todas las configuraciones desde el Tray Menu seleccionando Clear Storage.
🌐 Servidor MCP remoto
Puede utilizar el mcp-remote recomendado por Cloudflare para implementar el conjunto completo de funcionalidades del servidor MCP remoto (incluida la autenticación). Por ejemplo, simplemente agregue lo siguiente a su archivo mcp.json:
{
"mcpServers": {
"cloudflare": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://YOURDOMAIN.com/sse"]
}
}
}
En este ejemplo, he proporcionado un servidor remoto de prueba: https://YOURDOMAIN.com en Cloudflare. Este servidor siempre aprobará sus solicitudes de autenticación.
Si encuentra algún problema (intente mantener la redirección automática de OAuth para evitar retrasos en la devolución de llamada que podrían causar fallos), como el error común HTTP 400. Puede resolverlos borrando la caché de su navegador en la página de autenticación y luego intentando la verificación nuevamente:

🚸 Problema del Servidor MCP
General
Al iniciar el servidor MCP, si encuentra algún problema, primero asegúrese de que el comando correspondiente pueda ejecutarse en su sistema actual — por ejemplo, uv/uvx, npx, etc.
Errores de Spawn ENOENT
Al iniciar el servidor MCP, si encuentra errores de spawn como ENOENT, intente ejecutar el servidor MCP correspondiente localmente e invocarlo usando una ruta absoluta.
Si el comando funciona pero la inicialización de MCP aún devuelve errores de spawn, esto puede ser un problema conocido:
-
Windows: El SDK de MCP incluye una solución específica para sistemas
Windows, como se documenta en ISSUE 101.Detalles: ISSUE 40 - MCP servers fail to connect with npx on Windows (corregido)
-
macOS: El problema sigue sin resolverse en otras plataformas, específicamente
macOS. Aunque hay varias soluciones disponibles, este ticket consolida las más efectivas y destaca el método más simple: How to configure MCP on macOS.Detalles: ISSUE 64 - MCP Servers Don't Work with NVM (aún abierto)
Tiempo de Espera de Conexión MCP
Si la inicialización tarda demasiado y activa la protección de tiempo de espera de 90 segundos, puede ser porque las bibliotecas de tiempo de ejecución uv/uvx/npx se están instalando o actualizando por primera vez.
Cuando su conexión al repositorio respectivo de pip o npm es lenta, la instalación puede tardar mucho tiempo.
En tales casos, primero complete la instalación manualmente con pip o npm en el directorio correspondiente, y luego inicie el servidor MCP nuevamente.
🤝 Contribuciones
Damos la bienvenida a cualquier tipo de contribución a este proyecto, incluidas mejoras de características, mejoras de interfaz de usuario, actualizaciones de documentación, finalización de casos de prueba y correcciones de sintaxis. Creo que un desarrollador real puede escribir mejor código que la IA, así que si tiene inquietudes sobre ciertas partes de la implementación del código, no dude en compartir sus sugerencias o enviar una solicitud de extracción.
Revise nuestro Código de Conducta. Está en vigor en todo momento. Esperamos que sea respetado por todos los que contribuyen a este proyecto.
Para más información, consulte las Pautas de Contribución
🙋 Abrir un Problema
Antes de crear un problema, verifique si está utilizando la versión más reciente del proyecto. Si no está actualizado, vea si la actualización resuelve su problema primero.
🔒️ Reportar Problemas de Seguridad
Revise nuestra Política de Seguridad. No publique un problema público para vulnerabilidades de seguridad.
🎉 Demostración
Visualización de primitivas MCP

Soporte de paquetes MCP (.mcpb)

Trazado de llamadas a herramientas MCP

Agente con selección de herramientas específica

Configuración de API LLM

Elicitación MCP

Registro MCP

Herramientas de desarrollo nativas

🙏 Créditos
Escrito por @AIQL.com.
Muchas de las ideas y textos de las declaraciones en este proyecto se basaron o se inspiraron en el trabajo de las siguientes comunidades:
Puede revisar los detalles técnicos específicos y la licencia. Agradecemos sus esfuerzos para facilitar la colaboración en sus proyectos.