使用说明
MCP客户端-简化的AI聊天界面
一个简化的模型上下文协议(MCP)客户端web应用程序,连接到本地Ollama模型和MCP服务器。该项目已从复杂的多服务架构完全重构为具有现代Claude.ai风格界面的专注、可维护的聊天应用程序。
🚀 最新动态(2025年11月)
- 主要架构重构:代码减少60%,从约2000+行减少到约800行
- Claude.ai灵感UI:完全重新设计,采用橙色强调色和深色/浅色主题
- 简化后端:从15+个服务合并到2个核心文件
- 增强的聊天体验:使用markdown渲染进行实时WebSocket通信
- 注重简单:删除了复杂的功能,同时保留了核心功能
架构概述
当前实施(重构后)
mcp-client/
├── backend/ # Simplified FastAPI backend (~800 lines)
│ ├── mcp_client.py # Core MCP client with Ollama integration
│ ├── simple_main.py # FastAPI server with WebSocket support
│ ├── run_server.py # Server startup script
│ ├── mcp.json # MCP server configuration
│ └── pyproject.toml # Minimal dependencies (FastAPI, MCP, Ollama)
└── frontend/ # React 19 + TypeScript + Material-UI
├── src/
│ ├── components/Chat/ # Chat interface components
│ │ ├── ChatInterface.tsx # Main chat with markdown rendering
│ │ └── Sidebar.tsx # Collapsible navigation
│ ├── context/ThemeContext.tsx # Theme management
│ ├── hooks/useThemeMode.ts # Theme persistence
│ └── App.tsx # Main app component
└── package.json # React + Material-UI dependencies
关键简化
- 移除:数据库持久化、热重载、多服务架构
- 合并的:15+后端文件→ 2 核心文件
- 流线型:复杂的依赖关系管理→ 5 核心包
- 维护:所有聊天、MCP和Ollama功能
特性
✅ 核心功能
- 实时聊天:与本地Ollama模型进行基于WebSocket的通信
- MCP集成:连接到MCP服务器并使用其工具
- 工具调用:支持JSON模式验证的完整函数调用
- 32k上下文窗口:扩展对话上下文以提高连续性
- 现代用户界面:以Claude.ai为灵感的设计,采用深色/浅色主题
🎨 用户界面
- 响应式设计:适用于台式机和移动设备
- 暗/亮主题:具有本地存储持久性的全面主题系统
- 可折叠侧边栏:节省空间的导航(280px↔ 60像素)
- Markdown渲染:富文本,带有代码突出显示和表格支持
- 实时更新:即时消息传递,无需刷新页面
⚡ 技术特性
- TypeScript:整个应用程序的全类型安全
- 材料UI 7:现代组件库
- WebSocket集成:实时双向通信
- 错误处理:全面的错误恢复和用户反馈
- Docker就绪:设计用于基于Docker的MCP服务器
快速开始
先决条件
- Python 3.13+ 随着 紫外线 安装
- Node.js 17+ 安装了npm
- 码头工人 (适用于MCP服务器)
- 奥拉马 本地安装
qwen2.5:3b模型
1.克隆和设置
# Clone the repository
git clone https://github.com/your-username/mcp-client.git
cd mcp-client
# Setup backend
cd backend
uv sync
cd ..
# Setup frontend
cd frontend
npm install
cd ..
2.设置Olama
# Install Ollama (if not already installed)
curl -fsSL https://ollama.ai/install.sh | sh
# Pull the required model
ollama pull qwen2.5:3b
# Start Ollama service
ollama serve
3.设置MCP服务器(印度股票分析)
# Build and run the Indian Stock MCP server
docker build -t indian-stock-mcp-server /path/to/indian-stock-mcp-server
docker run -d --name indian-stock-mcp-server indian-stock-mcp-server
4.启动应用程序
后端(终端1):
cd backend
uv run python run_server.py
前端(2号航站楼):
cd frontend
npm start
5.访问应用程序
打开浏览器并导航到 http://localhost:3000
使用指南
开始对话
- 启动时,应用程序会自动连接到配置的MCP服务器
- 在聊天界面中键入您的信息,然后按Enter键
- 人工智能将使用当地Ollama进行响应,并可访问MCP工具
- 当股票市场分析需要时,工具调用会自动执行
主题定制
- 切换主题:单击侧栏中的太阳/月亮图标
- 折叠侧边栏:单击汉堡包菜单展开/折叠
- 偏好设置:主题选项会自动保存
当前MCP工具
该应用程序配置了印度股市分析工具,这些工具提供:
- 当前股价和公司基本面
- 历史数据和技术指标
- 市场概况和行业表现
- 股票搜索和最新消息
API 文档
后端运行后,请访问 http://localhost:8000/docs 用于交互式API文档。
关键终点
POST /chat-使用MCP工具集成发送聊天消息GET /health-检查应用程序和MCP服务器状态GET /tools-列出可用的MCP工具WebSocket /ws-实时聊天通信
配置
MCP服务器配置
编辑 backend/mcp.json 配置不同的MCP服务器:
{
"mcpServers": {
"your-server-name": {
"command": "docker",
"args": [
"exec",
"-i",
"container-name",
"uv",
"run",
"python",
"server.py"
]
}
}
}
Olama模型配置
默认模型为 qwen2.5:3b。要更改它,请修改 default_model 参数在 mcp_client.py.
发展
后端开发
cd backend
# Start with auto-reload
uv run uvicorn simple_main:app --reload --host 0.0.0.0 --port 8000
# Check dependencies
uv tree
前端开发
cd frontend
# Start development server
npm start
# Build for production
npm run build
# Run tests
npm test
代码质量
# Backend linting and formatting
cd backend
uv run ruff check .
uv run ruff format .
# Frontend linting (if configured)
cd frontend
npm run lint
故障排除
常见问题
-
后端无法启动:
- 确保安装了紫外线:
curl -LsSf https://astral.sh/uv/install.sh | sh - 检查Python版本:
python --version(需要3.13+) - 确认Ollama正在运行:
ollama list
- 确保安装了紫外线:
-
前端连接错误:
- 验证后端是否在端口8000上运行
- 检查端口是否可用:
netstat -tlnp | grep :8000 - 确保没有防火墙阻止
-
MCP服务器连接问题:
- 验证Docker容器是否正在运行:
docker ps - 检查容器名称是否匹配
mcp.json配置 - 如果可能,手动测试MCP服务器
- 验证Docker容器是否正在运行:
-
Ollama连接问题:
- 确保Ollama服务正在运行:
ollama serve - 检查型号是否可用:
ollama list - 验证模型与工具调用的兼容性
- 确保Ollama服务正在运行:
调试模式
启用详细日志记录:
# Backend
export RUST_LOG=debug
cd backend && uv run python run_server.py
# Frontend (check browser console)
# No special setup needed - React DevTools recommended
项目历史
最近的重大重构(2025年11月)
该项目经历了重大的建筑简化:
之前:
- 复杂的多业务架构(约2000+条线路)
- 15+后端文件,具有单独的管理器、服务和处理程序
- 使用SQLAlchemy实现数据库持久化
- 热重载配置管理
- 复杂依赖树
之后:
- 简化实施(约800行)
- 2个具有整合功能的核心后端文件
- 内存对话管理
- 使用mcp.json进行静态配置
- 最小依赖集
优点:
- 代码库大小减少60%
- 更快的开发和部署
- 更易于理解和维护
- 减少攻击面
- 更好的性能(更少的开销)
UI/UX大修(2025年11月)
受Claude.ai启发的完整界面重新设计:
- 橙色强调配色方案
- 暗/亮主题系统
- 可折叠侧边栏导航
- 增强的markdown渲染
- 改进的无障碍性
许可证
该项目根据MIT许可证获得许可。
贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 进行更改
- 如果适用,添加测试
- 提交拉取请求
支持
对于问题和疑问:
- 检查上面的故障排除部分
- 查看API文档,网址:
/docs - 在GitHub上打开一个问题
内置于❤️ 使用FastAPI、React、Material UI、Ollama和模型上下文协议。