# API & MCP testing

> Scheduled probes against your HTTP endpoints and MCP servers, with assertions, uptime, and latency tracking.

API & MCP testing is Fixter's synthetic monitoring: scheduled probes that call your
endpoints from the outside, assert on what comes back, and track uptime and latency
over time. HTTP APIs are one kind of target; MCP servers are the other, probed the
way an agent would call them. If you ship an MCP server, this is how you find out it
is broken before your users' agents do. Tests live in the app under
[API Tests](https://app.fixter.dev/api-tests), and everything here is also available
through the [API test MCP tools](/reference/mcp-tools/#api-tests), so an agent can create and
inspect tests for you.

## Two kinds of probes

- **HTTP tests** call a URL with the method, headers, and body you configure, then
  assert on the response: status (exact or wildcard patterns like `2xx`), maximum
  latency, header values, and body validation in tiers from "is valid JSON" through
  "matches this shape" to "matches exactly".
- **MCP tests** probe an MCP server the way an agent would: assert that the handshake
  succeeds, that `tools/list` returns the tools you expect, or that a specific tool
  call returns a valid result. If you ship an MCP server to your own customers, this
  is uptime monitoring for it. Both kinds are separate from
[alerts](/using-fixter/alerting/), which watch the telemetry your services send rather than
probing them from outside.

<!-- fx-image: the API test editor showing an HTTP test with status and latency assertions -->

## How a test runs

Each test has an interval (down to every 30 seconds), a timeout, retries, and a
failure threshold: how many consecutive failures flip it from **UP** to **DOWN**.
Pausing a test parks it at **PAUSED** without deleting its history. Every run is
recorded with its outcome and timing; the test's page charts latency over time and
computes **uptime** as the share of successful runs in the window you're looking at.

<!-- fx-image: an API test detail page with the latency chart and run history -->

## Authenticating probes

Tests that call protected endpoints use stored credentials (basic auth, bearer
token, API key, or OAuth2 client credentials). Credential values are write-only:
once saved they are used by probes but never displayed again, and they're managed
alongside the tests themselves (or via the `*_api_test_credential`
[MCP tools](/reference/mcp-tools/#api-tests)).

## Current limitation

API test state changes don't send notifications yet: check status on the
[API Tests page](https://app.fixter.dev/api-tests) or query it over MCP
(`get_api_test_runs`, `get_uptime`).

Still stuck? Email [info@fixter.dev](mailto:info@fixter.dev) and one of our founders will help you fix your problem asap.