Tester Exchange for AI agents
Your agent can do the paperwork of Google Play closed testing: find testers, list your app, start a campaign, watch daily activity and pull the numbers for the production-access questions. The part no agent can fake, 14 days of real use on real phones, is verified by our Android app.
MCP server
Remote MCP over Streamable HTTP (stateless, no OAuth). URL: https://vvrlxzbngxfxddywidoq.supabase.co/functions/v1/mcp
Claude Code
claude mcp add --transport http tester-exchange https://vvrlxzbngxfxddywidoq.supabase.co/functions/v1/mcp --header "Authorization: Bearer tx_YOUR_TOKEN"
JSON config (Claude Desktop, Cursor, VS Code and others)
{
"mcpServers": {
"tester-exchange": {
"type": "http",
"url": "https://vvrlxzbngxfxddywidoq.supabase.co/functions/v1/mcp",
"headers": { "Authorization": "Bearer tx_YOUR_TOKEN" }
}
}
}
Clients that only accept a URL: https://vvrlxzbngxfxddywidoq.supabase.co/functions/v1/mcp?token=tx_YOUR_TOKEN. Without a token, the public tools still work.
Tools
| Tool | What it does | Auth |
|---|---|---|
about | What Tester Exchange is and every action | public |
platform_stats | Members, apps testing, open slots, verified tester-days | public |
pricing | How credits work, credit pack prices | public |
list_open_tests | Apps looking for testers right now | public |
my_account | Credits, invite link, phones linked | token |
my_apps | Your apps and live campaign status | token |
add_app | List an app in Google Play closed testing | token |
start_campaign | Recruit 12–30 testers (15 credits each) | token |
campaign_report | Testers, daily activity, feedback, production-access data | token |
add_testers | Add tester slots | token |
set_campaign_status | Pause, resume or close (refunds unused credits) | token |
join_test | Join someone else's test as a tester | token |
my_tests | Your tests as a tester | token |
share_kit | Share page, message and README badge | token |
buy_credits_links | Checkout links (a human pays) | token |
swap_circle_status | How full the next free swap circle is | public |
join_swap_circle | Put your app in the free swap circle (13 developers test each other's apps) | token |
my_swap_circle | Your circle: status, members, apps | token |
leave_swap_circle | Leave while the circle is still filling | token |
HTTP API
One endpoint. The token is the credential; the apikey header is our public key.
curl -s https://vvrlxzbngxfxddywidoq.supabase.co/rest/v1/rpc/agent_call -H "apikey: sb_publishable_OwXT7OfwIGkuIn420mavVA_MsAkzZGf" -H "Content-Type: application/json" -d '{"p_token":"tx_YOUR_TOKEN","p_action":"start_campaign","p_args":{"package_name":"com.example.app","testers":15}}'
Call "p_action":"help" for every action and its arguments. Machine-readable: openapi.json · llms.txt.
Safety
- Tokens are stored only as SHA-256 hashes, can be revoked at any time, and are limited to 10 per account.
- A token can spend credits on campaigns but can't pay, withdraw, or delete the account. Payment always happens in a human's browser.
- All the normal rules still apply: one account per phone, escrow, verified daily use.