MCP: apple_game_center, apple_game_center_status, play_games, play_games_status (writes dry by default)

This commit is contained in:
CRTkafa 2026-10-21 05:04:34 +07:00
parent 3116c230ae
commit 9f48dd57a4
2 changed files with 18 additions and 0 deletions

View file

@ -359,6 +359,7 @@
"write"
],
"check": [
"achievements",
"aso",
"capacitor",
"cordova",
@ -367,7 +368,10 @@
"expo",
"flutter",
"godot",
"keychain",
"leaderboards",
"name",
"no-install",
"react-native",
"sku",
"storefront",
@ -857,6 +861,7 @@
"play"
],
"validate": [
"achievements",
"add-for-review",
"allow-price-changes",
"apple",
@ -873,6 +878,7 @@
"jobs",
"keychain",
"lang",
"leaderboards",
"no-health",
"no-install",
"no-local",

View file

@ -217,6 +217,18 @@ export const TOOLS: ToolDef[] = [
{ name: 'apple_encryption', title: 'Export compliance answer', command: ['apple', 'encryption'], write: true, network: true, idempotent: true,
description: 'Answer export compliance for builds from apple.usesNonExemptEncryption in the config (never guesses).',
props: { build: { type: 'string', description: 'Build number (default: every build without an answer)' } }, args: i => opt('build', i.build) },
{ name: 'apple_game_center', title: 'Game Center sync', command: ['apple', 'game-center'], write: true, network: true, idempotent: true,
description: 'Game Center from the config\'s games section: switch it on for the app (gameCenterDetails) and the editable version (gameCenterAppVersions), upsert leaderboards and achievements with their localizations by vendor id (create / PATCH only what differs; never deletes or archives), then read back. Nothing is submitted: they go to review with the next version. The App ID capability is signing ensure\'s (terminal).',
args: () => [] },
{ name: 'apple_game_center_status', title: 'Game Center status', command: ['apple', 'game-center', 'status'], write: false, network: true,
description: 'Read-only: App ID GAME_CENTER capability, the app\'s Game Center detail, the version switch, leaderboards / achievements on the store vs games in the config (pending changes), the project\'s com.apple.developer.game-center entitlement.',
args: () => ['--json'] },
{ name: 'play_games', title: 'Play Games Services sync', command: ['play', 'games'], write: true, network: true, idempotent: true,
description: 'Play Games Services leaderboards and achievements from the config\'s games section through the Games Configuration API (insert / update drafts, matched by playId or the default-language name; inserts are never retried blindly). Nothing is published: the owner presses Publish in Play Console (console_plan play-games-services has the setup).',
args: () => [] },
{ name: 'play_games_status', title: 'Play Games Services status', command: ['play', 'games', 'status'], write: false, network: true,
description: 'Read-only: the games project id (config / games_APP_ID resource), leaderboards and achievements on Play vs the config (pending changes), the Android project\'s APP_ID meta-data and play-services-games-v2 dependency.',
args: () => ['--json'] },
{ name: 'apple_phased_release', title: 'Phased release on / pause', command: ['apple', 'release'], write: true, network: true, idempotent: true,
description: 'Turn on the 7-day phased release for the upcoming version, or pause an active one (pausing is not a rollback). Resume / complete / release are owner-only terminal commands.',
props: { action: { type: 'string', enum: ['on', 'pause'] }, version: { type: 'string' }, platform }, required: ['action'],