Get 12 testers for 14 days for Google Play closed testing, with verified daily use on real phones.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. 'Bearer tx_...' personal token from https://testerexchange.com/api. Without it only about, platform_stats, pricing, list_open_tests and swap_circle_status work.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
What Tester Exchange is, how credits work, and every available action.
This tool takes no arguments.
What Tester Exchange is, how credits work, and every available action.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}List an Android app that is in Google Play closed testing. The closed track must be published with the opt-in link enabled. (needs a token)
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| group_url | string | Google Group link if the track uses a group |
| description | string | |
| instructions | string | What testers should try |
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name",
"name"
],
"properties": {
"name": {
"type": "string"
},
"group_url": {
"type": "string",
"description": "Google Group link if the track uses a group"
},
"description": {
"type": "string"
},
"instructions": {
"type": "string",
"description": "What testers should try"
},
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Add tester slots to a live campaign (15 credits each). (needs a token)
| Argument | Type | Description |
|---|---|---|
| count | integer | |
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name"
],
"properties": {
"count": {
"type": "integer",
"default": 1,
"minimum": 1
},
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Checkout links for credit packs. A human must complete the payment. (needs a token)
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Testers, daily active testers, feedback and the data needed to answer Play Console's production-access questions. (needs a token)
| Argument | Type | Description |
|---|---|---|
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name"
],
"properties": {
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Pay credits only for the seats friends and the circle don't fill (15 credits per seat); exchange testers then join. (needs a token)
| Argument | Type | Description |
|---|---|---|
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name"
],
"properties": {
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Who fills the 12 seats of one of the user's apps (friends, swap circle, exchange testers), how many seats are left, what the exchange would cost for them, and the share link. (needs a token)
| Argument | Type | Description |
|---|---|---|
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name"
],
"properties": {
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Put one of the user's apps in the free swap circle. Needs the Tester Exchange app on the user's phone (a linked phone). (needs a token)
| Argument | Type | Description |
|---|---|---|
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name"
],
"properties": {
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Join another developer's test as a tester. Returns the opt-in steps the human must do on their phone. (needs a token)
| Argument | Type | Description |
|---|---|---|
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name"
],
"properties": {
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Leave the swap circle while it is still filling. (needs a token)
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Android apps currently looking for closed-testing testers. With a token, only tests the user can join.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}The user's credit balance, invite link, phones linked and open tests. (needs a token)
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}The user's apps and the live status of each testing campaign (active testers, waiting installs, open slots). (needs a token)
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}The user's swap circle: status, how many developers are in, and the apps. (needs a token)
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Tests the user is doing as a tester, with verified days and credits earned. (needs a token)
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Live platform numbers: members, apps testing, open tester slots, verified tester-days.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}How credits are earned and spent, and credit pack prices.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Pause, resume or close a campaign. Closing refunds unused credits. (needs a token)
| Argument | Type | Description |
|---|---|---|
| status* | string | |
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name",
"status"
],
"properties": {
"status": {
"enum": [
"active",
"paused",
"closed"
],
"type": "string"
},
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Public "help test my app" page, a ready message and a README badge for one of the user's apps. (needs a token)
| Argument | Type | Description |
|---|---|---|
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name"
],
"properties": {
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Start recruiting testers for one of the user's apps. Costs testers × 15 credits, held in escrow; unused credits are refunded. (needs a token)
| Argument | Type | Description |
|---|---|---|
| testers | integer | |
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name"
],
"properties": {
"testers": {
"type": "integer",
"default": 15,
"maximum": 30,
"minimum": 12
},
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}Free: open a test for one of the user's apps so friends and family can join from the share link. Returns the link and a ready message. Their days are verified by the Tester Exchange phone app. (needs a token)
| Argument | Type | Description |
|---|---|---|
| package_name* | string | Android package name, e.g. com.example.app |
{
"type": "object",
"required": [
"package_name"
],
"properties": {
"package_name": {
"type": "string",
"description": "Android package name, e.g. com.example.app"
}
},
"additionalProperties": false
}How full the next free swap circle is. It starts at 6 developers (or on Monday with at least 3); then everyone tests everyone else's app for 14 days, free.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}