# API & MCP testing

> Scheduled tests that call your HTTP endpoints and MCP servers from outside, check the answers, and track uptime and latency; what the two kinds of test are for and where each part is documented.

API & MCP testing calls your MCP servers and HTTP endpoints from outside on a schedule, checks
each answer against the assertions you set, and tracks uptime and latency from the runs. Tests
are separate from [Alerts](/using-fixter/alerting/): alerts watch the telemetry your services
send, tests call your services. A test that goes down notifies you the way an alert does.

## Two kinds of test

- **An MCP test** probes your MCP server the way an agent would: it connects, can list the
  tools and can call one. A server that stops identifying itself, drops a tool or breaks a tool
  call fails the test instead of failing someone's agent. If you ship an MCP server, this is its
  uptime monitoring. See [MCP tests](/api-testing/mcp-tests/).
- **An HTTP test** calls a URL with the method, headers and body you set, and checks the status,
  latency, headers and body that come back. See [HTTP tests](/api-testing/http-tests/).

## How it works

You create a test, in the app or by asking your agent, and the save runs it once; a test that
fails that trial run is not saved. From then on it runs on its interval, every 30 seconds at the
shortest. Each run passes, fails, errors, is rate limited or is missed, and a streak of failures
turns the test `Down` while a streak of 429s turns it `Rate limited`. Uptime is the share of
passing runs. Every state change sends a notification to the channels you chose. The rules are
on [Runs, states and uptime](/api-testing/runs-and-uptime/) and
[Notifications](/api-testing/notifications/).

Everything here is also available to an agent through Fixter's MCP tools, from creating a test
to reading its runs; see [the API tests tools](/reference/mcp/tools/#api-tests-and-uptime).

## Where to go next

- [Creating your first test](/api-testing/first-test/): the walkthrough, from an agent or in the
  app, against Fixter's own MCP server.
- [MCP tests](/api-testing/mcp-tests/): what an MCP test checks at each depth, its fields, and
  what a failed run says.
- [MCP protocol revisions](/api-testing/mcp-protocol-revisions/): the generations and revisions,
  Newest supported versus pinned, and detection.
- [HTTP tests](/api-testing/http-tests/): the status pattern, header and body assertions and
  redirects.
- [Runs, states and uptime](/api-testing/runs-and-uptime/): scheduling limits, the trial run, run
  outcomes, states, uptime and what a run records.
- [Request variables](/api-testing/request-variables/): `{{uuid}}`, `{{now}}` and friends.
- [Credentials](/api-testing/credentials/): basic auth, bearer tokens, API keys and OAuth2.
- [Notifications](/api-testing/notifications/): choosing channels, and what each message says.
- [Allow tests through your firewall](/api-testing/firewalls/): when a CDN, WAF or rate limiter
  blocks a test.