mcp-web-ui
Categories
Language:
Go
Stars:
39
Forks:
6
MCP Web UI
MCP Web UI is a web-based user interface that serves as a Host within the Model Context Protocol (MCP) architecture. It provides a powerful and user-friendly interface for interacting with Large Language Models (LLMs) while managing context aggregation and coordination between clients and servers.
🌟 Overview
MCP Web UI is designed to simplify and enhance interactions with AI language models by providing:
- A unified interface for multiple LLM providers
- Real-time, streaming chat experiences
- Flexible configuration and model management
- Robust context handling using the MCP protocol
Demo Video
🚀 Features
- 🤖 Multi-Provider LLM Integration:
- Anthropic (Claude models)
- OpenAI (GPT models)
- Ollama (local models)
- OpenRouter (multiple providers)
- 💬 Intuitive Chat Interface
- 🔄 Real-time Response Streaming via Server-Sent Events (SSE)
- 🔧 Dynamic Configuration Management
- 📊 Advanced Context Aggregation
- 💾 Persistent Chat History using BoltDB
- 🎯 Flexible Model Selection
📋 Prerequisites
- Go 1.23+
- Docker (optional)
- API keys for desired LLM providers
🛠 Installation
Quick Start
-
Clone the repository:
git clone https://github.com/MegaGrindStone/mcp-web-ui.git cd mcp-web-ui -
Configure your environment:
mkdir -p $HOME/.config/mcpwebui cp config.example.yaml $HOME/.config/mcpwebui/config.yaml -
Set up API keys:
export ANTHROPIC_API_KEY=your_anthropic_key export OPENAI_API_KEY=your_openai_key export OPENROUTER_API_KEY=your_openrouter_key
Running the Application
Local Development
go mod download
go run ./cmd/server/main.go
Docker Deployment
docker build -t mcp-web-ui .
docker run -p 8080:8080 \
-v $HOME/.config/mcpwebui/config.yaml:/app/config.yaml \
-e ANTHROPIC_API_KEY \
-e OPENAI_API_KEY \
-e OPENROUTER_API_KEY \
mcp-web-ui
🔧 Configuration
The configuration file (config.yaml) provides comprehensive settings for customizing the MCP Web UI. Here's a detailed breakdown:
Server Configuration
port: The port on which the server will run (default: 8080)logLevel: Logging verbosity (options: debug, info, warn, error; default: info)logMode: Log output format (options: json, text; default: text)
Prompt Configuration
systemPrompt: Default system prompt for the AI assistanttitleGeneratorPrompt: Prompt used to generate chat titles
LLM (Language Model) Configuration
The llm section supports multiple providers with provider-specific configurations:
Common LLM Parameters
provider: Choose from: ollama, anthropic, openai, openroutermodel: Specific model name (e.g., 'claude-3-5-sonnet-20241022')parameters: Fine-tune model behavior:temperature: Randomness of responses (0.0-1.0)topP: Nucleus sampling thresholdtopK: Number of highest probability tokens to keepfrequencyPenalty: Reduce repetition of token sequencespresencePenalty: Encourage discussing new topicsmaxTokens: Maximum response lengthstop: Sequences to stop generation- And more provider-specific parameters
Provider-Specific Configurations
-
Ollama:
host: Ollama server URL (default: http://localhost:11434)
-
Anthropic:
apiKey: Anthropic API key (can use ANTHROPIC_API_KEY env variable)maxTokens: Maximum token limit
-
OpenAI:
apiKey: OpenAI API key (can use OPENAI_API_KEY env variable)
-
OpenRouter:
apiKey: OpenRouter API key (can use OPENROUTER_API_KEY env variable)
Title Generator Configuration
The genTitleLLM section allows separate configuration for title generation, defaulting to the main LLM if not specified.
MCP Server Configurations
- `mcpSSEServers`: Configure Server-Sent Events (SSE) servers
-
url: SSE server URL -
maxPayloadSize: Maximum payload size -
mcpStdIOServers: Configure Standard Input/Output serverscommand: Command to run serverargs: Arguments for the server command
Example Configuration Snippet
port: 8080
logLevel: info
systemPrompt: You are a helpful assistant.
llm:
provider: anthropic
model: claude-3-5-sonnet-20241022
parameters:
temperature: 0.7
maxTokens: 1000
genTitleLLM:
provider: openai
model: gpt-3.5-turbo
🏗 Project Structure
cmd/: Application entry pointinternal/handlers/: Web request handlersinternal/models/: Data modelsinternal/services/: LLM provider integrationsstatic/: Static assets (CSS)templates/: HTML templates
🤝 Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push and create a Pull Request
📄 License
MIT License
Publisher info
More MCP servers built with Go
An MCP (Model Context Protocol) server that provides tools for querying OCI registries and image references.
A Go framework for building Model Context Protocol (MCP) servers that enable Large Language Models (LLMs) to securely access tools and data sources.
