mcp-autotest

mcp-autotest

site icon
2025.04.09 1
Go自动化测试MCP 服务器测试开发效率
mcp-autotest 是一个简单的工具,用于通过定义包含请求和响应的 YAML 文件来测试 MCP 服务器。它支持语言无关的方式,适用于多种 MCP 服务器测试场景。
View on GitHub

Overview

基本能力

产品定位

mcp-autotest 是一个用于测试 MCP 服务器的工具,支持通过 YAML 文件定义测试用例,适用于开发者在开发过程中进行自动化测试。

核心功能

  1. YAML 测试用例定义:通过多文档 YAML 文件定义测试用例,每个用例包含输入和预期输出。
  2. 多种传输方式支持:默认支持 stdio 传输,也可通过 --url 参数指定 HTTP 传输。
  3. 动态匹配:支持使用正则表达式(!!re!!ere)匹配动态值,如时间戳、UUID 等。
  4. 多平台安装:支持通过 npm、Github Releases 或源码安装。

适用场景

  1. MCP 服务器开发:在开发过程中快速验证 MCP 服务器的功能。
  2. 自动化测试:集成到 CI/CD 流程中,确保服务器功能的稳定性。
  3. 动态值测试:测试包含动态值(如时间戳、UUID)的响应。

工具列表

  1. mcp-autotest:主工具,用于运行测试用例。
  2. 能力:支持 YAML 测试用例定义、多种传输方式、动态匹配。

常见问题解答

  1. 测试用例文件命名:文件名必须以 _test.yaml 结尾。
  2. 动态值匹配:使用 !!re!!ere 标签匹配动态值。
  3. HTTP 传输支持:目前仅支持 POST 方法,未来计划支持 GET

使用教程

使用依赖

  1. Node.js(npm 安装方式): bash npm install -g mcp-autotest
  2. Go(源码安装方式): bash go install github.com/strowk/mcp-autotest@latest

安装教程

  1. npm 安装bash npm install -g mcp-autotest
  2. Github Releases 安装
  3. releases 页面下载预编译的二进制文件并添加到 PATH。
  4. 源码安装bash go install github.com/strowk/mcp-autotest@latest

调试方式

  1. 运行测试用例bash mcp-autotest run path/to/tests/folder -- command-to-run-server [server-args]
  2. 示例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
  3. 查看输出
  4. 如果测试通过,输出 PASS
  5. 如果测试失败,输出详细的差异信息。

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。