Airsc is free for everyone. If it helps you, support it with $2–$20.

Support
MCP serverSafeAI & LLM featuresSome setup

tuui

AI-QL · AI-QL/tuui

This desktop MCP client allows AI agents to orchestrate and integrate various LLM APIs from different vendors.

A desktop MCP client designed as a tool unitary utility integration, accelerating AI adoption through the Model Context Protocol (MCP) and enabling cross-vendor LLM API orchestration.

1.2k stars107License: Apache-2.0Updated 5 months ago0 opens

Preview

▍

What you can do with it

  • Set up a local AI playground to experiment with different LLM APIs.
  • Orchestrate complex AI workflows using multiple LLMs.
  • Develop custom AI applications that integrate various model vendors.

Safety check

Safe

No risky patterns found in the files we scanned.

Automated scan of the repo files. Always review code you run.

From the README

TUUI - Local AI Playground with MCP

TUUI is a desktop MCP client designed as a tool unitary utility integration, accelerating AI adoption through the Model Context Protocol (MCP) and enabling cross-vendor LLM API orchestration.

Zero accounts Full control Open source Download and Run

📜 Introduction

This repository is essentially an LLM chat desktop application based on MCP. It also represents a bold experiment in creating a complete project using AI. Many components within the project have been directly converted or generated from the prototype project through AI.

Given the considerations regarding the quality and safety of AI-generated content, this project employs strict syntax checks and naming conventions. Therefore, for any further development, please ensure that you use the linting tools I've set up to check and automatically fix syntax issues.

✨ Highlights

  • ✨ Accelerate AI tool integration via MCP
  • ✨ Orchestrate cross-vendor LLM APIs through dynamic configuring
  • ✨ Automated application testing Support
  • ✨ TypeScript support
  • ✨ Multilingual support
  • ✨ Basic layout manager
  • ✨ Global state management through the Pinia store
  • ✨ Quick support through the GitHub community and official documentation

🔥 MCP features

StatusFeatureCategoryNote
✅ToolsServer
✅PromptsServer
✅ResourcesServer
🔲RootsClientThis is generally only used for the Vibe Coding IDE and can typically be configured through server environment variables.
✅SamplingClient
✅ElicitationClient
✅DiscoveryRegistryProvides real-time MCP server discovery on the MCP registry
✅MCPBExtensionMCP Bundles (.mcpb) is the new name for what was previously known as Desktop Extensions (.dxt)

🚀 Getting Started

You can quickly get started with the project through a variety of options tailored to your role and needs:

⚙️ Core Requirements

To use MCP-related features, ensure the following preconditions are met for your environment:

  • Set up an LLM backend (e.g., ChatGPT, Claude, Qwen or self-hosted) that supports tool/function calling.

  • For NPX/NODE-based servers: Install Node.js to execute JavaScript/TypeScript tools.

  • For UV/UVX-based servers: Install Python and the UV library.

  • For Docker-based servers: Install DockerHub.

  • For macOS/Linux systems: Modify the default MCP configuration (e.g., adjust CLI paths or permissions).

    Refer to the MCP Server Issue documentation for guidance

For guidance on configuring the LLM, refer to the template(i.e.: 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
}

The configuration accepts either a JSON object (for a single chatbot) or a JSON array (for multiple 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
  }
]

📕 Additional Configuration

ConfigurationDescriptionLocationNote
LLM EndpointsDefault LLM Chatbots configllm.jsonFull config types could be found in llm.d.ts
MCP ServersDefault MCP servers configsmcp.jsonFor configuration syntax, see MCP Servers
Startup ScreenDefault News on Startup Screenstartup.json
Popup ScreenDefault Prompts on Startup Screenpopup.json

For the decomposable package, you can also modify the default configuration of the built release:

For example, src/main/assets/config/llm.json will be located in resources/assets/config/llm.json

Once you modify or import the configurations, it will be stored in your localStorage by default.

Alternatively, you can clear all configurations from the Tray Menu by se

View source on GitHub