Turbo MCP Client
by techspawn
Turbo MCP Client is a FastAPI application providing a web interface for interacting with Models Context Protocol (MCP) servers. It utilizes OpenAI's API for processing messages.
Last updated: N/A
Turbo MCP Client š
A FastAPI-based application that provides a web interface for interacting with Models Context Protocol (MCP) servers while utilizing OpenAI's API for processing messages.
Overview
This application allows users to:
- Connect to multiple MCP servers simultaneously
- Process messages through OpenAI's API
- Interact with the system via a web-based chat interface
- Configure and store API license keys
Tech Stack
Client: html, css, js, bootstrap, animatedjs
Server: FastAPI, Openai, MCP
Features
- Connect multiple servers at a time
- Use websocket any where you want
Screenshots

App Screenshot

App Screenshot
Installation
-
Clone the repository:
git clone https://github.com/techspawn/Turbo-MCP-Client.git cd openai-mcp
-
Install dependencies:
uv pip install -r requirements.txt
-
Set up your environment variables:
export MODEL_NAME="gpt-4o" # or your preferred OpenAI model
Environment Variables
To run this project, you will need to add the following environment variables to your .env file
MODEL_NAME=gpt-4o
Configuration
-
Create a
config.json
file in the root directory:{ "mcpServers": { "server1": { "command": "your_command", "args": ["arg1", "arg2"] }, "server2": { "command": "another_command", "args": ["arg1", "arg2"] } } }
-
Initialize the SQLite database:
import sqlite3 conn = sqlite3.connect("mcp_config.db") cursor = conn.cursor() cursor.execute("CREATE TABLE IF NOT EXISTS config (license_key TEXT)") conn.commit() conn.close()
-
Configure your OpenAI API key through the web interface.
Usage
-
Start the application:
uvicorn main:app --reload
-
Open your browser and navigate to
http://localhost:8000
-
Enter your OpenAI API key in the web interface to save it to the database
-
Use the chat interface to send messages that will be processed through the MCP servers and OpenAI
Usage
-
Start the application:
uvicorn main:app --reload
-
Open your browser and navigate to
http://localhost:8000
-
Enter your OpenAI API key in the web interface to save it to the database
-
Use the chat interface to send messages that will be processed through the MCP servers and OpenAI
Project Structure
āāā images/ # Directory for storing image assets
ā āāā chat_window.png # Screenshot of the chat window
ā āāā setting_page.png # Screenshot of the settings page
āāā models/ # Contains Python modules related to data models
ā āāā __init__.py # Makes the 'models' directory a Python package
ā āāā client.py # Defines client-related logic (e.g., API client, user handling)
ā āāā config.py # Handles application configuration settings
ā āāā py.typed # Indicates that this package supports type hints
āāā static/ # Placeholder for static assets (CSS, JavaScript, images)
āāā templates/ # Directory for HTML templates
ā āāā base.html # Base template for consistent layout across pages
ā āāā chat.html # Template for the chat interface
ā āāā settings.html # Template for the settings page
āāā .env # Environment variables (e.g., API keys, credentials)
āāā .gitignore # Specifies files to be ignored by Git
āāā .python-version # Defines the Python version for this project
āāā config.json # JSON configuration file for application settings
āāā database.py # Handles database connection and operations
āāā folder_structure.txt # Text file describing the project structure
āāā LICENSE # License file specifying usage terms
āāā main.py # Entry point of the application
āāā mcp_config.db # SQLite database file or config storage
āāā pyproject.toml # Python project metadata and dependency management
āāā README.md # Project documentation and setup instructions
āāā requirements.txt # List of required dependencies
āāā uv.lock # Lock file for package versions (possibly from `uv` or another package manager)
API Endpoints
GET /
: Main chat interfacePOST /get_settings
: Save OpenAI API license keyWebSocket /chat
: Real-time chat communication
Contributing
Contributions are always welcome!
See contributing.md
for ways to get started.
Support
For support, email [email protected]