项目简介
MockLoop MCP 是一个基于 Model Context Protocol (MCP) 构建的服务器端应用。它旨在帮助开发者和AI助手快速生成、运行和管理复杂的模拟 API 服务,用于开发、测试和集成。通过提供标准化的上下文信息和功能(如 API 规范的加载、模拟服务的生成与管理、请求日志的查询与分析),MockLoop MCP 赋能 LLM 客户端,使其能更有效地参与到 API 相关的开发工作流程中。
主要功能点
- API 模拟服务生成: 从 OpenAPI (Swagger) 规范生成可运行的 FastAPI 模拟服务器代码,支持 Docker 部署。
- 请求/响应日志记录与分析: 生成的模拟服务器包含详细日志记录功能,并提供高级日志查询、性能分析和智能洞察。
- 模拟服务器发现: 自动发现正在运行的 MockLoop 模拟服务器,并与已生成的配置进行匹配。
- 动态响应管理与场景: 允许在不重启服务器的情况下,实时更新 API 响应数据,并支持创建、切换和管理不同的测试场景。
- 会话和性能监控: 记录请求的会话信息,并提供性能指标(如响应时间 P95/P99)和流量模式分析。
安装步骤
-
确保你的系统已安装 Python 3.10+ 和 Pip。
-
打开终端或命令行工具。
-
运行以下命令安装 'mockloop-mcp' 包:
pip install mockloop-mcp -
可选:如需开发或使用全部功能,可以安装带额外依赖的版本:
pip install mockloop-mcp[all] -
验证安装是否成功:
mockloop-mcp --version
服务器配置
MockLoop MCP 作为 MCP 服务器运行,需要通过 MCP 客户端(如 Cline, Claude Desktop 等)进行配置。你需要将以下配置信息添加到你的 MCP 客户端的设置文件中(具体位置和格式请参考你的 MCP 客户端文档)。
通常,你需要配置一个 MCP 服务器条目,指定其名称、启动命令和传输类型。
- 服务器名称: 你可以在客户端中为其指定一个易于识别的名称,例如 'MockLoopLocal'。
- 启动命令 (command):
- 如果你是直接通过 'pip install mockloop-mcp' 安装到系统环境或当前激活的环境中,可以使用命令 'mockloop-mcp'。
- 如果你在特定的 Python 虚拟环境中安装,并且希望在该环境中运行服务器,启动命令应指向该虚拟环境中的 python 解释器,并使用 '-m' 模块方式运行:'/path/to/your/venv/bin/python -m mockloop_mcp'。
- 参数 (args): 通常,运行 MockLoop MCP 服务器不需要额外的命令行参数,配置为空列表 '[]' 即可。
- 传输类型 (transportType): 常用的传输类型是 'stdio'。
配置示例(JSON 格式片段,添加到客户端 'mcpServers' 对象下):
{ "MockLoopLocal": { "command": "mockloop-mcp", // 或 "/path/to/your/venv/bin/python" "args": [], // 如果使用虚拟环境的python,args 应为 ["-m", "mockloop_mcp"] "transportType": "stdio", // 其他可选配置如 disabled, timeout, autoApprove 等... } }
将上述信息转化为你的 MCP 客户端所需的 JSON 格式配置条目即可。
基本使用方法
配置完成后,你的 MCP 客户端将能够连接并与 MockLoop MCP 服务器通信。你可以通过客户端的界面或指令调用服务器暴露的 MCP 工具。
MockLoop MCP 主要提供了以下 MCP 工具供 LLM 客户端调用:
-
'generate_mock_api':
- 用途: 根据 OpenAPI/Swagger 规范生成一个模拟 API 服务器的代码。
- 关键参数: 'spec_url_or_path' (API 规范文件路径或 URL), 'output_dir_name' (可选,指定输出目录名称)。
- 调用示例: 客户端可能会提示你输入 API 规范的 URL 或路径。
-
'query_mock_logs':
- 用途: 查询和分析指定模拟服务器的请求日志。
- 关键参数: 'server_url' (模拟服务器的 URL,如 'http://localhost:8000'), 'limit', 'offset', 'method', 'path_pattern', 'time_from', 'time_to', 'include_admin', 'analyze' (是否进行日志分析)。
- 调用示例: 客户端可能会让你选择一个服务器 URL,然后输入过滤条件。
-
'discover_mock_servers':
- 用途: 发现当前运行的 MockLoop 模拟服务器和已生成的模拟配置。
- 关键参数: 'ports' (可选,指定扫描的端口列表), 'check_health' (是否检查服务器健康状态), 'include_generated' (是否包含未运行的已生成配置)。
- 调用示例: 直接调用此工具以获取当前模拟环境的状态概览。
-
'manage_mock_data':
- 用途: 动态管理模拟服务器的响应数据和测试场景。
- 关键参数: 'server_url' (模拟服务器的 URL), 'operation' (要执行的操作,如 "update_response", "create_scenario", "switch_scenario", "list_scenarios"), 以及根据操作所需的其他参数 ('endpoint_path', 'response_data', 'scenario_name', 'scenario_config')。
- 调用示例: 客户端可能会引导你选择一个服务器,然后选择一个操作(如“创建场景”),并要求提供相应的配置数据。
通过调用这些工具,LLM 客户端可以实现自动化地创建、测试和管理模拟 API 服务,从而加速开发和测试流程。
信息
分类
开发者工具