Api Test Mcp

io.github.thisis-najeeb由 GitHub 账号 thisis-najeeb 发布v1.0.2更新于 Oct 24, 2026

Call the real API and check the response against your OpenAPI spec.

概览

AI 生成的概览

让助手调用真实 API 端点,并按 OpenAPI/Swagger 规范校验响应。

可以做什么
可从 URL 或本地文件加载并解引用 OpenAPI/Swagger 3.x 规范,列出其中记录的端点。工具会发起真实调用并返回实际状态码、响应头和响应体,按文档中的 JSON schema 校验响应,也可将调用与校验合并为一步测试。还支持对无需参数的 GET 端点做尽力而为的契约测试、探测端点可达性与延迟,以及对比两个规范版本以标记可能的破坏性变更。
适用场景
适合让助手验证线上或预发 API 是否真的符合规范描述,而不只是阅读文档。也适用于演示前的健康检查、CI 契约检查,以及发布前比较规范版本。
运行要求
以本地 Node.js 进程运行,通过 npm 包 api-test-mcp 安装(或克隆后用 npm 安装)。未声明需要 API 密钥或环境变量。需要网络访问目标 API 及规范 URL;需要认证的 API 可在每次调用时提供可选的认证预设(bearer、请求头或查询参数中的 apiKey、basic)。
安装前请注意
该服务器会向你指定的 API 发起真实 HTTP 调用,响应及发送的数据都来自你的实际环境。设置 includeMutating 时 run_all_tests 会尝试 POST/PUT/PATCH,可能写入真实数据,该选项默认关闭。bearer 令牌或 API 密钥等凭据按调用传入,避免在提示词或日志中暴露生产密钥。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Api Test Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

api-test-mcp

[api-test-mcp — call the real API, check it against what the spec promises]

[CI] [npm version] [npm downloads] [License: MIT]

An MCP server that gives Claude Code, Cursor, Windsurf, or any MCP-compatible AI agent the ability to actually call your API and check the response against what your OpenAPI spec promises — not just read the docs and guess.

No API keys, no config, no cost. Works with any OpenAPI/Swagger 3.x spec (URL or local file).

Why this exists

AI agents are great at reading an OpenAPI spec and writing code against it — but they're guessing about whether the real API actually behaves the way the spec says. This gives an agent (or you, in a normal chat) a way to find out for real: call the live endpoint, and check whether the response actually matches the documented schema.

Install

bash
git clone <this repo>cd api-test-mcpnpm install

Add it to your MCP client config, e.g. for Claude Code:

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

Or in claude_desktop_config.json / Cursor's MCP settings:

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

Tools

ToolWhat it does
load_api_specLoad and dereference an OpenAPI/Swagger spec from a URL or local path. Returns the API title, servers, and every documented endpoint. Call this first.
list_endpointsList every endpoint currently loaded.
call_endpointMake a real HTTP call to a documented endpoint. Returns the real status, headers, and body.
validate_responseCheck a response body against the JSON schema documented for a given method + path + status.
test_endpointcall_endpoint + validate_response in one step. The main tool — "does this endpoint actually work as documented?"
run_all_testsBest-effort contract-test pass across every GET endpoint that needs no required parameters. Pass includeMutating: true to also auto-generate example params/bodies from the schema and attempt POST/PUT/PATCH (off by default — it can write real data). Endpoints still needing manual input are listed as skipped, with the reason.
check_healthOne-shot ping across a set of endpoints (or every parameter-free GET in the loaded spec): reports reachability and latency. Handy before a demo or as a CI step.
diff_api_specsCompare two versions of a spec (e.g. an old tag vs. main) and flag likely-breaking changes — removed endpoints, newly-required fields, type changes, removed enum values — versus safe additive changes.

All of the above accept an optional auth preset (bearer, apiKey in a header or query param, or basic) so authenticated APIs aren't limited to hand-building raw headers, and an optional timeoutMs.

Example (what an agent conversation looks like)

You: Load my API spec at https://api.example.com/openapi.json and check whether /users/{id} actually returns what it documents.

Agent: (calls load_api_spec, then test_endpoint with a real user id) → "Called it — got a 200, but the response is missing the created_at field your spec marks as required, and role is documented as an enum of 3 values but the API returned "superadmin", which isn't one of them."

For an authenticated API:

You: Run a full contract-test pass against my staging API using this bearer token, and include the write endpoints.

Agent: (calls run_all_tests with { auth: { type: "bearer", token: "..." }, includeMutating: true }) → "12 passed, 2 failed, 3 skipped. POST /orders failed schema validation — total_cents came back as a string, not the integer your spec documents."

Tested against real live traffic

npm test runs three real, unmocked checks, no canned fixtures pretending to be a server:

  • test/smoke-test.js — loads a spec, makes real HTTPS calls to a live public API, validates the real response, and deliberately feeds in a broken response to confirm validation actually catches mismatches (not just a happy-path check).
  • test/new-features-test.js — auth presets applied to a real outgoing request URL, a real network timeout/abort, a real health-check call, and deterministic offline tests for the spec-diff logic.
  • test/mcp-protocol-test.js — spawns the actual MCP server as a subprocess and talks to it over the real MCP protocol, the same way Claude Code or Cursor would.

CI runs the full suite on every push/PR against Node 18, 20, and 22.

Roadmap

v1.0 shipped contract testing, auth presets, auto-generated example data for mutating endpoints, spec diffing, and health checks. Ideas for what's next:

  • YAML output mode / a small CLI wrapper for non-MCP use
  • Configurable retry/backoff for flaky endpoints in run_all_tests and check_health
  • Pattern-aware example generation (respect JSON Schema pattern instead of a placeholder string)
  • Persisted health-check history (currently one-shot only)

Contributions welcome — see CONTRIBUTING.md. See an endpoint type or spec quirk this doesn't handle well? Open an issue.

License

MIT

来源:README.md,提交 385e47f

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v1.0.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分