README
🚀 Hoverfly MCP 服务器
Hoverfly MCP 服务器是一个基于 Spring Boot 的 模型上下文协议(MCP) 服务器,它将 Hoverfly 作为可编程工具,供 Cursor、Claude Desktop、GitHub Copilot 等支持 MCP 的 AI 助手使用。该服务器能够对第三方 API 进行动态模拟,从而在外部服务不可用时,保障开发和测试工作的顺利进行。
🚀 快速开始
本项目可帮助你使用 Hoverfly 作为可编程工具,为支持 MCP 的 AI 助手提供第三方 API 的动态模拟功能,助力开发和测试工作。
📦 安装指南
⚠️ 重要提示
以下的先决条件和构建步骤仅适用于想要贡献代码或从源代码进行构建的情况。对于大多数用户来说,使用 Docker 镜像就足够了。
先决条件
- Java 17
- Maven 3.6+
构建与运行
git clone <repository-url>
cd hoverfly-mcp-server
mvn clean package
java -jar target/hoverfly-mcp-server-<version>.jar
请将
<version>替换为你构建的 JAR 文件的实际版本。
⚙️ 配置为 MCP 服务器(使用 Docker)
要将此服务器与支持模型上下文协议(MCP)的 AI 助手配合使用,请在你的 .mcp.json 或 mcp.config.json 中添加以下内容:
{
"mcpServers": {
"hoverfly-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-p 8500:8500",
"-p 8888:8888",
"-v /path/to/your/data:/opt/hoverfly-mcp/simulation-data",
"docker.io/kapish88/hoverfly-mcp-server"
]
}
}
}
8500:Hoverfly 代理端口(模拟服务)8888:Hoverfly 管理端口(模拟控制 API)-v /path/to/your/data:/opt/hoverfly-mcp/simulation-data:挂载一个卷以实现模拟数据的持久化
请确保已安装 Docker。如果本地没有该镜像,它将自动拉取。
🔧 暴露的 MCP 工具
| 工具名称 | 详情 |
| ---- | ---- |
| get_hoverfly_status | 检查 Hoverfly 是否正在运行 |
| start_hoverfly_web_server | 以模拟模式启动 Hoverfly 作为 Web 服务器。默认情况下,如果 /opt/hoverfly-mcp/simulation-data 中有最新的模拟文件,它将自动加载,除非禁用了自动加载功能。 |
| stop_hoverfly_server | 停止 Hoverfly 并清除模拟数据 |
| fetch_hoverfly_version | 返回 Hoverfly 的版本 |
| list_hoverfly_mocks | 列出所有活动的模拟 API(请求 - 响应对) |
| add_hoverfly_mock | 使用 JSON 请求 - 响应对定义添加一个模拟 API |
| clear_hoverfly_mocks | 删除所有现有的模拟 API |
| show_hoverfly_endpoints_info | 返回 Hoverfly 的关键端点和示例用法 |
| get_hoverfly_documentation | 返回特定主题的 Hoverfly 文档 |
| suggest_hoverfly_matchers | 为给定的请求 - 响应对 JSON 建议匹配器选项 |
| get_hoverfly_debug_logs | 获取最近的 Hoverfly 调试日志(可选择限制日志数量) |
| download_hoverfly_simulation | 将当前模拟数据下载到 /opt/hoverfly-mcp/simulation-data(持久化模拟目录) |
这些工具可以由 AI 助手通过 AI 助手主机以编程方式调用。
💾 模拟数据持久化
服务器通过固定的挂载卷支持模拟数据的持久化:
启动时自动加载
使用 start_hoverfly_web_server 启动 Hoverfly 时,服务器默认会:
- 从
/opt/hoverfly-mcp/simulation-data加载最新的模拟文件(如果可用) - 如果未找到模拟文件,则以干净的状态启动
你可以通过设置相应的参数来禁用自动加载功能。
持久化数据和卷挂载
为了在重启后保留模拟数据,你 必须 将主机目录挂载到容器内的 /opt/hoverfly-mcp/simulation-data。
这是唯一支持持久化数据的位置。
⚠️ 重要提示
主机目录必须对容器用户具有可写权限。
只有在你显式调用下载工具时,模拟文件才会保存到该目录。
🤝 贡献代码
- Fork 此仓库
- 创建一个功能分支
- 提交拉取请求
📄 许可证
有关许可条款,请参阅 LICENSE 文件。
微信扫一扫