mcpField
A
api-test-mcp

api-test-mcp

本地服务
github.com/thisis-najeeb开发工具08 周前更新

关于 api-test-mcp

api-test-mcp 是面向 API 开发者的 MCP 服务,可实际调用 API 并核对响应是否符合 OpenAPI 规范。它支持从 URL 或本地文件加载 OpenAPI/Swagger 3.x 规范,并提供端点测试、健康检查和规范差异比较。

主要功能

  1. 01加载并解析 API 规范
  2. 02调用真实 API 端点
  3. 03按 JSON Schema 校验响应
  4. 04批量测试与健康检查
  5. 05比较规范版本差异
  6. 06支持认证预设

适用场景

  1. 01检查实际响应是否符合 API 规范
  2. 02对无需参数的 GET 端点运行契约测试
  3. 03检查端点可达性与延迟
  4. 04发现 API 规范变更中的潜在破坏性改动

MCP 相关

MCP 服务向 Claude Code、Cursor、Windsurf 等 MCP 客户端和兼容的 AI Agent 提供 API 规范加载、端点调用、响应校验与测试工具。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"thisis-najeeb-api-test": {
"command": "npx",
"args": [
"-y",
"api-test-mcp"
]
}
}
}
启动命令npx -y api-test-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmapi-test-mcp1.0.2

工具

8

收录的工具列表 · 更新于 3 周前

参数类型必填说明
sourcestring是OpenAPI/Swagger 文档的 URL 或本地文件路径,例如 https://petstore3.swagger.io/api/v3/openapi.json

详细介绍

api-test-mcp

api-test-mcp — 调用真实 API,并根据规范承诺检查结果

CI npm version npm downloads License: MIT

一个 MCP 服务,可让 Claude Code、Cursor、Windsurf 或任何兼容 MCP 的 AI Agent 实际调用你的 API,并根据 OpenAPI 规范承诺的内容检查响应——而不是只读文档后进行猜测。

无需 API 密钥、无需配置、无需费用。适用于任何 OpenAPI/Swagger 3.x 规范(URL 或本地文件)。

为什么开发这个项目

AI Agent 很擅长阅读 OpenAPI 规范并据此编写代码,但它们无法确定真实 API 的行为是否与规范一致。这个工具让 Agent(或你在普通聊天中)能够实际验证:调用在线端点,并检查响应是否符合文档中记录的架构。

安装

git clone <this repo>
cd api-test-mcp
npm install

将其添加到 MCP 客户端配置中,例如 Claude Code:

claude mcp add api-test -- node /absolute/path/to/api-test-mcp/src/index.js

或者在 claude_desktop_config.json / Cursor 的 MCP 设置中添加:

{
  "mcpServers": {
    "api-test": {
      "command": "node",
      "args": ["/absolute/path/to/api-test-mcp/src/index.js"]
    }
  }
}

工具

工具功能
load_api_spec从 URL 或本地路径加载并解析 OpenAPI/Swagger 规范。返回 API 标题、服务器以及所有已记录的端点。请先调用此工具。
list_endpoints列出当前已加载的所有端点。
call_endpoint对已记录的端点发起真实 HTTP 调用。返回真实的状态码、标头和响应正文。
validate_response根据指定方法 + 路径 + 状态码对应的 JSON 架构检查响应正文。
test_endpoint一步完成 call_endpoint + validate_response。主要工具——“这个端点的实际行为是否符合文档?”
run_all_tests尽力对所有无需必填参数的 GET 端点执行契约测试。传入 includeMutating: true,还会根据架构自动生成示例参数/正文,并尝试 POST/PUT/PATCH(默认关闭,因为可能会写入真实数据)。仍需手动输入的端点会列为已跳过,并附上原因。
check_health一次性对一组端点(或已加载规范中所有无需参数的 GET 端点)执行 ping,报告可达性和延迟。适用于演示前检查或作为 CI 步骤。
diff_api_specs比较两个版本的规范(例如旧标签与 main),并标记可能导致破坏性变更的内容——已移除的端点、新增的必填字段、类型变更、已移除的枚举值——以及安全的增量变更。

以上所有工具都支持可选的 auth 预设(bearer、在标头或查询参数中传递的 apiKey,或 basic),因此使用经过身份验证的 API 时无需手动构建原始标头;也支持可选的 timeoutMs。

示例(Agent 对话示例)

你: 加载我的 API 规范 https://api.example.com/openapi.json,并检查 /users/{id} 是否确实返回了文档中记录的内容。

Agent: (调用 load_api_spec,然后使用真实用户 ID 调用 test_endpoint) → “已调用——返回了 200,但响应缺少规范标记为必填的 created_at 字段,而且文档将 role 定义为包含 3 个值的枚举,但 API 返回了 "superadmin",它并不在枚举值中。”

对于需要身份验证的 API:

你: 使用这个 bearer 令牌,对我的预发布 API 执行完整的契约测试,并包含写入端点。

Agent: (使用 { auth: { type: "bearer", token: "..." }, includeMutating: true } 调用 run_all_tests) → “12 项通过,2 项失败,3 项跳过。POST /orders 未通过架构验证——total_cents 返回的是字符串,而不是规范中定义的整数。”

使用真实线上流量进行测试

npm test 会运行三项真实且未使用模拟数据的检查,不会用伪装成服务端的固定测试数据:

  • test/smoke-test.js — 加载规范,对线上公共 API 发起真实 HTTPS 调用,验证真实响应,并故意输入错误响应,以确认验证确实能捕获不匹配(而不只是检查成功路径)。
  • test/new-features-test.js — 将身份验证预设应用于真实的外发请求 URL,测试真实的网络超时和中止,进行真实的健康检查调用,并对规范差异逻辑进行确定性的离线测试。
  • test/mcp-protocol-test.js — 将实际的 MCP 服务作为子进程启动,并通过真实的 MCP 协议与其通信,方式与 Claude Code 或 Cursor 相同。

CI 会在每次推送或 PR 时,针对 Node 18、20 和 22 运行完整测试套件。

路线图

v1.0 已提供契约测试、身份验证预设、为变更类端点自动生成示例数据、规范差异比较和健康检查。接下来的计划包括:

  • YAML 输出模式 / 用于非 MCP 场景的小型 CLI 封装
  • 为 run_all_tests 和 check_health 中不稳定的端点配置重试和退避
  • 支持模式的示例生成(遵循 JSON Schema 的 pattern,而不是使用占位字符串)
  • 持久化健康检查历史记录(目前仅支持单次检查)

欢迎贡献 — 请参阅 CONTRIBUTING.md。如果遇到此项目无法妥善处理的端点类型或规范问题,请提交 issue。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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