A modern, web-based chat application implementing the Model Context Protocol (MCP) for seamless LLM-tool integration
Project description
MCP Open Client
A modern, web-based chat application that implements the Model Context Protocol (MCP) for seamless integration between Large Language Models and external tools.
๐ What is MCP Open Client?
MCP Open Client is a NiceGUI-based chat application that serves as a bridge between AI models and external tools through the Model Context Protocol (MCP). Think of it as "USB-C for AI" - a universal interface that allows any compatible LLM to securely interact with external data sources, tools, and services.
Key Features
- ๐ค Multi-LLM Support: Compatible with Claude, OpenAI, and other OpenAI-compatible APIs
- ๐ง MCP Integration: Connect to MCP servers for enhanced functionality
- ๐ฌ Modern Chat Interface: Clean, responsive web UI built with NiceGUI
- ๐ Conversation Management: Save, load, and organize your chat history
- โ๏ธ Easy Configuration: Web-based settings management
- ๐ Local & Remote: Works with local models and cloud APIs
- ๐ Secure: All configurations stored locally
๐๏ธ Architecture
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ Web Client โโโโโบโ MCP Client โโโโโบโ MCP Servers โ
โ (NiceGUI) โ โ (Protocol) โ โ (FastMCP) โ
โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโ
โ โ โ
โผ โผ โผ
Chat Interface API Integration External Tools
โข Conversations โข OpenAI API โข File Systems
โข History โข Claude API โข Databases
โข Settings โข Local Models โข Web Services
๐ฆ Installation
Option 1: Install from PyPI (Recommended)
pip install mcp-open-client
mcp-open-client
Option 2: Install from Source
git clone https://github.com/alejoair/mcp-open-client.git
cd mcp-open-client
pip install -e .
mcp-open-client
Option 3: Development Setup
git clone https://github.com/alejoair/mcp-open-client.git
cd mcp-open-client
pip install -r requirements.txt
python -m mcp_open_client.main
๐ Quick Start
-
Launch the application:
mcp-open-client
-
Open your browser to
http://localhost:8080 -
Configure your API settings:
- Go to Configuration โ API Settings
- Add your API key and model preferences
- Choose from OpenAI, Claude, or local models
-
Set up MCP servers (optional):
- Go to Configuration โ MCP Servers
- Add servers for enhanced functionality
-
Start chatting!
โ๏ธ Configuration
API Settings
Configure your preferred AI model in the web interface:
- API Key: Your OpenAI/Claude API key
- Base URL: API endpoint (supports local models like LM Studio)
- Model: Choose your preferred model
- System Prompt: Customize the assistant's behavior
MCP Servers
Connect external tools and services:
{
"mcpServers": {
"mcp-requests": {
"disabled": false,
"command": "uvx",
"args": ["mcp-requests"],
"transport": "stdio"
},
"mcp-code-editor": {
"disabled": false,
"command": "uvx",
"args": ["mcp-code-editor"]
}
}
}
๐ ๏ธ Supported MCP Servers
The client works with any MCP-compliant server. Popular options include:
- mcp-requests: HTTP request capabilities
- mcp-code-editor: File system operations
- mcp-database: Database connectivity
- Custom servers: Build your own with FastMCP
๐ง Development
Project Structure
mcp_open_client/
โโโ main.py # Application entry point
โโโ api_client.py # LLM API communication
โโโ mcp_client.py # MCP protocol handler
โโโ config_utils.py # Configuration management
โโโ settings/ # Default configurations
โ โโโ user-settings.json # API settings
โ โโโ mcp-config.json # MCP server config
โโโ ui/ # User interface components
โโโ home.py # Home page
โโโ chat_interface.py # Chat UI
โโโ configure.py # Settings UI
โโโ mcp_servers.py # MCP management
โโโ chat_handlers.py # Chat logic
Running Tests
python -m pytest tests/
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
๐ Features in Detail
Chat Interface
- Real-time messaging with streaming responses
- Conversation history with search and organization
- Message formatting with syntax highlighting
- Tool integration via MCP protocol
Configuration Management
- Web-based settings - no need to edit config files
- Multiple API providers - OpenAI, Anthropic, local models
- MCP server management - enable/disable servers on the fly
- Theme customization - dark/light mode support
MCP Integration
- Protocol compliance - works with any MCP server
- Dynamic server loading - add servers without restart
- Tool discovery - automatic detection of available tools
- Error handling - graceful degradation when servers are unavailable
๐ Requirements
- Python 3.7+
- Modern web browser
- Internet connection (for cloud APIs) or local model setup
Dependencies
nicegui- Web UI frameworkopenai- API client libraryfastmcp- MCP protocol implementationwebsockets- WebSocket supportrequests- HTTP clientjsonschema- Configuration validation
๐ Troubleshooting
Common Issues
Connection Problems:
- Check your API key and base URL
- Verify network connectivity
- Ensure MCP servers are running
UI Issues:
- Clear browser cache
- Try a different browser
- Check browser console for errors
MCP Server Issues:
- Verify server configuration
- Check server logs
- Test servers independently
Getting Help
- ๐ Check the documentation
- ๐ Report bugs
- ๐ฌ Ask questions
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Acknowledgments
- Built with NiceGUI for the web interface
- Uses FastMCP for MCP protocol implementation
- Inspired by the Model Context Protocol specification
๐ Links
- Homepage: https://github.com/alejoair/mcp-open-client
- Documentation: Wiki
- Bug Tracker: Issues
- MCP Specification: modelcontextprotocol.io
Made with โค๏ธ by alejoair
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_open_client-0.4.14.tar.gz.
File metadata
- Download URL: mcp_open_client-0.4.14.tar.gz
- Upload date:
- Size: 63.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8806b7dbfb7bc7c278dad87ee90b52948ea2cc3ac1b395099c7d62784ea3df06
|
|
| MD5 |
cf1b812f9e4b75919e2bd367940f6003
|
|
| BLAKE2b-256 |
cd75d2880d6ac090d0bbdd2f06d42e5dfd5db16e2ea63ccb84470bb2639061d5
|
Provenance
The following attestation bundles were made for mcp_open_client-0.4.14.tar.gz:
Publisher:
release.yml on alejoair/mcp-open-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_open_client-0.4.14.tar.gz -
Subject digest:
8806b7dbfb7bc7c278dad87ee90b52948ea2cc3ac1b395099c7d62784ea3df06 - Sigstore transparency entry: 275049651
- Sigstore integration time:
-
Permalink:
alejoair/mcp-open-client@c4f740e4d627fa3bbbb93d9cddf058e3edb6e337 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/alejoair
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c4f740e4d627fa3bbbb93d9cddf058e3edb6e337 -
Trigger Event:
pull_request
-
Statement type:
File details
Details for the file mcp_open_client-0.4.14-py3-none-any.whl.
File metadata
- Download URL: mcp_open_client-0.4.14-py3-none-any.whl
- Upload date:
- Size: 69.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7663c5ad36eefc22536eb629065cf318d8b3895e7839794f68a967ad5a4bc57
|
|
| MD5 |
e8cb2082d021ccb529f5f8273b30c851
|
|
| BLAKE2b-256 |
585b93cd343cacc2d127a346eeddb2a63f1d2bdd17a1478c402da1ef36dfe16c
|
Provenance
The following attestation bundles were made for mcp_open_client-0.4.14-py3-none-any.whl:
Publisher:
release.yml on alejoair/mcp-open-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_open_client-0.4.14-py3-none-any.whl -
Subject digest:
c7663c5ad36eefc22536eb629065cf318d8b3895e7839794f68a967ad5a4bc57 - Sigstore transparency entry: 275049655
- Sigstore integration time:
-
Permalink:
alejoair/mcp-open-client@c4f740e4d627fa3bbbb93d9cddf058e3edb6e337 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/alejoair
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c4f740e4d627fa3bbbb93d9cddf058e3edb6e337 -
Trigger Event:
pull_request
-
Statement type: