TS

y-gui

by luohy15/y-gui

0 views

A Tiny Web Chat App for AI Models with MCP Client Support

typescriptChat & Messaging

y-gui ๐Ÿš€

A web-based graphical interface for AI chat interactions with support for multiple AI models and powerful MCP (Model Context Protocol) integrations. Beyond standard chat capabilities, y-gui leverages MCP to connect with Gmail, Google Calendar, image generation services, and more.

Check out y-cli for a CLI version.

Demo

demo

MCP in Action

See how y-gui uses MCP integrations to extend AI capabilities:

โœจ Features

  • ๐Ÿ’ฌ Interactive chat interface with AI models
  • ๐Ÿค– Support for multiple bot configurations (any base_url/api_key/model combination)
  • ๐Ÿ”— Comprehensive MCP (Model Context Protocol) integration system with:
    • ๐Ÿ“ง Gmail access and management
    • ๐Ÿ“… Google Calendar integration for event scheduling
    • ๐Ÿ–ผ๏ธ Image generation capabilities
    • ๐Ÿงฉ Expandable framework for additional MCP servers and tools
  • ๐Ÿ”’ Secure authentication with Auth0 and Google login
  • ๐ŸŒ“ Dark/light theme support
  • ๐Ÿ“ All chat data stored in Cloudflare D1 for easy access and sync
  • ๐Ÿ”„ Real-time updates with SWR
  • ๐Ÿ“ฑ Responsive design for all devices

Architecture

y-gui consists of two main components:

  1. Frontend: React application with TypeScript, Tailwind CSS, and SWR for data fetching
  2. Backend: Cloudflare Workers with D1 storage
flowchart TD
    Client[React Client] --> Worker[Cloudflare Worker]
    Worker --> D1[Cloudflare D1]
    Worker --> AI[AI Providers]

    subgraph "Frontend"
        Client --> Components[React Components]
        Components --> State[SWR State]
        State --> API[API Layer]
    end

    subgraph "Backend"
        Worker --> Auth[Auth Middleware]
        Worker --> Storage[Storage Layer]
        Worker --> Provider[Provider Layer]
    end

โšก Quick Start

Prerequisites

  1. Node.js and npm
  2. Cloudflare account
  3. Auth0 account
  4. API keys for AI providers

Installation

  1. Clone the repository:

    git clone https://github.com/luohy15/y-gui.git
    cd y-gui
    
  2. Install dependencies:

    npm install
    
  3. Configure environment variables:

    • Configure Cloudflare Worker settings in backend/wrangler.toml
    • Change the auth0 settings in frontend/src/index.tsx and backend/src/utils/auth.ts
  4. Build asset:

    npm run build
    
  5. Deploy cloudflare worker

    npm run deploy
    

๐Ÿ› ๏ธ Development

Project Structure

y-gui/
โ”œโ”€โ”€ frontend/               # React frontend application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/     # React components
โ”‚   โ”‚   โ”œโ”€โ”€ contexts/       # React contexts
โ”‚   โ”‚   โ”œโ”€โ”€ utils/          # Utility functions
โ”‚   โ”‚   โ””โ”€โ”€ index.tsx       # Entry point
โ”œโ”€โ”€ backend/                # Cloudflare Worker backend
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ api/            # API endpoints
โ”‚   โ”‚   โ”œโ”€โ”€ middleware/     # Middleware
โ”‚   โ”‚   โ”œโ”€โ”€ repository/     # Data access
โ”‚   โ”‚   โ””โ”€โ”€ index.ts        # Worker entry
โ”œโ”€โ”€ shared/                 # Shared code between frontend and backend
โ”‚   โ””โ”€โ”€ types/              # TypeScript type definitions
โ””โ”€โ”€ memory-bank/            # Project documentation

Available Scripts

  • npm run dev: Start both frontend and backend development servers
  • npm run dev:frontend: Start only the frontend development server
  • npm run dev:backend: Start only the backend development server
  • npm run build: Build both frontend and backend
  • npm run deploy: Deploy the backend to Cloudflare Workers
  • npm run test: Run tests

๐Ÿ”’ Authentication

y-gui uses Auth0 for authentication with the following features:

  • Universal Login
  • Google social login
  • Token-based session management
  • Secure API access

๐Ÿค– Bot Configuration

y-gui supports multiple bot configurations with the following properties:

  • Name
  • Model
  • Base URL
  • API Key
  • Print Speed
  • MCP Servers
  • API Type
  • Custom API Path
  • Max Tokens
  • Reasoning Effort

๐Ÿ”— MCP Server Configuration

MCP (Model Context Protocol) servers can be configured with simple:

  • Name: Unique identifier for the MCP server
  • URL: For remotely hosted MCP services
  • Token: Authentication token for secure server access

Current MCP integrations include Gmail, Google Calendar, image generation, and support for custom servers to connect with virtually any API or service.

๐ŸŒ API Endpoints

The backend provides RESTful API endpoints for:

  • Chat operations
  • Bot configuration management
  • MCP server configuration management
  • Authentication

๐Ÿ”„ Data Storage

  • Chat data is stored in Cloudflare D1
  • Bot and MCP server configurations are stored in Cloudflare D1
  • MCP integration data is securely managed through authorized API connections

๐Ÿงฉ Technologies Used

  • Frontend: React, TypeScript, Tailwind CSS, SWR, Auth0
  • Backend: Cloudflare Workers, D1
  • Integrations: MCP servers, OAuth2, Gmail API, Google Calendar API, Image Generation APIs
  • Build Tools: Vite, Wrangler, TypeScript

๐Ÿ“š Documentation

For more detailed documentation, see the memory-bank directory.

Visit the deepwiki page for comprehensive project documentation and guides.

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

Install

No configuration available
For more configuration details, refer to the content on the left

Related

Related projects feature coming soon

Will recommend related projects based on sub-categories