tarn-mcp MCP 服务说明文档

发布时间:2026/9/7 19:37:05
tarn-mcp MCP 服务说明文档 1. 服务概述一句话简介CLI优先的API测试工具用Rust编写支持结构化失败输出专为AI代理设计服务名称tarn-mcp版本号最新版本开发者/提供方NazarKalytiuk协议类型MCP (Model Context Protocol)2. 核心功能列出该MCP服务提供的主要功能点结构化失败输出每个失败都带有稳定的类别、错误代码和修复提示MCP原生支持暴露list、validate、run、fix_plan作为结构化工具YAML测试格式使用.tarn.yaml文件LLM已知的格式单静态二进制curl | sh安装无运行时依赖REST GraphQL支持支持两种API类型高级功能captures、cookies、multipart、includes、polling、Lua脚本、并行执行7种输出格式支持多种输出格式包括JSON失败优先循环tarn failures tarn inspect工作流重新运行失败tarn rerun --failed只重试失败的测试差异比较tarn diff比较运行结果3. 使用场景描述该服务适合在什么情况下使用AI代理Claude Code、Cursor、Windsurf、opencode需要编写和运行API测试需要结构化的API测试失败输出便于AI理解和修复CI/CD流水线中的API测试需要快速编写和执行API测试的场景需要GraphQL API测试需要复杂的API测试流程认证、捕获、轮询等4. 接入方式4.1 服务端点CLI工具通过命令行执行tarn命令MCP Server通过stdio协议与MCP客户端通信4.2 认证与权限Bearer认证支持Bearer Token认证Basic认证支持Basic Auth认证Cookie管理自动捕获和发送Cookie4.3 数据格式测试文件使用YAML格式.tarn.yaml输出支持JSON等7种格式4.4 服务器配置安装tarn# macOS / Linux curl -fsSL https://raw.githubusercontent.com/NazarKalytiuk/tarn/main/install.sh | sh # from source cargo install --git https://github.com/NazarKalytiuk/tarn.git --bin tarn5. 接口定义MCP工具功能描述list列出将要运行的测试不实际运行validate验证测试文件语法和配置run运行测试并生成报告fix_plan将失败报告转换为可操作的建议6. 快速开始6.1 环境要求支持macOSIntel Apple Silicon支持Linuxamd64 arm64支持Windowsamd64无运行时依赖单静态二进制6.2 示例代码快速开始tarn init # 创建tests/目录和tarn.env.yaml配置文件 # 编辑tarn.env.yaml设置base_url tarn run # 运行tests/目录下的所有.tarn.yaml文件最小测试示例# tests/health.tarn.yaml name: Health check steps: - name: GET /health request: method: GET url: {{ env.base_url }}/health assert: status: 200失败调试流程tarn validate path # 运行前验证语法/配置 tarn run path # 写入.tarn/runs/run_id/ tarn failures # 根因分组级联失败已折叠 tarn inspect last FILE::TEST::STEP # 查看单个失败的完整上下文 # 修复测试或应用代码 tarn rerun --failed # 只重试失败的(文件,测试)对 tarn diff prev last # 确认已修复/新增/持续失败常用命令tarn run --format json --json-mode compact # 结构化输出用于代理和CI tarn run --env staging # 使用命名环境 tarn run --only-failed # 静默处理通过的测试 tarn run --watch # 文件变化时重新运行 tarn run --parallel # 并行运行文件 tarn list --tag smoke # 列出将要运行的测试 tarn fmt --check # 规范化YAMLCI门控7. 注意事项结构化失败每个失败都有failure_category、error_code和修复提示AI代理可以基于分类而非正则表达式分支失败优先循环使用tarn failures tarn inspect工作流避免阅读兆字节级的完整报告级联失败折叠一个失败步骤导致的5个下游跳过会显示为一个条目而非6个重新运行失败tarn rerun --failed只重试失败的测试节省时间差异比较tarn diff prev last将失败指纹分为new/fixed/persistent三类安全执行使用spawn而非shell执行防止shell注入输出限制所有工具都有输出上限防止上下文溢出可复现运行设置TARN_FAKER_SEED可冻结所有RNG支持的内置函数