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

Logo 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

LICENSE Ask DeepWiki

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

EstadoCaracterísticaCategoríaNota
✅ToolsServidor
✅PromptsServidor
✅ResourcesServidor
🔲RootsClienteEsto generalmente solo se usa para el IDE de Vibe Coding y normalmente se puede configurar a través de variables de entorno del servidor.
✅SamplingCliente
✅ElicitationCliente
✅DiscoveryRegistroProporciona descubrimiento de servidores MCP en tiempo real en el registro MCP
✅MCPBExtensiónMCP 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:

⚙️ 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, Qwen o autoalojado) que admita llamadas a herramientas/funciones.

  • Para servidores basados en NPX/NODE: Instale Node.js para ejecutar herramientas JavaScript/TypeScript.

  • Para servidores basados en UV/UVX: Instale Python y la biblioteca UV.

  • 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ónDescripciónUbicaciónNota
LLM EndpointsConfiguración predeterminada de chatbots LLMllm.jsonLos tipos de configuración completos se pueden encontrar en llm.d.ts
MCP ServersConfiguraciones predeterminadas de servidores MCPmcp.jsonPara la sintaxis de configuración, consulte MCP Servers
Startup ScreenNoticias predeterminadas en la pantalla de iniciostartup.json
Popup ScreenPrompts predeterminados en la pantalla de iniciopopup.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:

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.