# mcp-client **Repository Path**: zeus-maker/mcp-client ## Basic Information - **Project Name**: mcp-client - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-17 - **Last Updated**: 2025-04-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MCP Client 这是一个基于 MCP (Model Control Protocol) 的客户端应用程序,用于与各种大语言模型进行交互。该客户端支持通过命令行界面进行人机对话,并能够调用服务器端提供的各种工具和功能。 ## 功能特点 - 支持多种大语言模型接入(目前支持通义千问) - 支持通过命令行进行交互式对话 - 支持调用服务器端工具 - 支持异步操作 - 支持 Python 和 JavaScript 服务器脚本 - 支持 SSE (Server-Sent Events) 通信 ## 环境要求 - Python 3.7+ - 必要的 Python 包(见 requirements.txt) - 通义千问 API Key(需要在 .env 文件中配置) ## 安装 1. 克隆项目到本地 2. 安装依赖: ```bash pip install -r requirements.txt ``` 3. 配置环境变量: 创建 .env 文件并添加以下内容: ``` DASHSCOPE_API_KEY=your_api_key_here ``` ## 使用方法 ### 标准客户端 1. 启动客户端: ```bash python client.py ``` 2. 在交互式界面中输入查询内容 3. 输入 'quit' 退出程序 ### SSE 服务器和客户端 1. 启动 SSE 服务器: ```bash python server_sse.py ``` 2. 启动 SSE 客户端: ```bash python client_sse.py http://localhost:8000 ``` 3. 在交互式界面中输入查询内容,或使用特殊命令: - `!test` - 测试基本工具功能 - `!debug weather <城市名>` - 直接测试天气工具 - `quit` - 退出程序 ## 配置说明 - 模型配置:目前使用通义千问 qwen-max 模型 - 服务器脚本:支持 .py 或 .js 格式的服务器脚本 - 工具调用:支持服务器端定义的各种工具 ## 开发说明 主要文件说明: - client.py: 主程序文件,包含 MCPClient 类和主要逻辑 - server_sse.py: SSE 服务器实现,提供 SSE 端点和工具调用功能 - client_sse.py: SSE 客户端实现,通过 SSE 与服务器通信 - requirements.txt: 项目依赖文件 ## 内置工具 服务器内置了几个示例工具: 1. `hello_world` - 返回问候语,参数:name (string) 2. `add_numbers` - 将两个数字相加,参数:a (number), b (number) 3. `list_items` - 返回输入列表的信息,参数:items (array of strings) 4. `get_weather` - 获取指定城市的天气信息,参数:city (string),支持的城市包括:北京、上海、广州、深圳 ## 排障指南 如果客户端连接到服务器时遇到问题: 1. 确保服务器正在运行并且端口可访问 2. 检查日志以获取详细的错误信息 3. 如果 SSE 连接成功但工具调用失败,可以使用 `!test` 和 `!debug` 命令测试 ## 更新日志 ### 2024-05-01 - 改进了 SSE 客户端和服务器的稳定性 - 添加了更详细的日志记录和错误处理 ### 2024-03-21 - 将模型从 Anthropic Claude 更换为通义千问 - 添加了详细的项目文档 ## 注意事项 - 请确保 API Key 安全,不要将其提交到代码仓库 - 使用时注意遵守通义千问的使用条款和限制