tarn-mcp MCP 服务说明文档
2026/9/7 19:37:03 网站建设 项目流程

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管理:自动捕获和发送Cookie

4.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 tarn

5. 接口定义

MCP工具功能描述
list列出将要运行的测试,不实际运行
validate验证测试文件语法和配置
run运行测试并生成报告
fix_plan将失败报告转换为可操作的建议

6. 快速开始

6.1 环境要求

  • 支持macOS(Intel + Apple Silicon)
  • 支持Linux(amd64 + arm64)
  • 支持Windows(amd64)
  • 无运行时依赖(单静态二进制)

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 # 规范化YAML,CI门控

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支持的内置函数

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询