TUUI - Tool Unitary User Interface

Um cliente MCP desktop para integração de ferramentas e orquestração de API LLM entre fornecedores.

Documentação

Logo TUUI - Playground de IA Local com MCP

TUUI é um cliente MCP desktop projetado como uma integração utilitária unitária de ferramentas, acelerando a adoção de IA através do Model Context Protocol (MCP) e permitindo orquestração de APIs LLM de múltiplos fornecedores.

Zero accounts Full control Open source Download and Run

📜 Introdução

LICENSE Ask DeepWiki

Este repositório é essencialmente um aplicativo desktop de chat LLM baseado em MCP. Ele também representa um experimento ousado em criar um projeto completo usando IA. Muitos componentes dentro do projeto foram diretamente convertidos ou gerados a partir do projeto protótipo através de IA.

Considerando as preocupações sobre a qualidade e segurança do conteúdo gerado por IA, este projeto emprega verificações rigorosas de sintaxe e convenções de nomenclatura. Portanto, para qualquer desenvolvimento adicional, certifique-se de usar as ferramentas de linting que configurei para verificar e corrigir automaticamente problemas de sintaxe.

✨ Destaques

  • ✨ Acelere a integração de ferramentas de IA via MCP
  • ✨ Orquestre APIs LLM de múltiplos fornecedores através de configuração dinâmica
  • ✨ Suporte a testes automatizados de aplicativos
  • ✨ Suporte a TypeScript
  • ✨ Suporte multilíngue
  • ✨ Gerenciador de layout básico
  • ✨ Gerenciamento de estado global através do store Pinia
  • ✨ Suporte rápido através da comunidade GitHub e documentação oficial

🔥 Recursos MCP

StatusRecursoCategoriaNota
✅ToolsServidor
✅PromptsServidor
✅ResourcesServidor
🔲RootsClienteIsso geralmente é usado apenas para o IDE Vibe Coding e normalmente pode ser configurado através de variáveis de ambiente do servidor.
✅SamplingCliente
✅ElicitationCliente
✅DiscoveryRegistroFornece descoberta de servidores MCP em tempo real no registro MCP
✅MCPBExtensãoMCP Bundles (.mcpb) é o novo nome para o que anteriormente era conhecido como Desktop Extensions (.dxt)

🚀 Começando

Você pode começar rapidamente com o projeto através de uma variedade de opções adaptadas ao seu papel e necessidades:

⚙️ Requisitos Principais

Para usar recursos relacionados ao MCP, garanta que os seguintes pré-requisitos sejam atendidos no seu ambiente:

  • Configure um backend LLM (ex.: ChatGPT, Claude, Qwen ou auto-hospedado) que suporte chamadas de ferramentas/funções.

  • Para servidores baseados em NPX/NODE: Instale Node.js para executar ferramentas JavaScript/TypeScript.

  • Para servidores baseados em UV/UVX: Instale Python e a biblioteca UV.

  • Para servidores baseados em Docker: Instale DockerHub.

  • Para sistemas macOS/Linux: Modifique a configuração padrão do MCP (ex.: ajuste caminhos de CLI ou permissões).

    Consulte a documentação MCP Server Issue para orientação

Para orientação sobre como configurar o LLM, consulte o modelo (ex.: 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
}

A configuração aceita um objeto JSON (para um único chatbot) ou um array JSON (para múltiplos 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
  }
]

📕 Configuração Adicional

ConfiguraçãoDescriçãoLocalizaçãoNota
Endpoints LLMConfig padrão de Chatbots LLMllm.jsonTipos completos de configuração podem ser encontrados em llm.d.ts
Servidores MCPConfigs padrão de servidores MCPmcp.jsonPara sintaxe de configuração, veja MCP Servers
Tela InicialNotícias padrão na Tela Inicialstartup.json
Tela PopupPrompts padrão na Tela Inicialpopup.json

Para o pacote decomponível, você também pode modificar a configuração padrão da versão compilada:

Por exemplo, src/main/assets/config/llm.json estará localizado em resources/assets/config/llm.json

Depois de modificar ou importar as configurações, elas serão armazenadas no seu localStorage por padrão.

Alternativamente, você pode limpar todas as configurações do Tray Menu selecionando Clear Storage.

🌐 Servidor MCP Remoto

Você pode utilizar o mcp-remote recomendado pela Cloudflare para implementar o conjunto completo de funcionalidades de servidor MCP remoto (incluindo Auth). Por exemplo, basta adicionar o seguinte ao seu arquivo mcp.json:

{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://YOURDOMAIN.com/sse"]
    }
  }
}

Neste exemplo, forneci um servidor remoto de teste: https://YOURDOMAIN.com no Cloudflare. Este servidor sempre aprovará suas solicitações de autenticação.

Se você encontrar quaisquer problemas (tente manter o redirecionamento automático de OAuth para evitar atrasos de callback que possam causar falhas), como o erro comum HTTP 400. Você pode resolvê-los limpando o cache do navegador na página de autenticação e tentando a verificação novamente:

🚸 Problemas com Servidor MCP

Geral

Ao iniciar o servidor MCP, se você encontrar quaisquer problemas, primeiro garanta que o comando correspondente possa ser executado no seu sistema atual — por exemplo, uv/uvx, npx, etc.

Erros ENOENT Spawn

Ao iniciar o servidor MCP, se você encontrar erros de spawn como ENOENT, tente executar o servidor MCP correspondente localmente e invocá-lo usando um caminho absoluto.

Se o comando funcionar, mas a inicialização do MCP ainda retornar erros de spawn, isso pode ser um problema conhecido:

Timeout de Conexão MCP

Se a inicialização demorar muito e acionar a proteção de timeout de 90 segundos, pode ser porque as bibliotecas de runtime uv/uvx/npx estão sendo instaladas ou atualizadas pela primeira vez.

Quando sua conexão com o respectivo repositório pip ou npm estiver lenta, a instalação pode demorar muito tempo.

Nesses casos, primeiro complete a instalação manualmente com pip ou npm no diretório relevante, e então inicie o servidor MCP novamente.

🤝 Contribuindo

Aceitamos contribuições de qualquer tipo para este projeto, incluindo melhorias de recursos, melhorias de UI, atualizações de documentação, conclusão de casos de teste e correções de sintaxe. Acredito que um desenvolvedor real pode escrever código melhor que IA, então se você tiver preocupações sobre certas partes da implementação do código, sinta-se à vontade para compartilhar suas sugestões ou enviar um pull request.

Por favor, revise nosso Code of Conduct. Ele está em vigor em todos os momentos. Esperamos que seja respeitado por todos que contribuem para este projeto.

Para mais informações, veja Contributing Guidelines

🙋 Abrindo uma Issue

Antes de criar uma issue, verifique se você está usando a versão mais recente do projeto. Se você não estiver atualizado, veja se atualizar resolve seu problema primeiro.

🔒️ Reportando Problemas de Segurança

Revise nossa Security Policy. Não abra uma issue pública para vulnerabilidades de segurança.

🎉 Demonstração

Visualização de primitivas MCP

Suporte a bundles MCP (.mcpb)

Rastreamento de chamadas de ferramentas MCP

Agente com seleção de ferramentas especificada

Configuração de API LLM

Elicitação MCP

Registro MCP

Devtools nativos

🙏 Créditos

Escrito por @AIQL.com.

Muitas das ideias e textos para as declarações neste projeto foram baseados ou inspirados em trabalhos das seguintes comunidades:

Você pode revisar os detalhes técnicos específicos e a licença. Recomendamos seus esforços para facilitar a colaboração em seus projetos.