Creating your first test
This page gets one test running. The example monitors Fixter’s own MCP server at
https://mcp.fixter.dev, so you can follow it before you have a server of your own; swap in
your URL at any point.
Before you start
Section titled “Before you start”- A URL reachable from the public internet. Private and internal addresses are refused; see Addresses Fixter will not test.
- A credential, if the target needs one.
mcp.fixter.devdoes: create a key under Settings > API keys (the value is shown once) and store it as aBearer tokencredential; see Credentials. - A Slack channel, if you want notifications anywhere but email. Connect it first; see Notifications.
With your agent
Section titled “With your agent”Ask in plain language:
Monitor https://mcp.fixter.dev every minute with my Fixter API key and tell me if it stops answering.The agent works in five steps:
- Detect the protocol with
detect_mcp_protocol, givingmcpUrland, for a server that needs one,mcpCredentialId. It readsoutcome(DETECTED,NONEorRATE_LIMITED) andnewestSupported, the newest revision the server speaks. A detection is not a run and saves nothing. - Store the credential with
create_api_test_credential: typeBEARER,tokenset to the API key. It reads the returnedidand passes it asmcpCredentialId(httpCredentialIdfor an HTTP test). - Create the test with
create_api_test: typeMCP,mcpUrl,mcpCredentialId,mcpTierHANDSHAKE,intervalSeconds60. Saving runs the test once first. A passing save returns the test with itsidand the run astrialRun. A refused one saves nothing and comes back as an error: a sentence startingNot created:that says what failed and endsThe test was not saved; fix its configuration and call create_api_test again. - Read the runs with
get_api_test_runs, giving the test’sapiTestId. It reads each run’s outcome, timing, assertion failures andtraceId, and callscorrelateon thattraceIdto find what happened inside the target, when the target reports to Fixter. - Choose channels with
set_api_test_destinations, giving theapiTestIdandchannelIdsfromlist_alert_channels. Without it, the test follows the API tests source; see Notifications.
Two things differ over MCP from the app: get_api_test_runs does not return a run’s recorded
request and response (open the run in the app for those), and update_api_test replaces the
test’s whole configuration, so the agent passes every field it wants to keep.
In the app
Section titled “In the app”-
Create the credential. Open the API Tests page, click
Credentials, thenNew credential.NameitFixter API key, setTypetoBearer token, paste the key intoToken, and clickCreate credential. -
Create the test. Click
New API test. SetNametoFixter MCP,TypetoMCP server, pastehttps://mcp.fixter.devintoURL, and pickFixter API keyunderCredential. The editor showsDetecting protocol…, then setsProtocol revisiontoNewest supportedwithcurrently <revision>beside it, and lists each revision asSupportedorNot supported. UnderPassing means, leaveCheck depthatHandshake. LeaveScheduleat its defaults: check every 60 seconds, give up after 10 seconds, no retries, down after 3 failed runs. -
Save it, which runs it once. Click
Create API test. The button readsRunning test…while Fixter runs the test once, with one attempt and no retries. When it passes, the test is saved and the app saysIt passed its trial run in <latency> and will run on the schedule you set.When it fails, nothing is saved: the editor stays open, headedTrial run failed, with the cause, the failed assertions and the request and response. Fix what it names and clickCreate API testagain. See The trial run on save. -
Watch the first scheduled run. Open the test from the API Tests page. The trial run is not in the run history, so the history starts with the first scheduled run. Before it, the page shows
Protocol: Newest supported (not run yet); after it, the run is listed asSuccess, the test isUp, and the page showsProtocol: Newest supported (currently <revision>). -
Open the run. It shows the run message and any failed assertions, the trace id with
Open in LogsandView trace, theRequestand theResponse. What each part means is on What a run records.
Next steps
Section titled “Next steps”- Go deeper than the handshake: set
Check depthtoTools listwith the tools your server must advertise, orTool callto call one. See MCP tests. - Monitor an HTTP endpoint: set
TypetoHTTP endpointand choose a status pattern, latency, header and body assertions. See HTTP tests. - Send a different value on every run with request variables.
Still stuck? Email info@fixter.dev and one of our founders will help you fix your problem asap.