99tests
Order human-run real-device app tests from your coding agent; verified bugs come back as ready-to-paste fix prompts. Real testers on real phones, laptops and browsers, fixed price, report in 3 days.
Hosted MCP Server
npx add-mcp 'https://99tests.com/api/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Model Context Protocol Listed in the official MCP Registry and Claude's connector directory
Let your coding agent order real-device testing.
Your coding agent already runs headless self-tests. 99tests adds what it can't: real phones and laptops, real networks, and human testers judging whether the app works. Your agent creates the job, you pay through a checkout link, and verified findings come back in the build chat as fix prompts.
Add it in one line.
Claude Code
claude mcp add --transport http 99tests https://99tests.com/api/mcp
Cursor or VS Code (mcp.json)
{
"mcpServers": {
"99tests": {
"url": "https://99tests.com/api/mcp"
}
}
}
Claude.ai and Claude Desktop
Open Settings → Connectors, search for 99tests in the directory and click Connect. Or add https://99tests.com/api/mcp as a custom connector.
Any other MCP client
Add a remote (Streamable HTTP) server with the URL https://99tests.com/api/mcp
The lookups (packages, sample report) are public and need no key. "Create a test job" returns a browser checkout link — payment always happens in your browser, never through the assistant.
How a cycle runs.
1 · Ask your agent
"Run a 99tests Standard job on this build." The agent calls create_test_job and hands you a checkout link.
2 · Pay in the browser
Fixed price, invoice at checkout, no account. Testers are matched within the hour.
3 · Real people test
Testers who own your target phones, laptops and browsers run your flows in timed sessions on real networks.
4 · Every finding is verified
A separate reviewer accepts, merges or rejects each one against a published severity rubric.
5 · Fix prompts come back
Your agent calls get_report and gets each verified bug as a ready-to-paste prompt: device, OS, network, steps, expected vs actual, the fix. Paste it into the same chat and the agent fixes it.
What the assistant can do.
| Tool | What it does | Reads or writes |
|---|---|---|
list_packages | Packages, prices (INR + GST and USD), sessions and turnaround | Read |
create_test_job | Creates a job and returns a hosted checkout link to pay in a browser | Write (never charges a card) |
get_job_status | Progress for a job token. Poll at most every 10 minutes | Read |
get_report | Verified findings for a delivered job, as ready-to-paste fix prompts | Read |
get_sample_report | An example report, so you can see the format before you pay | Read |
Fixed price per job.
| Package | Sessions | Devices / browsers | India (incl GST) | Rest of world | Report |
|---|---|---|---|---|---|
| Starter | 5 × 45 min | 2 | ₹9,999 + GST | $129 | 3 business days |
| Standard | 10 × 45 min | 4 | ₹18,999 + GST | $249 | 3 business days |
| Deep | 20 × 90 min | 6 | ₹34,999 + GST | $449 | 5 business days |
Not included: test automation, security/penetration testing, performance/load testing, certification. Full details on /pricing.
Verified findings, as fix prompts.
Each accepted finding comes back with the device, exact steps, expected vs actual, and a ready-to-paste fix prompt. See the full format in the sample report.
Example fix prompt from get_report:
On Redmi 12 · MIUI 14 · Jio 4G, "Cart empties after returning from UPI app". Steps to reproduce: Add 2 items → Checkout → Pay with UPI → switch to PhonePe → approve → return to app. Expected: Order confirmed with both items. Actual: App restarts on return; cart is empty and no order is created. Money debited. Please fix the root cause and add a regression test that covers this case (TC-03).
Say this to your agent.
"List the 99tests packages and tell me which fits a release check of my Android app on budget phones."
"Create a Standard 99tests job for this build and give me the checkout link."
"Check my 99tests job. If it's delivered, pull the report and apply the fix prompts one by one."
"Show me a sample 99tests report before I pay."
About the MCP server.
Is this automated testing?
No. Real people run your flows on real devices. Your agent's own self-tests stay as they are.
Do I need an account or an API key?
No. Each job is paid through Stripe Checkout, and a job token lets your agent fetch status and the report.
Who pays?
You do. The agent only hands you the checkout link; it can never charge you.
Which clients work?
Claude Code, Cursor, VS Code, Claude.ai, Claude Desktop, and any client that supports remote MCP servers over Streamable HTTP.
Is it in the official registry?
Yes — com.99tests/mcp in the official MCP Registry, and in Claude's connector directory as 99tests.
What happens to test logins I share?
They are included in the job only for the assigned testers, shared by link, and not retained by 99tests beyond the job.
What isn't covered?
Security or penetration testing, load testing, and certification.