appstore-api-mcp 1.1.1 → 1.1.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 +8 -0
- package/docs/ANALYTICS.md +4 -1
- package/package.json +1 -1
- package/src/client.js +3 -0
- package/src/index.js +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,14 @@ 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.1.2] - 2026-06-02
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- Report tools now treat a `404` ("no data for this report/date") as a clean
|
|
11
|
+
empty result with an explanatory `note`, instead of surfacing it as an error.
|
|
12
|
+
Validated end-to-end with an Admin key: sales, subscriptions, finance, and the
|
|
13
|
+
Analytics Reports API all return real data.
|
|
14
|
+
|
|
7
15
|
## [1.1.1] - 2026-06-02
|
|
8
16
|
|
|
9
17
|
### Changed
|
package/docs/ANALYTICS.md
CHANGED
|
@@ -30,7 +30,10 @@ Sales and finance reports are scoped to a **Vendor Number** — an 8–9 digit I
|
|
|
30
30
|
**not** the same as your Key ID or Issuer ID.
|
|
31
31
|
|
|
32
32
|
- Find it in **App Store Connect → Payments and Financial Reports** (or **Sales
|
|
33
|
-
and Trends**) — it's
|
|
33
|
+
and Trends**) — it's the **Vendor #** shown at the top:
|
|
34
|
+
|
|
35
|
+

|
|
36
|
+
|
|
34
37
|
- Provide it either way:
|
|
35
38
|
- **Per call:** pass `vendorNumber` in the tool arguments, or
|
|
36
39
|
- **Globally:** set the `ASC_VENDOR_NUMBER` environment variable in your MCP config.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appstore-api-mcp",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2",
|
|
4
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": {
|
package/src/client.js
CHANGED
|
@@ -157,6 +157,9 @@ export class AppStoreConnectClient {
|
|
|
157
157
|
headers: { Authorization: `Bearer ${token}`, Accept: "application/a-gzip" },
|
|
158
158
|
});
|
|
159
159
|
const buf = Buffer.from(await res.arrayBuffer());
|
|
160
|
+
// 404 from a report endpoint means "no data for this report/date" — not a
|
|
161
|
+
// failure. Return empty so callers get an empty result, not an error.
|
|
162
|
+
if (res.status === 404) return "";
|
|
160
163
|
if (!res.ok) {
|
|
161
164
|
let detail = buf.toString("utf8");
|
|
162
165
|
try {
|
package/src/index.js
CHANGED
|
@@ -134,7 +134,7 @@ const DEFAULT_VENDOR = process.env.ASC_VENDOR_NUMBER;
|
|
|
134
134
|
/** Cap parsed report rows so large reports don't flood the response. */
|
|
135
135
|
function reportResult(reportType, parsed, limit = 200) {
|
|
136
136
|
const rows = parsed.rows;
|
|
137
|
-
|
|
137
|
+
const out = {
|
|
138
138
|
reportType,
|
|
139
139
|
columns: parsed.columns,
|
|
140
140
|
rowCount: rows.length,
|
|
@@ -142,6 +142,10 @@ function reportResult(reportType, parsed, limit = 200) {
|
|
|
142
142
|
truncated: rows.length > limit,
|
|
143
143
|
rows: rows.slice(0, limit),
|
|
144
144
|
};
|
|
145
|
+
if (rows.length === 0)
|
|
146
|
+
out.note =
|
|
147
|
+
"No data found for the requested report/date. The period may have no activity, or the data isn't available yet (reports lag ~1 day). Check the date and frequency format.";
|
|
148
|
+
return out;
|
|
145
149
|
}
|
|
146
150
|
|
|
147
151
|
function requireVendor(v) {
|