Let Claude Code, Cursor, Codex or any MCP client write tests, run them, read the results and share the proof, with the same actions you have in the app.
The server is at https://app.testsy.dev/mcp: Streamable HTTP with JSON answers, authenticated with the key as a bearer token. It supports MCP protocol versions 2025-06-18, 2025-03-26 and 2024-11-05.
Everything you do in the app with tests and runs. A typical flow:
list_projects, then plan_test with what to test: the assistant drafts the steps and checks.
Show you the plan. Revise it with plan_test and change; answer its questions with answers.
create_test with the confirmed plan, and run_test.
Poll get_run every 20 to 30 seconds until final is true, then read each check's result and reason.
After fixing the code, run_test again. create_share_link gives a client the proof.
Tests can also get files (add_test_file), sign-in accounts (add_credential), endpoints into your system (add_endpoint) and schedules (create_schedule).
Tools that only read are marked read-only, so clients such as Codex run them without asking. Tools that save, run or delete are marked so, and your client asks before using them, unless you allow them.
Passwords sent with add_credential pass through your agent. They are encrypted when stored and never reach the tester's AI, but prefer adding passwords in the web app.
Files a test can upload during its steps (for example an import file).
testId
add_test_filechanges
Add a file the tester can upload during the test: up to 25 MB, up to 10 files per test.
testIdnamecontentBase64?contentType?
delete_test_filechanges
Remove one of a test's files.
testIdname
Sign-in accounts
Tool
What it does
list_credentials
The sign-in accounts stored for a project: names, usernames and sites. Passwords are never returned.
projectId
add_credentialchanges
Store a sign-in account the tester can use. The password is encrypted, never returned, and never sent to the tester's AI: the tester types it.
projectIdnameusernamepasswordsite?
delete_credentialchanges
Delete a sign-in account. Tests that sign in with it stop running until it is added again or they are edited.
credentialId
Endpoints
Tool
What it does
list_endpoints
Calls into your own systems the tester may make during a run (for example "create a voucher"). Headers are never returned.
projectId
add_endpointchanges
Add a call the tester may make into your system. It sees only the name, the description and what the call returned. Using endpoints in a run needs a paid plan.
Start a run of one test. Runs take minutes: poll get_run until final is true.
testIdmode?buildId?
run_projectruns
Start a run of every test in a project (a suite).
projectIdmode?buildIds?buildId?
list_runs
Recent runs, newest first, optionally for one test or project or with one status; or the runs with the given ids.
ids?testId?projectId?status?limit?
get_run
A run: its status, and once final the verdict, the headline, each check's result with the reason, the values read, and links to the video, screenshots and the result page.
runId
stop_runruns
Stop a queued or running run. A run you stop is not counted.
runId
Share links
Tool
What it does
list_share_links
The share links made for a run, with when they expire and how often they were opened.
runId
create_share_linkruns
A read-only link to a run's result, replay and video that anyone can open without signing in, until it expires.
runIddays?
delete_share_linkruns
Turn off a share link straight away.
shareId
Schedules
Tool
What it does
list_schedules
When tests run by themselves: every schedule in the workspace, or those of one test or project.
testId?projectId?
create_schedulechanges
Run a test by itself: on chosen weekdays, or monthly on a day, at a time in a time zone. Each scheduled run counts like any other run.
testIddays?dayOfMonth?timetimezone?
update_schedulechanges
Pause or resume a schedule.
scheduleIdenabled
delete_schedulechanges
Delete a schedule.
scheduleId
App builds
Tool
What it does
list_builds
The app builds uploaded to a project (Android .apk, iOS Simulator .app zipped), newest first, with the largest size and part size for uploads.
projectId
get_build
One build: its app id, version, status and any warnings.
buildId
delete_buildchanges
Delete a build. Runs that used it keep their results; a build a test pins cannot be deleted.
buildId
Each tool is also a REST endpoint with the same parameters: see the API reference.