MCP SSE客户端服务器系统
概述
该项目使用服务器发送事件(SSE)实现了一个客户端-服务器系统,用于Gemini AI客户端和提供工具的服务器之间的实时通信。该系统允许用户通过Gemini AI处理的自然语言查询与各种工具(如网络搜索和命令执行)进行交互。
特性
- 基于SSE的通信:客户端和服务器之间的实时双向通信
- Gemini AI集成:用于工具选择和查询理解的自然语言处理
- 工具生态系统:包括以下工具:
- 网络搜索(通过Tavily API) - Shell命令执行 - 基本的算术运算
- 异步体系结构:使用Python的asyncio构建,实现高效的I/O操作
先决条件
- Python 3.7+
- 所需的环境变量:
- GEMINI_API_KEY -用于Gemini AI访问 - TAVILY_API_KEY -用于网络搜索功能
安装
- 克隆存储库:
git clone https://github.com/147MahirJawad/mcp-server-client-sse.git
cd mcp-sse-system- 安装依赖项:
pip install -r requirements.txt- 创建一个
.env使用API密钥文件:
GEMINI_API_KEY=your_gemini_key
TAVILY_API_KEY=your_tavily_key用法
运行服务器
使用以下命令启动MCP服务器:
python server_sse.py --host 0.0.0.0 --port 8081可选参数:
--host:服务器主机(默认值:0.0.0.0)--port:服务器端口(默认值:8081)
运行客户端
使用以下方式连接到服务器:
python client_sse.py http://localhost:8081/sse连接后,您可以:
- 输入自然语言查询
- 系统将自动选择和使用适当的工具
- 键入“exit”退出
可用工具
- 网页搜索:使用Tavily API执行web搜索
- 示例:“搜索最新的AI新闻”
- 运行命令:执行工作区目录中的shell命令
- 示例:“列出工作区中的文件”
- 添加数字:执行基本算术
- 例如:“123加456等于多少?”
建筑
Client (Gemini AI) ↔ SSE Transport ↔ MCP Server ↔ Tools- 客户端:使用Gemini AI来解释用户查询和选择工具
- SSE 运输:处理实时通信
- MCP服务器:管理工具执行和响应
- 工具:各种功能端点
配置
- 可以在中修改工作区目录
server_sse.py(默认工作空间) - 通过使用装饰功能可以添加其他工具
@mcp.tool()
故障排除
- 确保在中设置了所有API密钥
.env - 启动客户端之前,请验证服务器是否正在运行
- 如果连接失败,请检查端口可用性
