appstore-api-mcp 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,21 @@ All notable changes to this project are documented here. The format follows
4
4
  [Keep a Changelog](https://keepachangelog.com/) and the project uses
5
5
  [Semantic Versioning](https://semver.org/).
6
6
 
7
+ ## [1.0.2] - 2026-06-02
8
+
9
+ ### Added
10
+ - Setup instructions for more MCP clients: **Google Antigravity**,
11
+ **Amazon Q Developer CLI**, **Goose**, and a list of others (Kiro, Roo Code,
12
+ Trae, JetBrains AI, Warp, …).
13
+ - **Agent-assisted setup** (`docs/AGENT-SETUP.md`) — a copy-paste prompt so your
14
+ AI agent configures the server from just your Key ID, Issuer ID, and `.p8` path.
15
+ - `.github/workflows/npm-publish.yml` — publish to npm on version-tag push /
16
+ release, with provenance and a version-match guard.
17
+
18
+ ### Changed
19
+ - Install docs default to `--scope user` (global) with an opt-out comment for
20
+ project-only installs; fixed stale server aliases.
21
+
7
22
  ## [1.0.1] - 2026-06-02
8
23
 
9
24
  ### Added
package/README.md CHANGED
@@ -10,7 +10,7 @@ versions — plus a raw-request tool that reaches the **entire**
10
10
  > *"show the English description for MyApp"*, or
11
11
  > *"upload these screenshots to the 6.7-inch set"* — the agent calls the right tools.
12
12
 
13
- - 🤖 **Works with any MCP client** — Claude Code/Desktop, OpenAI Codex CLI, Cursor, Cline, Windsurf, VS Code (agent mode), Zed, Continue, Gemini CLI, and custom agents on the MCP SDKs. Standard stdio server, no client-specific code. → [docs/CLIENTS.md](docs/CLIENTS.md)
13
+ - 🤖 **Works with any MCP client** — Claude Code/Desktop, OpenAI Codex CLI, Cursor, Cline, Windsurf, VS Code (agent mode), Zed, Continue, Gemini CLI, Google Antigravity, Amazon Q, Goose, JetBrains AI, Warp, and custom agents on the MCP SDKs. Standard stdio server, no client-specific code. → [docs/CLIENTS.md](docs/CLIENTS.md)
14
14
  - ✅ **One-line install** via `npx` — no clone, no build
15
15
  - ✅ **Credentials stay on your machine** — calls go straight to Apple, nothing is proxied
16
16
  - ✅ **Slim, well-described tool set** + a `raw_request` escape hatch for the whole API
@@ -22,7 +22,7 @@ versions — plus a raw-request tool that reaches the **entire**
22
22
 
23
23
  ## Table of contents
24
24
 
25
- - [Quick start](#quick-start)
25
+ - [Quick start](#quick-start) — incl. [agent-assisted setup](docs/AGENT-SETUP.md)
26
26
  - [Supported clients](#supported-clients) → full guide in [docs/CLIENTS.md](docs/CLIENTS.md)
27
27
  - [Getting your API key](#getting-your-api-key) → full guide in [docs/SETUP.md](docs/SETUP.md)
28
28
  - [Configuration](#configuration)
@@ -39,19 +39,29 @@ versions — plus a raw-request tool that reaches the **entire**
39
39
  **Requirements:** Node.js ≥ 18 and an Apple Developer account with an
40
40
  [App Store Connect API key](#getting-your-api-key).
41
41
 
42
+ ### 🤖 Easiest: let your agent set it up
43
+
44
+ Don't want to touch config files? Paste the prompt in
45
+ **[docs/AGENT-SETUP.md](docs/AGENT-SETUP.md)** into your coding agent, give it
46
+ your Key ID, Issuer ID, and the **path** to your `.p8` file, and it configures
47
+ everything for your client and verifies it. (Give the file *path*, not the key
48
+ contents — that keeps the key off the transcript.)
49
+
50
+ Prefer to do it manually? Continue below.
51
+
42
52
  ### Claude Code (CLI)
43
53
 
44
54
  ```bash
55
+ # --scope user installs it for ALL your projects (recommended).
56
+ # Remove the --scope user line to install for the current project only.
45
57
  claude mcp add appstore-api \
58
+ --scope user \
46
59
  --env ASC_KEY_ID=YOUR_KEY_ID \
47
60
  --env ASC_ISSUER_ID=YOUR_ISSUER_ID \
48
61
  --env ASC_PRIVATE_KEY_PATH=/absolute/path/to/AuthKey_XXXXXXXXXX.p8 \
49
62
  -- npx -y appstore-api-mcp
50
63
  ```
51
64
 
52
- Add `--scope user` to make it available in **every** project (default is the
53
- current project only).
54
-
55
65
  ### Any other MCP client (Cursor, Cline, Windsurf, VS Code, Zed, Continue, …)
56
66
 
57
67
  Almost every client uses this same block (Claude Desktop config path:
@@ -95,6 +105,10 @@ the same; only each client's config format/location differs.
95
105
  | **Zed** | `settings.json` → `context_servers` |
96
106
  | **Continue** | `~/.continue/config.yaml` → `mcpServers` |
97
107
  | **Gemini CLI** | `~/.gemini/settings.json` → `mcpServers` |
108
+ | **Google Antigravity** | MCP settings → `mcpServers` |
109
+ | **Amazon Q Developer CLI** | `~/.aws/amazonq/mcp.json` → `mcpServers` |
110
+ | **Goose** | `~/.config/goose/config.yaml` → `extensions` |
111
+ | **Kiro / Roo Code / Trae / JetBrains AI / Warp / others** | standard `mcpServers` block — see docs |
98
112
  | **Custom agent** (MCP SDK / Agents SDK / LangChain) | spawn the stdio command with the env vars |
99
113
 
100
114
  Copy-paste config snippets for each are in **[docs/CLIENTS.md](docs/CLIENTS.md)**.
@@ -0,0 +1,64 @@
1
+ # Let an AI agent set it up for you
2
+
3
+ You don't have to edit config files by hand. Paste the prompt below into your
4
+ coding agent (Claude Code, Cursor, Codex, Windsurf, etc.), fill in your three
5
+ credentials, and it will detect your client and wire everything up.
6
+
7
+ ## ✅ Copy-paste prompt
8
+
9
+ ```text
10
+ Set up the "appstore-api-mcp" App Store Connect MCP server for me.
11
+
12
+ My App Store Connect API credentials:
13
+ - Key ID: <YOUR_KEY_ID>
14
+ - Issuer ID: <YOUR_ISSUER_ID>
15
+ - Path to my .p8 private key file: <ABSOLUTE_PATH_TO_AuthKey_XXXX.p8>
16
+
17
+ Please:
18
+ 1. Detect which MCP client I'm using and add the server to that client's
19
+ correct config file/command. Run it with: npx -y appstore-api-mcp
20
+ 2. Pass these env vars to the server:
21
+ ASC_KEY_ID = my Key ID
22
+ ASC_ISSUER_ID = my Issuer ID
23
+ ASC_PRIVATE_KEY_PATH = the path to my .p8 file (reference the PATH; do not
24
+ inline the key contents)
25
+ 3. Install it at user/global scope so it's available in all my projects
26
+ (for Claude Code, use `claude mcp add ... --scope user`).
27
+ 4. Do NOT print, echo, log, or commit the key. Keep the .p8 outside any git repo.
28
+ 5. When done, verify it works by listing my App Store apps, then tell me the
29
+ result (or any error and how to fix it).
30
+
31
+ Config formats per client are documented here:
32
+ https://github.com/fil-technology/appstore-api-mcp/blob/main/docs/CLIENTS.md
33
+ ```
34
+
35
+ ## Why give the *path*, not the key contents
36
+
37
+ Pasting the raw `.p8` contents into a chat sends your private key through the
38
+ model/provider. Giving the **file path** instead keeps the key on your disk —
39
+ the MCP config only stores a path, and the server reads the file locally at
40
+ runtime. Same convenience, much smaller exposure.
41
+
42
+ > If your agent runs in a remote/cloud sandbox that can't see your local disk,
43
+ > you'll need the key available there. In that case prefer
44
+ > `ASC_PRIVATE_KEY_BASE64` injected as a secret rather than committing the file.
45
+
46
+ ## Is this safe / good practice?
47
+
48
+ - ✅ **Simple:** the user provides 3 values; the agent handles client detection
49
+ and the exact config format.
50
+ - ✅ **Low exposure:** with the path approach, the secret never enters the
51
+ transcript and is never committed.
52
+ - ✅ **Least privilege still applies:** use an **App Manager** API key, not Admin
53
+ (see [SECURITY.md](SECURITY.md)).
54
+ - ⚠️ **Review what the agent writes:** confirm the key path is correct and that
55
+ no credential was echoed back. A good agent will say "configured" without
56
+ reprinting your key.
57
+
58
+ ## After setup
59
+
60
+ Ask your agent things like:
61
+
62
+ - "List my App Store apps."
63
+ - "Audit all my apps for ASO gaps."
64
+ - "Show the current keywords and description for <app> (dry-run a new set)."
package/docs/CLIENTS.md CHANGED
@@ -27,6 +27,8 @@ with these three env vars (see [SETUP.md](SETUP.md) to get them):
27
27
  ## Claude Code (CLI)
28
28
 
29
29
  ```bash
30
+ # --scope user installs it for ALL your projects (recommended).
31
+ # Remove the --scope user line to install for the current project only.
30
32
  claude mcp add appstore-api \
31
33
  --scope user \
32
34
  --env ASC_KEY_ID=YOUR_KEY_ID \
@@ -176,6 +178,60 @@ In `~/.gemini/settings.json` — same `mcpServers` shape as Claude Desktop:
176
178
  }
177
179
  ```
178
180
 
181
+ ## Google Antigravity
182
+
183
+ Antigravity is Google's agentic IDE and supports MCP servers. Open its **MCP
184
+ settings** ("Manage MCP servers" → edit the JSON config) and add the standard
185
+ `mcpServers` block:
186
+
187
+ ```json
188
+ {
189
+ "mcpServers": {
190
+ "appstore-api": {
191
+ "command": "npx",
192
+ "args": ["-y", "appstore-api-mcp"],
193
+ "env": {
194
+ "ASC_KEY_ID": "YOUR_KEY_ID",
195
+ "ASC_ISSUER_ID": "YOUR_ISSUER_ID",
196
+ "ASC_PRIVATE_KEY_PATH": "/absolute/path/to/AuthKey.p8"
197
+ }
198
+ }
199
+ }
200
+ }
201
+ ```
202
+
203
+ ## Amazon Q Developer CLI
204
+
205
+ `~/.aws/amazonq/mcp.json` — same `mcpServers` shape as Claude Desktop.
206
+
207
+ ## Goose (Block)
208
+
209
+ `~/.config/goose/config.yaml`, under `extensions` (type `stdio`):
210
+
211
+ ```yaml
212
+ extensions:
213
+ appstore-api:
214
+ type: stdio
215
+ cmd: npx
216
+ args: ["-y", "appstore-api-mcp"]
217
+ envs:
218
+ ASC_KEY_ID: YOUR_KEY_ID
219
+ ASC_ISSUER_ID: YOUR_ISSUER_ID
220
+ ASC_PRIVATE_KEY_PATH: /absolute/path/to/AuthKey.p8
221
+ ```
222
+
223
+ ## More MCP-compatible clients
224
+
225
+ The following also speak MCP and use the **same** `mcpServers` JSON block shown
226
+ above (consult each client's MCP docs for the exact config file/UI):
227
+
228
+ - **Kiro** (AWS agentic IDE) — `.kiro/settings/mcp.json`
229
+ - **Roo Code** (VS Code) — MCP settings
230
+ - **Trae** (ByteDance IDE)
231
+ - **JetBrains AI Assistant / Junie** — Settings → Tools → MCP
232
+ - **Warp** terminal — MCP servers settings
233
+ - **BoltAI**, **LibreChat**, **Witsy**, **Tome**, **5ire** — desktop MCP clients
234
+
179
235
  ## Any other MCP client / custom agent
180
236
 
181
237
  Point your client at a stdio server with:
package/docs/SETUP.md CHANGED
@@ -41,7 +41,9 @@ chmod 600 ~/.appstoreconnect/AuthKey_XXXXXXXXXX.p8
41
41
  ### Claude Code
42
42
 
43
43
  ```bash
44
- claude mcp add appstore-connect \
44
+ # --scope user installs it for ALL your projects (recommended).
45
+ # Remove the --scope user line to install for the current project only.
46
+ claude mcp add appstore-api \
45
47
  --scope user \
46
48
  --env ASC_KEY_ID=YOUR_KEY_ID \
47
49
  --env ASC_ISSUER_ID=YOUR_ISSUER_ID \
@@ -58,7 +60,7 @@ Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
58
60
  ```json
59
61
  {
60
62
  "mcpServers": {
61
- "appstore-connect": {
63
+ "appstore-api": {
62
64
  "command": "npx",
63
65
  "args": ["-y", "appstore-api-mcp"],
64
66
  "env": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "appstore-api-mcp",
3
- "version": "1.0.1",
4
- "description": "MCP server for Apple App Store Connect — manage apps, keywords, descriptions, titles, screenshots, versions and the full API from any MCP client (Claude, Codex, Cursor, Cline, Windsurf, VS Code, Zed, Continue, Gemini CLI, and custom agents). Includes a fleet-wide ASO audit and dry-run previews.",
3
+ "version": "1.0.2",
4
+ "description": "MCP server for Apple App Store Connect — manage apps, keywords, descriptions, titles, screenshots, versions and the full API from any MCP client (Claude, Codex, Cursor, Cline, Windsurf, VS Code, Zed, Continue, Gemini CLI, Google Antigravity, Amazon Q, Goose, and custom agents). Includes a fleet-wide ASO audit and dry-run previews.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "appstore-api-mcp": "src/index.js"