> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appeeky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Store CLIs

> Run Google Play Console and App Store Connect from your terminal, CI, or AI agent, locally with your own keys or hosted on your Appeeky connection.

Appeeky ships two command-line tools for the stores you publish to. Each one is a scriptable CLI, a local MCP server, and a hosted MCP + REST API.

| | Google Play CLI | App Store Connect CLI |
| - | - | - |
| npm package | `@appeeky/google-play-store-cli` | `@appeeky/app-store-connect-cli` |
| Binaries | `gps`, `gps-mcp` | `appstore`, `appstore-mcp` |
| Store API | Google Play Android Publisher API v3 | App Store Connect API |
| Local credentials | Service-account JSON key | API key (`.p8`) |
| Hosted endpoint | `https://gps-api.appeeky.com` | `https://asc-api.appeeky.com` |
| Tool prefix | `gps_` | `appstore_` |

> **[Google Play CLI](/docs/store-cli-google-play.md)**
>
> Releases, staged rollouts, listings, reviews, testers, subscriptions, purchases, and orders.

> **[App Store Connect CLI](/docs/store-cli-app-store-connect.md)**
>
> Versions, App Review, TestFlight, reviews, reports, and every App Store Connect API operation.

## Hosted or local

| | Hosted MCP / REST | Local CLI / MCP |
| - | - | - |
| Credentials | The store connection you set up in Appeeky | Your own store key on your machine |
| Setup | Paste one MCP config with your Appeeky API key | `npm install -g`, then point it at your key |
| Writes | Off until you send the write header | Need `--confirm` on the CLI |
| Local files (uploads, downloads) | Not available | Yes (AAB/APK, screenshots, previews, profiles) |
| Local account config | Not available (the Appeeky connection is the account) | Multiple named accounts |
| Cost | Each tool call is one Appeeky API call | Free |

Use hosted when an agent or script should work on stores you already connected in Appeeky, without copying keys around. Use local for CI pipelines, uploads, and when you want the store key to stay with you.

## How hosted auth works

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
Your MCP client or script
  -> Authorization: Bearer <Appeeky API key>
  -> gps-api / asc-api.appeeky.com
  -> Appeeky issues a short-lived store token for that request
  -> Google Play or App Store Connect API
```

* You authenticate with your [Appeeky API key](/docs/authentication.md), as `Authorization: Bearer <key>` or `X-API-Key: <key>`.
* Your service-account key or `.p8` key never leaves Appeeky. The hosted server only receives a short-lived Google token or a signed App Store Connect token for the request.
* The store connection is the one in **Settings → Data sources** on appeeky.com. See [Google Play Connect](/docs/google-play-connect.md) and [App Store Connect](/docs/app-store-connect-overview.md).

## Read-only by default

Hosted servers hide every operation that changes your store account until the request carries a write header:

| Server | Header |
| - | - |
| Google Play | `X-GPS-Allow-Writes: true` |
| App Store Connect | `X-ASC-Allow-Writes: true` |

Without it, write tools are not listed over MCP, and REST calls to them return `403 WRITES_DISABLED`. Add the header only to clients you trust to publish, and keep a separate read-only config for everyday analysis.

> [!WARNING]
>
> With the write header set, an agent can change releases, metadata, prices, and testers, and reply to reviews on your live apps. Ask it to confirm each write with you.

## Credits

Each hosted tool call or `POST /v1/ops/{name}` is one metered Appeeky API call and draws from your [API credits](/docs/rate-limits.md).

These are free:

* MCP `initialize` and `tools/list`
* Discovery that never reaches the store: `gps_search_capabilities`, `appstore_search_operations`, `appstore_describe_operation`, `GET /v1/ops`
* Calls rejected for invalid arguments (they are validated before Appeeky opens a store session)

The local CLIs and MCP servers call Google and Apple directly and do not use Appeeky credits.

## Quick start

**Google Play (hosted)**

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "mcpServers": {
    "google-play": {
      "url": "https://gps-api.appeeky.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_APPEEKY_API_KEY" }
    }
  }
}
```

**App Store Connect (hosted)**

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "mcpServers": {
    "app-store-connect": {
      "url": "https://asc-api.appeeky.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_APPEEKY_API_KEY" }
    }
  }
}
```

**Local CLIs**

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
npm install -g @appeeky/google-play-store-cli
npm install -g @appeeky/app-store-connect-cli
gps --help
appstore --help
```

## Next

> **[Google Play hosted MCP](/docs/store-cli-google-play-hosted-mcp.md)**
>
> Connect an agent to Play Console with your Appeeky key.

> **[App Store Connect hosted MCP](/docs/store-cli-app-store-connect-hosted-mcp.md)**
>
> Connect an agent to App Store Connect with your Appeeky key.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.