mcpField
M
MCP Web UI

MCP Web UI

github.com/omchillure聊天应用584 周前更新

关于 MCP Web UI

MCP Web UI 是面向多种 LLM 提供商的网页聊天 Host,适合需要统一交互界面的用户。它结合实时响应、模型配置、持久化历史记录和 MCP 上下文处理。

主要功能

  1. 01支持多个 LLM 提供商
  2. 02实时流式聊天
  3. 03模型与设置配置
  4. 04MCP 上下文聚合
  5. 05持久化聊天记录

适用场景

  1. 01使用不同 LLM 提供商聊天
  2. 02调整模型参数和提示词
  3. 03保存并查看聊天记录

MCP 相关

作为 MCP Host 客户端,它可配置 SSE 和 stdio 服务,并通过 MCP 聚合上下文。

详细介绍

MCP Web UI

MCP Web UI 是一个基于网络的用户界面,在模型上下文协议 (MCP) 架构中充当 Host。它为与大模型交互提供了强大且用户友好的界面,同时管理客户端和服务之间的上下文聚合和协调。

🌟 概览

MCP Web UI 旨在通过提供以下功能来简化和增强与 AI 语言模型的交互:

  • 多个大模型提供商的统一界面
  • 实时流式聊天体验
  • 灵活的配置和模型管理
  • 使用 MCP 协议的强大上下文处理
演示视频

YouTube

🚀 功能

  • 🤖 多提供商大模型集成:
    • Anthropic (Claude 模型)
    • OpenAI (GPT 模型)
    • Ollama (本地模型)
    • OpenRouter (多个提供商)
  • 💬 直观的聊天界面
  • 🔄 通过服务器发送事件 (SSE) 的实时响应流式传输
  • 🔧 动态配置管理
  • 📊 高级上下文聚合
  • 💾 使用 BoltDB 的持久聊天历史
  • 🎯 灵活的模型选择

📋 前提条件

  • Go 1.23+
  • Docker (可选)
  • 所需大模型提供商的 API 密钥

🛠 安装

快速开始
  1. 克隆仓库:

    git clone https://github.com/MegaGrindStone/mcp-web-ui.git
    cd mcp-web-ui
    
  2. 配置环境:

    mkdir -p $HOME/.config/mcpwebui
    cp config.example.yaml $HOME/.config/mcpwebui/config.yaml
    
  3. 设置 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、openrouter
  • model: 特定模型名称 (例如 'claude-3-5-sonnet-20241022')
  • parameters: 微调模型行为:
    • temperature: 响应的随机性 (0.0-1.0)
    • topP: 核采样阈值
    • topK: 要保留的最高概率 token 数量
    • frequencyPenalty: 减少 token 序列的重复
    • presencePenalty: 鼓励讨论新话题
    • maxTokens: 最大响应长度
    • stop: 停止生成的序列
    • 以及更多提供商特定的参数
提供商特定配置
  • Ollama:

  • 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 服务 URL
    • maxPayloadSize: 最大有效负载大小
  • 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 模板

🤝 贡献

  1. Fork 本仓库
  2. 创建功能分支
  3. 提交你的更改
  4. 推送并创建 Pull Request

📄 许可证

MIT License

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。