Skip to content

Tester Exchange

by testerexchange.com · remote · no sign-in to list tools · v1.0.0 · published by com.testerexchange

Get 12 testers for 14 days for Google Play closed testing, with verified daily use on real phones.

Changes · 17

19 tools: 17 change things and 2 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http tester-exchange https://vvrlxzbngxfxddywidoq.supabase.co/functions/v1/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "buy_credits_links" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"openWorldHint":false}; The name "buy_credits_links" says "link": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

19 tools

Changes things 17Claude Code: ask
  • aboutWhat Tester Exchange is, how credits work, and every available action.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    What Tester Exchange is, how credits work, and every available action.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • add_appList an Android app that is in Google Play closed testing.No findings

    Why it is in this group

    • The name "add_app" says "add": a word for a change.
    Description, as the server wrote it
    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)

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
  • add_testersAdd tester slots to a live campaign (15 credits each).No findings

    Why it is in this group

    • The name "add_testers" says "add": a word for a change.
    Description, as the server wrote it
    Add tester slots to a live campaign (15 credits each). (needs a token)

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
  • campaign_reportTesters, daily active testers, feedback and the data needed to answer Play Console's production-access questions.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Testers, daily active testers, feedback and the data needed to answer Play Console's production-access questions. (needs a token)

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • join_swap_circlePut one of the user's apps in the free swap circle.No findings

    Why it is in this group

    • The description's first verb is "put": a word for a change.
    Description, as the server wrote it
    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)

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
  • join_testJoin another developer's test as a tester.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Join another developer's test as a tester. Returns the opt-in steps the human must do on their phone. (needs a token)

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
  • leave_swap_circleLeave the swap circle while it is still filling.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Leave the swap circle while it is still filling. (needs a token)

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
  • my_accountThe user's credit balance, invite link, phones linked and open tests.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The user's credit balance, invite link, phones linked and open tests. (needs a token)

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • my_appsThe user's apps and the live status of each testing campaign (active testers, waiting installs, open slots).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The user's apps and the live status of each testing campaign (active testers, waiting installs, open slots). (needs a token)

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • my_swap_circleThe user's swap circle: status, how many developers are in, and the apps.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The user's swap circle: status, how many developers are in, and the apps. (needs a token)

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • my_testsTests the user is doing as a tester, with verified days and credits earned.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Tests the user is doing as a tester, with verified days and credits earned. (needs a token)

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • platform_statsLive platform numbers: members, apps testing, open tester slots, verified tester-days.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Live platform numbers: members, apps testing, open tester slots, verified tester-days.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • pricingHow credits are earned and spent, and credit pack prices.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    How credits are earned and spent, and credit pack prices.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • set_campaign_statusPause, resume or close a campaign.No findings

    Why it is in this group

    • The name "set_campaign_status" says "set": a word for a change.
    Description, as the server wrote it
    Pause, resume or close a campaign. Closing refunds unused credits. (needs a token)

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
  • share_kitPublic "help test my app" page, a ready message and a README badge for one of the user's apps.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Public "help test my app" page, a ready message and a README badge for one of the user's apps. (needs a token)

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • start_campaignStart recruiting testers for one of the user's apps.No findings

    Why it is in this group

    • The name "start_campaign" says "start": a word for a change.
    Description, as the server wrote it
    Start recruiting testers for one of the user's apps. Costs testers × 15 credits, held in escrow; unused credits are refunded. (needs a token)

    Annotations the server declares

    • readOnlyHint: false
    • openWorldHint: false
Only reads 2Claude Code: allow
  • list_open_testsAndroid apps currently looking for closed-testing testers.No findings

    Why it is in this group

    • The name "list_open_tests" says "list": a word for reading.
    Description, as the server wrote it
    Android apps currently looking for closed-testing testers. With a token, only tests the user can join.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false
  • swap_circle_statusHow full the next free swap circle is.No findings

    Why it is in this group

    • The name "swap_circle_status" says "status": a word for reading.
    Description, as the server wrote it
    How full the next free swap circle is. 13 developers join; when it is full, everyone tests everyone else's app for 14 days, free.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http tester-exchange https://vvrlxzbngxfxddywidoq.supabase.co/functions/v1/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__tester-exchange__list_open_tests",
      "mcp__tester-exchange__swap_circle_status"
    ],
    "ask": [
      "mcp__tester-exchange__about",
      "mcp__tester-exchange__platform_stats",
      "mcp__tester-exchange__pricing",
      "mcp__tester-exchange__my_account",
      "mcp__tester-exchange__my_apps",
      "mcp__tester-exchange__add_app",
      "mcp__tester-exchange__start_campaign",
      "mcp__tester-exchange__campaign_report",
      "mcp__tester-exchange__add_testers",
      "mcp__tester-exchange__set_campaign_status",
      "mcp__tester-exchange__join_test",
      "mcp__tester-exchange__my_tests",
      "mcp__tester-exchange__share_kit",
      "mcp__tester-exchange__buy_credits_links",
      "mcp__tester-exchange__join_swap_circle",
      "mcp__tester-exchange__my_swap_circle",
      "mcp__tester-exchange__leave_swap_circle"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as tester-exchange. Review it before you use it.