SSE客户端-服务器系统

一个基于服务器发送事件(SSE)的客户端-服务器系统,通过Gemini AI实现自然语言处理,支持实时通信和多种工具交互。

  • by 147MahirJawad
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 147mahirjawad/mcp-server-client-sse

使用说明

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 -用于网络搜索功能

安装

  1. 克隆存储库:

    git clone https://github.com/147MahirJawad/mcp-server-client-sse.git
    cd mcp-sse-system
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 创建一个 .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”退出

可用工具

  1. 网页搜索:使用Tavily API执行web搜索

    • 示例:“搜索最新的AI新闻”
  2. 运行命令:执行工作区目录中的shell命令

    • 示例:“列出工作区中的文件”
  3. 添加数字:执行基本算术

    • 例如:“123加456等于多少?”

建筑

Client (Gemini AI) ↔ SSE Transport ↔ MCP Server ↔ Tools
  • 客户端:使用Gemini AI来解释用户查询和选择工具
  • SSE 运输:处理实时通信
  • MCP服务器:管理工具执行和响应
  • 工具:各种功能端点

配置

  • 可以在中修改工作区目录 server_sse.py (默认工作空间)
  • 通过使用装饰功能可以添加其他工具 @mcp.tool()

故障排除

  • 确保在中设置了所有API密钥 .env
  • 启动客户端之前,请验证服务器是否正在运行
  • 如果连接失败,请检查端口可用性

许可证

MIT许可证