Skip to main content
Glama
smy383

linktest-mcp-server

by smy383
README.md
[![npm version](https://img.shields.io/npm/v/linktest-mcp-server.svg)](https://www.npmjs.com/package/linktest-mcp-server)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

# linktest-mcp-server

**Automate Google Play closed testing with AI.** Skip the hassle of finding 12+ testers and waiting 14+ days — just tell your AI to handle it.

## The Problem

To publish on Google Play, you need:
- **12+ testers** opted in to your closed testing track
- **14+ days** of continuous testing

Finding testers, getting them to opt in, and keeping them active for 2+ weeks is the biggest bottleneck for indie developers.

## The Solution

LinkTest runs your app on **12+ real Android devices** for **14+ days** — automatically. Just tell your AI:

> *"Run closed testing for my app com.example.myapp"*

That's it. **$5 per order.** No subscriptions. No tester recruitment.

---

## Quick Start

### 1. Get your API token

Sign up at [linktest-prod.web.app](https://linktest-prod.web.app) and copy your token from Settings.

### 2. Install

Works with any MCP-compatible AI client — Claude, Cursor, Windsurf, VS Code (Copilot), Cline, Continue, and more.

<details open>
<summary><strong>Claude Desktop</strong></summary>

Add to your config file:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "linktest": {
      "command": "npx",
      "args": ["-y", "linktest-mcp-server@latest"],
      "env": {
        "LINKTEST_API_TOKEN": "your-token-here"
      }
    }
  }
}
```
</details>

<details>
<summary><strong>Claude Code</strong></summary>

```bash
claude mcp add linktest -s user -e LINKTEST_API_TOKEN=your-token-here -- npx -y linktest-mcp-server@latest
```
</details>

<details>
<summary><strong>Cursor</strong></summary>

Add to `.cursor/mcp.json` in your project root:

```json
{
  "mcpServers": {
    "linktest": {
      "command": "npx",
      "args": ["-y", "linktest-mcp-server@latest"],
      "env": {
        "LINKTEST_API_TOKEN": "your-token-here"
      }
    }
  }
}
```
</details>

<details>
<summary><strong>Windsurf</strong></summary>

Add to `~/.codeium/windsurf/mcp_config.json`:

```json
{
  "mcpServers": {
    "linktest": {
      "command": "npx",
      "args": ["-y", "linktest-mcp-server@latest"],
      "env": {
        "LINKTEST_API_TOKEN": "your-token-here"
      }
    }
  }
}
```
</details>

<details>
<summary><strong>Other MCP Clients</strong></summary>

Any client that supports the [Model Context Protocol](https://modelcontextprotocol.io) can use this server. The config is the same:

- **Command:** `npx -y linktest-mcp-server@latest`
- **Environment:** `LINKTEST_API_TOKEN=your-token-here`
</details>

### 3. Start testing

Just tell your AI:

> *"I need to run Google Play closed testing for my app. The package name is com.example.myapp."*

The AI will guide you through the entire process automatically.

---

## Tools

| Tool | Description |
|------|-------------|
| `linktest_testers` | Get tester email list to register in Play Console (always start here) |
| `linktest_validate` | Validate your opt-in link format before ordering |
| `linktest_verify` | Verify real devices can access your app |
| `linktest_order` | Place a testing order ($5) and get payment link |
| `linktest_status` | Check order status, progress, and days remaining |
| `linktest_screenshots` | View daily screenshots from test devices |
| `linktest_retry` | Free retry if rejected by Google Play (1 per order) |
| `linktest_cancel` | Cancel or complete an order early |
| `linktest_billing` | View payment history and receipts |

## Workflow

The AI handles this automatically, but here's what happens:

```
1. linktest_testers     → Get emails, register in Play Console
2. linktest_validate    → Check opt-in link
3. linktest_verify      → Confirm device access (takes ~30s)
4. linktest_order       → Create order → pay $5
5. linktest_status      → Monitor progress
6. linktest_screenshots → Visual confirmation
```

## Example Prompts

| What you say | What happens |
|--------------|-------------|
| "Start closed testing for my app" | Gets tester emails and guides you through setup |
| "Run closed testing for com.example.app" | Full workflow from validation to order |
| "How's my testing going?" | Shows status of all active orders |
| "Show me screenshots" | Displays latest device screenshots |
| "My app was rejected, can I retry?" | Uses free retry to extend testing 14 more days |
| "Cancel my order" | Cancels or completes the order |

---

## Pricing

**$5 per order** — one-time payment, no subscription.

Each order includes:
- 12+ real Android devices
- 14+ days of daily app execution
- Daily screenshots for verification
- Free retry if rejected by Google Play (1 per order)
- Automatic management — no manual work needed

---

## How It Works

1. **You register** LinkTest tester emails in your Google Play Console
2. **You pay** $5 per app
3. **LinkTest installs** your app on 12+ real Android devices
4. **Devices run** your app daily for 14+ days
5. **Screenshots** are captured daily so you can verify
6. **Done** — your closed testing requirement is met

---

## Troubleshooting

### MCP not loading?

If `npx` is installed at a non-standard path (e.g., via nvm or .local), change `"command": "npx"` to the full path:

```bash
which npx   # Find your npx path, then use it in the config
```

### Better AI guidance

Add this to your Claude system prompt or `CLAUDE.md` for step-by-step order guidance:

```
When using LinkTest tools, always read the resource "linktest://workflow-guide" first to follow the correct order.
```

---

## Requirements

- A Google Play Developer account
- An app with a closed testing track set up
- Node.js 18+

## Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `LINKTEST_API_TOKEN` | Yes | Your API token from [Settings](https://linktest-prod.web.app/settings) |
| `LINKTEST_API_URL` | No | Custom API URL (default: production) |

## Links

- [Dashboard](https://linktest-prod.web.app) — Manage orders and settings
- [npm](https://www.npmjs.com/package/linktest-mcp-server) — Package page

## License

MIT