关于 MCP Web UI
MCP Web UI 是面向多种 LLM 提供商的网页聊天 Host,适合需要统一交互界面的用户。它结合实时响应、模型配置、持久化历史记录和 MCP 上下文处理。
主要功能
- 01支持多个 LLM 提供商
- 02实时流式聊天
- 03模型与设置配置
- 04MCP 上下文聚合
- 05持久化聊天记录
适用场景
- 01使用不同 LLM 提供商聊天
- 02调整模型参数和提示词
- 03保存并查看聊天记录
MCP 相关
作为 MCP Host 客户端,它可配置 SSE 和 stdio 服务,并通过 MCP 聚合上下文。
详细介绍
MCP Web UI
MCP Web UI 是一个基于网络的用户界面,在模型上下文协议 (MCP) 架构中充当 Host。它为与大模型交互提供了强大且用户友好的界面,同时管理客户端和服务之间的上下文聚合和协调。
🌟 概览
MCP Web UI 旨在通过提供以下功能来简化和增强与 AI 语言模型的交互:
- 多个大模型提供商的统一界面
- 实时流式聊天体验
- 灵活的配置和模型管理
- 使用 MCP 协议的强大上下文处理
演示视频
🚀 功能
- 🤖 多提供商大模型集成:
- Anthropic (Claude 模型)
- OpenAI (GPT 模型)
- Ollama (本地模型)
- OpenRouter (多个提供商)
- 💬 直观的聊天界面
- 🔄 通过服务器发送事件 (SSE) 的实时响应流式传输
- 🔧 动态配置管理
- 📊 高级上下文聚合
- 💾 使用 BoltDB 的持久聊天历史
- 🎯 灵活的模型选择
📋 前提条件
- Go 1.23+
- Docker (可选)
- 所需大模型提供商的 API 密钥
🛠 安装
快速开始
-
克隆仓库:
git clone https://github.com/MegaGrindStone/mcp-web-ui.git cd mcp-web-ui -
配置环境:
mkdir -p $HOME/.config/mcpwebui cp config.example.yaml $HOME/.config/mcpwebui/config.yaml -
设置 API 密钥:
export ANTHROPIC_API_KEY=your_anthropic_key export OPENAI_API_KEY=your_openai_key export OPENROUTER_API_KEY=your_openrouter_key
运行应用
本地开发
go mod download
go run ./cmd/server/main.go
Docker 部署
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
🔧 配置
配置文件 (config.yaml) 提供了用于自定义 MCP Web UI 的全面设置。以下是详细的分解:
服务器配置
port: 服务器运行的端口 (默认值: 8080)logLevel: 日志详细程度 (选项: debug、info、warn、error; 默认值: info)logMode: 日志输出格式 (选项: json、text; 默认值: text)
提示词配置
systemPrompt: AI 助手的默认系统提示词titleGeneratorPrompt: 用于生成聊天标题的提示词
大模型配置
llm 部分支持多个提供商,各提供商具有特定的配置:
常见大模型参数
provider: 选择: ollama、anthropic、openai、openroutermodel: 特定模型名称 (例如 'claude-3-5-sonnet-20241022')parameters: 微调模型行为:temperature: 响应的随机性 (0.0-1.0)topP: 核采样阈值topK: 要保留的最高概率 token 数量frequencyPenalty: 减少 token 序列的重复presencePenalty: 鼓励讨论新话题maxTokens: 最大响应长度stop: 停止生成的序列- 以及更多提供商特定的参数
提供商特定配置
-
Ollama:
host: Ollama 服务 URL (默认值: http://localhost:11434)
-
Anthropic:
apiKey: Anthropic API 密钥 (可使用 ANTHROPIC_API_KEY 环境变量)maxTokens: 最大 token 限制
-
OpenAI:
apiKey: OpenAI API 密钥 (可使用 OPENAI_API_KEY 环境变量)
-
OpenRouter:
apiKey: OpenRouter API 密钥 (可使用 OPENROUTER_API_KEY 环境变量)
标题生成器配置
genTitleLLM 部分允许为标题生成进行单独配置,如果未指定则默认为主大模型。
MCP 服务配置
-
mcpSSEServers: 配置服务器发送事件 (SSE) 服务url: SSE 服务 URLmaxPayloadSize: 最大有效负载大小
-
mcpStdIOServers: 配置标准输入/输出服务command: 运行服务的命令args: 服务命令的参数
配置示例片段
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
🏗 项目结构
cmd/: 应用入口internal/handlers/: Web 请求处理程序internal/models/: 数据模型internal/services/: 大模型提供商集成static/: 静态资源 (CSS)templates/: HTML 模板
🤝 贡献
- Fork 本仓库
- 创建功能分支
- 提交你的更改
- 推送并创建 Pull Request
📄 许可证
MIT License
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
