
mcp-autotest

2025.04.09
1
Go自动化测试MCP 服务器测试开发效率
mcp-autotest 是一个简单的工具,用于通过定义包含请求和响应的 YAML 文件来测试 MCP 服务器。它支持语言无关的方式,适用于多种 MCP 服务器测试场景。
View on GitHub
Overview
基本能力
产品定位
mcp-autotest 是一个用于测试 MCP 服务器的工具,支持通过 YAML 文件定义测试用例,适用于开发者在开发过程中进行自动化测试。
核心功能
- YAML 测试用例定义:通过多文档 YAML 文件定义测试用例,每个用例包含输入和预期输出。
- 多种传输方式支持:默认支持 stdio 传输,也可通过
--url
参数指定 HTTP 传输。 - 动态匹配:支持使用正则表达式(
!!re
和!!ere
)匹配动态值,如时间戳、UUID 等。 - 多平台安装:支持通过 npm、Github Releases 或源码安装。
适用场景
- MCP 服务器开发:在开发过程中快速验证 MCP 服务器的功能。
- 自动化测试:集成到 CI/CD 流程中,确保服务器功能的稳定性。
- 动态值测试:测试包含动态值(如时间戳、UUID)的响应。
工具列表
- mcp-autotest:主工具,用于运行测试用例。
- 能力:支持 YAML 测试用例定义、多种传输方式、动态匹配。
常见问题解答
- 测试用例文件命名:文件名必须以
_test.yaml
结尾。 - 动态值匹配:使用
!!re
或!!ere
标签匹配动态值。 - HTTP 传输支持:目前仅支持
POST
方法,未来计划支持GET
。
使用教程
使用依赖
- Node.js(npm 安装方式):
bash npm install -g mcp-autotest
- Go(源码安装方式):
bash go install github.com/strowk/mcp-autotest@latest
安装教程
- npm 安装:
bash npm install -g mcp-autotest
- Github Releases 安装:
- 从 releases 页面下载预编译的二进制文件并添加到 PATH。
- 源码安装:
bash go install github.com/strowk/mcp-autotest@latest
调试方式
- 运行测试用例:
bash mcp-autotest run path/to/tests/folder -- command-to-run-server [server-args]
- 示例:
bash # 使用 stdio 传输测试 Go MCP 服务器 mcp-autotest run testdata go run main.go # 使用 HTTP 传输测试 Postgres MCP 服务器 mcp-autotest run --url http://localhost:8080/mcp testdata go run main.go
- 查看输出:
- 如果测试通过,输出
PASS
。 - 如果测试失败,输出详细的差异信息。