mcpField
M
mcp-api-tester Tools & Interfaces

mcp-api-tester Tools & Interfaces

本地服务
github.com/TinyMurky开发工具073 周前更新

关于 mcp-api-tester Tools & Interfaces

mcp-api-tester Tools & Interfaces 描述了用于 LLM 辅助 API 测试的 MCP 工具,面向希望让 LLM 阅读 API 文档、发送 HTTP 请求并检查响应的开发者。

主要功能

  1. 01从 API 文档列出端点
  2. 02获取端点参数和结构
  3. 03发送 HTTP 请求并检查结果
  4. 04建议提供结构校验和测试日志

适用场景

  1. 01选择端点执行自动化测试
  2. 02根据文档结构检查响应
  3. 03记录结果并查看端点历史

MCP 相关

文档介绍了用于读取 OpenAPI 文档、列出和查询端点详情以及发送 HTTP 请求的 MCP 工具,并提供 JSON-RPC tools/call 请求示例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-api-tester 工具与接口

本文档概述了可让大模型(大型语言模型)执行自动化 API 测试的工具或接口。借助这些工具,大模型可以读取 API 文档,使用 net/http 选择并测试特定端点,并帮助开发者快速发现潜在问题。

核心工具(最小可行工具)

以下三个工具是最基础、最必要的接口,可让大模型执行最小可行的自动化测试:

  1. listAllAPIFromDocument

    • 用途:从文档中列出所有可用的 API(名称、URL、HTTP 方法等)。
    • 示例:返回值示例如下:
      [
        { "name": "getUser", "method": "GET", "url": "/users/{id}" },
        { "name": "createUser", "method": "POST", "url": "/users" }
        ...
      ]
      
    • 大模型使用场景:浏览可用的 API,并选择要测试的 API。
  2. getSingleAPIDetail

    • 用途:按名称或路径获取特定 API 的详细文档,例如:
      • 请求参数(查询参数、路径参数、请求体等)
      • 响应结构(架构)
      • 可能的状态码和错误定义
    • 示例:返回值示例如下:
      {
        "name": "getUser",
        "method": "GET",
        "url": "/users/{id}",
        "parameters": [
          { "in": "path", "name": "id", "type": "string", "required": true }
        ],
        "responses": {
          "200": {
            "description": "成功时返回用户数据",
            "schema": { ... }
          },
          "404": {
            "description": "未找到用户"
          }
        }
      }
      
    • 大模型使用场景:为特定端点生成测试参数和预期响应。
  3. callNetHTTP

    • 用途:让大模型发送真实的 HTTP 请求并接收结果(状态码、标头、请求体)。
    • 示例:
      {
        "request": {
          "method": "POST",
          "url": "/users",
          "headers": { "Content-Type": "application/json" },
          "body": { "name": "NewUser", "age": 30 }
        },
        "response": {
          "status": 201,
          "headers": { ... },
          "body": { "id": "123", "name": "NewUser", "age": 30 }
        }
      }
      
    • 大模型使用场景:执行测试调用,并将实际结果与预期结果进行比较。

进阶推荐工具(增强工具)

这些工具并非必需,但可以显著改善自动化测试、报告生成、环境设置等工作。

1. 响应验证/解析工具
  1. 架构验证

    • validateResponseWithSchema(responseBody, schemaInfo) -> (isValid, errorList)
    • 将返回的 JSON 请求体与文档中记录的架构进行比较,以检查字段一致性、数据类型和必填字段。
  2. JSON 解析

    • parseJSON(responseBody) -> (parsedObject)
    • 让大模型能够方便地读取和检查响应中的特定字段(例如,确认某些字段不为空)。
2. 测试执行上下文/日志工具
  1. 测试结果记录/存储

    • storeTestResult(testCase, response, passOrFail, errorMessage)
    • 让大模型记录每个测试用例的执行详情、错误和结果,便于汇总报告。
  2. 历史测试结果

    • getTestHistory(apiName or endpoint) -> (historyData)
    • 让大模型(或其他系统)查询同一端点的历史测试结果,并了解随时间推移出现的回归或变化。
3. 环境设置 / 管理工具
  1. 身份验证 / 凭据设置

    • getAuthToken(username, password) -> token
    • 有些 API 需要使用令牌或 cookie 进行身份验证。大模型可能需要先调用此工具来获取正确的凭据。
  2. 重置 / 初始化测试数据

    • resetTestData() 或 seedTestData()
    • 确保数据库或系统状态在测试开始前处于已知的默认状态。
4. 模糊 / 边界情况测试工具
  • generateFuzzyInput(fieldType, constraints)
  • 返回极端或异常的输入(例如负值、极大值、随机字符、特殊符号),用于压力测试和安全检查。

推荐的开发流程

  1. 集成最小可行工具

    1. 在系统中实现 listAllAPIFromDocument、getSingleAPIDetail 和 callNetHTTP,以便大模型可以:
      • 获取可用端点列表
      • 获取指定 API 的详细规范
      • 发起真实的 HTTP 请求
  2. 连接大模型

    • 允许大模型使用上述三个工具。它可以列出可能的端点,获取每个端点的详细信息,生成测试场景,最后通过 callNetHTTP 执行测试。
  3. 添加验证工具(响应 / 架构)

    • 提供实用工具,让大模型验证返回的数据是否符合文档中规定的架构和预期。
  4. 扩展测试日志记录和环境管理

    • 提供用于存储测试结果、查询历史测试、重置环境和获取身份验证令牌的接口。
    • 大模型可以调用这些工具,以维护一致的状态和测试过程文档。
  5. 模糊 / 边界情况测试

    • 集成用于生成恶意或极端值的工具,或让大模型自动生成这些值,以进行深入的压力测试或安全测试。

重要说明

  • 安全与权限

    • 大模型发起 API 调用时,请确保这些测试在安全环境(开发环境或沙箱)中运行,且不会危及敏感数据。
  • 大模型生成内容的准确性

    • 大模型可能会生成无效或不正确的参数。接口中可能需要额外的验证或错误处理。
  • 无法完全替代传统测试

    • 大模型虽然可以快速生成边界和异常测试用例,但传统单元测试对于全面覆盖仍然不可或缺。

测试

读取 OpenAPI 文档

curl -X POST --data '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "ReadOpenAPIDocument",
  "arguments": {
    "openAPIPath": "/absolute/path/to/your/openAPI/file"
  }
}
}' http://localhost:8000/message?sessionId=9fa4fc8c-1799-4955-a0bb-4881258f13f9

列出文档中的所有 API

curl -X POST --data '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "ListAllAPIFromDocument"
}
}' http://localhost:8000/message?sessionId=9fa4fc8c-1799-4955-a0bb-4881258f13f9

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。