关于 MCP CLI Client
MCP CLI Client 是用于连接本地或远程 MCP 服务的 Python 命令行工具和模块,支持 STDIO、SSE、JSON-RPC 请求以及交互式操作。
主要功能
- 01通过 STDIO 连接本地服务
- 02通过 SSE 连接远程服务
- 03发送 JSON-RPC 请求
- 04支持交互和命令行模式
- 05可作为 Python 模块使用
适用场景
- 01向本地 MCP 服务发送请求
- 02通过 SSE 查询远程服务
- 03在 Python 项目中集成 MCP 连接
MCP 相关
作为 MCP 客户端,它通过 STDIO 连接本地服务,或通过 SSE 连接远程服务,并发送 JSON-RPC 请求。支持交互式和命令行操作。
详细介绍
MCP 命令行客户端
用于通过本地连接(STDIO)和远程连接(SSE)与 MCP(Machine Communication Protocol)服务交互的命令行界面。
概述
MCP 命令行客户端允许用户:
- 通过 STDIO 连接到本地 MCP 服务
- 通过 SSE(Server-Sent Events)连接到远程 MCP 服务
- 向连接的服务发送 JSON-RPC 请求
- 在命令行模式和交互模式中工作
- 作为 Python 模块集成到其他项目中
安装
-
克隆仓库:
git clone https://github.com/Fbeunder/MCP_CLI_CLIENT.git cd MCP_CLI_CLIENT -
创建虚拟环境(可选但推荐):
python -m venv venv source venv/bin/activate # Op Windows: venv\Scripts\activate -
安装所需包:
pip install -r requirements.txt -
配置应用程序:
cp .env.example .env # Bewerk .env met je eigen configuratie -
安装为 Python 包:
pip install -e .
作为命令行工具使用
基本命令
# Verbinden met een lokale MCP-server en een verzoek uitvoeren
python main.py --local --method methodName --params '{"param1": "value1"}'
# Verbinden met een remote MCP-server en een verzoek uitvoeren
python main.py --remote --method methodName --params '{"param1": "value1"}'
# Starten in interactieve modus met een lokale server
python main.py --local
交互模式
在交互模式中,你可以输入以下格式的命令:
methodName {"param1": "value1", "param2": "value2"}
输入 exit、quit 或 q 退出交互模式。
作为 Python 模块使用
MCP 命令行客户端也可以作为 Python 模块在你的项目中使用:
from mcp_cli_client import MCPClient
# Maak een nieuwe client instantie
client = MCPClient()
# Verbind met een lokale MCP server
client.connect_stdio("path/to/local/mcp/server")
# OF verbind met een remote server
# client.connect_sse("https://mcp-server.example.com/events")
# Stuur verzoeken
response = client.send_request("getVersion")
print(response)
# Stuur verzoeken met parameters
response = client.send_request("echo", {"message": "Hello, MCP!"})
print(response)
# Sluit de verbinding
client.close()
作为模块安装
要将 MCP 命令行客户端作为模块安装到其他项目中:
# Vanuit de repo directory
pip install -e .
# OF direct vanaf GitHub
pip install git+https://github.com/Fbeunder/MCP_CLI_CLIENT.git
扩展示例
查看 examples/module_example.py 获取作为模块使用的扩展示例。
配置
配置从 .env 文件加载,选项如下:
MCP_SERVER_URL:远程 SSE 服务的 URLMCP_LOCAL_COMMAND:通过 STDIO 启动本地服务的命令API_KEY:用于身份验证的可选 API 密钥LOG_LEVEL:日志级别(DEBUG、INFO、ERROR)
测试
该项目包含全面的测试套件,包括单元测试和集成测试。
运行测试
-
安装测试依赖项:
pip install -r requirements.txt -
运行所有测试:
pytest -
运行测试并生成覆盖率报告:
pytest --cov=src
测试结构
tests/test_mcp_client.py:MCPClient 类的单元测试tests/test_mcp_cli.py:命令行界面的单元测试tests/test_integration.py:测试各组件协同工作的集成测试
API 文档
MCPClient
MCPClient 类提供以下方法:
connect_stdio(command=None):通过 STDIO 连接到本地 MCP 服务connect_sse(url=None):通过 SSE 连接到远程 MCP 服务send_request(method, params=None):发送 JSON-RPC 请求close():关闭连接
异常
ConfigurationError:配置加载或处理错误ConnectionError:建立连接错误CommunicationError:与 MCP 服务通信错误
许可证
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。