Tools reference

list_endpoints, get_endpoint, lint_spec, diff_specs, and contract_test: inputs, outputs, and example responses.

list_endpoints

Lists every endpoint in the catalog (method, path, and summary), without request/response detail. Use it to discover what exists before calling get_endpoint.

Optional filter parameter: a case-insensitive substring match against path, summary, or tags.

text
GET /
POST /auth/register — Register
POST /auth/login — Login
GET /auth/profile — Get profile

get_endpoint

Returns the full Copy for AI-format text for one endpoint (Purpose, Request, Parameters, Validation, Success Response, and Error Responses), given its method and path.

text
Endpoint: POST /auth/login

Purpose:
Login

Request:
{
  "email": "string",
  "password": "string"
}

Validation:
- email must be valid

Success Response (201):
{
  "success": "boolean",
  "data": { "access_token": "string", "user": { "id": "string", "role": "string" } }
}

Error Responses:
400 Bad Request

lint_spec

Checks the loaded catalog for spec-quality issues: missing summary/description, missing tags, missing 4xx/5xx responses, undocumented response descriptions, and duplicate operation IDs.

text
✖ POST /auth/login: [missing-description] no description declared
✖ POST /auth/login: [no-error-response] no 4xx/5xx response declared

diff_specs

Compares the loaded catalog against another spec (given as path for a local file or url) and reports added/removed endpoints plus breaking vs. informational field changes (new required params, a requestBody turned required, a removed response code).

text
+ POST /users
- DELETE /users/{id}
! GET /users/{id}: parameter "id" (path) is now required

contract_test

Fires a real request at every endpoint (or a filtered subset) of an already-running server built from the loaded spec, and validates each live response against its declared schema. It's a Postman-collection-runner-equivalent with zero setup.

Takes baseUrl, an optional headers list (repeatable "Name: value" strings, e.g. auth), and an optional filter to test a subset.

text
✓ GET /users (http://localhost:3000/users) — 200, matches schema
✖ POST /users (http://localhost:3000/users) — 201, 1 mismatch(es): body.email (required property missing)