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 分