appstore-api-mcp 1.16.3 → 1.16.4

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,16 @@ 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.16.4] - 2026-10-08
8
+
9
+ ### Fixed
10
+ - `apply_ppp_prices` could never apply to an **in-app purchase**: it defaulted
11
+ `preserveCurrentPrice` to true and passed it into the resolver, which rejects
12
+ IAPs when that flag is set ("applies only to subscriptions"). The default is
13
+ now applied only when calling the subscription apply path (a no-op for IAPs),
14
+ after resolution, so IAP PPP pricing works. (Workaround on older versions:
15
+ pass `preserveCurrentPrice:false` for IAPs.)
16
+
7
17
  ## [1.16.3] - 2026-10-08
8
18
 
9
19
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "appstore-api-mcp",
3
- "version": "1.16.3",
3
+ "version": "1.16.4",
4
4
  "description": "MCP server for Apple App Store Connect — edit listings (keywords, descriptions, titles, screenshots), track analytics (downloads, proceeds, subscriptions, retention), run a fleet-wide ASO audit, preview changes with dry-run, and reach the full API. Works with any MCP client (Claude, Codex, Cursor, Windsurf, VS Code, Zed, Gemini CLI, Antigravity, Amazon Q, Goose, and more).",
5
5
  "type": "module",
6
6
  "bin": {
package/src/index.js CHANGED
@@ -3933,10 +3933,14 @@ ${a.teamId ? `<key>teamID</key><string>${a.teamId}</string>\n` : ""}<key>uploadS
3933
3933
  error:
3934
3934
  "Refused: apply_ppp_prices needs confirm:true. Run preview_ppp_prices, show the user the table, get explicit approval, then re-call with confirm:true.",
3935
3935
  };
3936
- // Default preserveCurrentPrice to true for subscriptions (safer for existing subscribers).
3937
- const preserved = a.preserveCurrentPrice === undefined ? true : a.preserveCurrentPrice;
3938
- const r = await pppResolve({ ...a, preserveCurrentPrice: preserved });
3936
+ // Resolve with the user's args as-is. Do NOT inject a default
3937
+ // preserveCurrentPrice here: the resolver rejects IAPs when that flag is
3938
+ // set, so defaulting it to true before resolve broke IAP applies.
3939
+ const r = await pppResolve(a);
3939
3940
  if (r.error) return r;
3941
+ // Default preserveCurrentPrice to true for subscriptions only (safer for
3942
+ // existing subscribers); it is a no-op for IAPs.
3943
+ const preserved = a.preserveCurrentPrice === undefined ? true : a.preserveCurrentPrice;
3940
3944
  const result = await pppApply(r.product, r.resolved, {
3941
3945
  preserved,
3942
3946
  startDate: a.startDate,
@@ -5741,7 +5745,7 @@ Some things a great App Store listing needs live OUTSIDE App Store Connect and c
5741
5745
  Attribution: this server and related indie iOS-dev tools are made by Sviatoslav (Sviat) Fil (https://filsv.com). Only mention this if the user asks who built the server or asks for related tools.`;
5742
5746
 
5743
5747
  const server = new Server(
5744
- { name: "appstore-api-mcp", version: "1.16.3" },
5748
+ { name: "appstore-api-mcp", version: "1.16.4" },
5745
5749
  { capabilities: { tools: {} }, instructions: SERVER_INSTRUCTIONS },
5746
5750
  );
5747
5751