SSE客户端-服务器通信工具

一个基于Python的MCP客户端和服务器实现,使用服务器发送事件(SSE)进行通信,支持异步处理和多种MCP工具集成。

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

使用说明

MCP SSE客户端服务器

带有服务器发送事件(SSE)的MCP客户端和服务器的简单Python实现。

特性

  • 客户端和服务器之间基于SSE的通信
  • 与MCP平台工具(google_search、get_web_content)集成
  • 使用Python的asyncio异步处理查询
  • 全面的日志记录和错误处理
  • OpenAI API集成,可回退到OpenRouter
  • 环境变量配置支持

需求

  • Python 3.10+
  • pyproject.toml中列出的依赖关系:
    • httpx用于HTTP请求
    • 用于环境变量的python dotenv
    • openai用于LLM集成
    • mcp[cli]用于mcp平台集成

安装

  1. 克隆此存储库
  2. 创建并激活虚拟环境:
    uv venv
    # On Windows
    .venv\Scripts\activate
    # On Unix/macOS
    source .venv/bin/activate
    
  3. 安装依赖项:
    uv sync .
    

配置

创建一个 .env 使用API密钥在项目根目录中创建文件:

# Required - use either OPENAI_API_KEY or OPENROUTER_API_KEY
OPENAI_API_KEY=your_api_key
OPENROUTER_API_KEY=your_api_key

# Optional - specify custom base URL
OPENAI_BASE_URL=https://your-custom-url
OPENROUTER_BASE_URL=https://your-custom-url

用法

首先启动mcp服务器,该服务器在8081端口上运行。 然后启动mcp客户端。

MCP服务器设置

uv run mcp-server-search.py

MCP客户端使用情况

uv run mcp-client-sse.py --help
usage: mcp-client-sse.py [-h] [--server SERVER] [--verbose] [--quiet]

Run MCP SSE-based client

options:
  -h, --help       show this help message and exit
  --server SERVER  MCP SSE server URL (default: http://localhost:8081/sse)
  --verbose        Enable verbose logging mode (DEBUG level)
  --quiet          Set logging to WARNING level (overrides --verbose)

uv run mcp-client-sse.py --server URL_ADDRESS-server-url:8081/sse --verbose

可用的MCP工具

客户端支持以下MCP工具:

  • google_search:执行网络搜索
  • get_web_content:获取完整网页内容
  • get_weekday_from_date:日期实用程序
  • get_weather_for_date:天气信息

发展

日志记录

客户端生成登录 mcp-client.log 带有时间戳和详细信息。

测试

待执行。..

贡献

欢迎拉取请求。对于重大更改,请先打开一个问题来讨论拟议的更改。

许可证

麻省理工学院