naftiko: 1.0.0-alpha2 info: label: Unity Live Game Operations description: Unified capability for Unity live game operations combining Economy, Cloud Save, Leaderboards, and Remote Config APIs. Enables game economy management, player progression, competitive ranking, and real-time configuration for live service games. tags: - Unity - Live Ops - Economy - Leaderboards - Cloud Save - Remote Config - Game Operations created: '2026-05-03' modified: '2026-05-06' binds: - namespace: env keys: UNITY_ECONOMY_TOKEN: UNITY_ECONOMY_TOKEN UNITY_CLOUD_SAVE_TOKEN: UNITY_CLOUD_SAVE_TOKEN UNITY_LEADERBOARDS_TOKEN: UNITY_LEADERBOARDS_TOKEN capability: consumes: - type: http namespace: unity-economy baseUri: https://economy.services.api.unity.com description: Unity Economy API for in-game currency and inventory management authentication: type: bearer token: '{{UNITY_ECONOMY_TOKEN}}' resources: - name: currency-balances path: /v2/projects/{projectId}/environments/{environmentId}/players/{playerId}/currencies description: Player currency balance management operations: - name: get-player-currency-balances method: GET description: Get all currency balances for a player inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier - name: playerId in: path type: string required: true description: Unity player identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: currency-increment path: /v2/projects/{projectId}/environments/{environmentId}/players/{playerId}/currencies/{currencyId}/increment description: Increment player currency balance operations: - name: increment-currency-balance method: POST description: Increase a player's currency balance inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier - name: playerId in: path type: string required: true description: Unity player identifier - name: currencyId in: path type: string required: true description: Currency identifier (e.g., GOLD, GEMS) outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: amount: '{{tools.amount}}' - name: currency-decrement path: /v2/projects/{projectId}/environments/{environmentId}/players/{playerId}/currencies/{currencyId}/decrement description: Decrement player currency balance operations: - name: decrement-currency-balance method: POST description: Decrease a player's currency balance inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier - name: playerId in: path type: string required: true description: Unity player identifier - name: currencyId in: path type: string required: true description: Currency identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: amount: '{{tools.amount}}' - name: inventory path: /v2/projects/{projectId}/environments/{environmentId}/players/{playerId}/inventory description: Player inventory management operations: - name: get-player-inventory method: GET description: Get all inventory items for a player inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier - name: playerId in: path type: string required: true description: Unity player identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: virtual-purchases path: /v2/projects/{projectId}/environments/{environmentId}/players/{playerId}/purchases/virtual description: Virtual purchase processing operations: - name: make-virtual-purchase method: POST description: Process a virtual purchase for a player inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier - name: playerId in: path type: string required: true description: Unity player identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: id: '{{tools.purchase_id}}' - type: http namespace: unity-cloud-save baseUri: https://cloud-save.services.api.unity.com description: Unity Cloud Save API for player game state persistence authentication: type: bearer token: '{{UNITY_CLOUD_SAVE_TOKEN}}' resources: - name: player-data path: /v1/data/projects/{projectId}/players/{playerId} description: Player data operations operations: - name: get-player-data method: GET description: Get all data items for a player inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: playerId in: path type: string required: true description: Unity player identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: player-data-items path: /v1/data/projects/{projectId}/players/{playerId}/items description: Set player data items operations: - name: set-player-data method: POST description: Create or update player data items inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: playerId in: path type: string required: true description: Unity player identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: data: '{{tools.data}}' - name: player-query path: /v1/data/projects/{projectId}/players/{playerId}/query description: Query player data with filters operations: - name: query-player-data method: POST description: Query player data using field-based filters inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: playerId in: path type: string required: true description: Unity player identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: returnKeys: '{{tools.return_keys}}' fields: '{{tools.fields}}' - type: http namespace: unity-leaderboards baseUri: https://leaderboards.services.api.unity.com description: Unity Leaderboards API for player score management and ranking authentication: type: bearer token: '{{UNITY_LEADERBOARDS_TOKEN}}' resources: - name: leaderboards path: /v1/projects/{projectId}/environments/{environmentId}/leaderboards description: Leaderboard configuration management operations: - name: list-leaderboards method: GET description: List all leaderboard definitions inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier - name: limit in: query type: integer required: false description: Maximum number of leaderboards to return outputRawFormat: json outputParameters: - name: result type: object value: $. - name: create-leaderboard method: POST description: Create a new leaderboard definition inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: id: '{{tools.leaderboard_id}}' sortOrder: '{{tools.sort_order}}' - name: scores path: /v1/projects/{projectId}/environments/{environmentId}/leaderboards/{leaderboardId}/scores/players/{playerId} description: Player score operations operations: - name: add-player-score method: POST description: Submit a player score to a leaderboard inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier - name: leaderboardId in: path type: string required: true description: Leaderboard identifier - name: playerId in: path type: string required: true description: Unity player identifier outputRawFormat: json outputParameters: - name: result type: object value: $. body: type: json data: score: '{{tools.score}}' metadata: '{{tools.metadata}}' - name: get-player-score method: GET description: Retrieve a player's score and rank inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier - name: leaderboardId in: path type: string required: true description: Leaderboard identifier - name: playerId in: path type: string required: true description: Unity player identifier outputRawFormat: json outputParameters: - name: result type: object value: $. - name: leaderboard-scores path: /v1/projects/{projectId}/environments/{environmentId}/leaderboards/{leaderboardId}/scores description: Top scores for a leaderboard operations: - name: get-leaderboard-scores method: GET description: Retrieve top scores for a leaderboard inputParameters: - name: projectId in: path type: string required: true description: Unity project identifier - name: environmentId in: path type: string required: true description: Environment identifier - name: leaderboardId in: path type: string required: true description: Leaderboard identifier - name: offset in: query type: integer required: false description: Pagination offset - name: limit in: query type: integer required: false description: Number of scores to return outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: unity-live-ops-api description: Unified REST API for Unity live game operations including economy, player data, and rankings. resources: - path: /v1/players/{playerId}/currencies name: player-currencies description: Player virtual currency balance management operations: - method: GET name: get-currency-balances description: Get All Currency Balances for a Player call: unity-economy.get-player-currency-balances with: projectId: rest.projectId environmentId: rest.environmentId playerId: rest.playerId outputParameters: - type: object mapping: $. - path: /v1/players/{playerId}/currencies/{currencyId}/add name: add-currency description: Add currency to player balance operations: - method: POST name: add-currency description: Add Currency to Player Balance call: unity-economy.increment-currency-balance with: projectId: rest.projectId environmentId: rest.environmentId playerId: rest.playerId currencyId: rest.currencyId outputParameters: - type: object mapping: $. - path: /v1/players/{playerId}/inventory name: player-inventory description: Player item inventory operations: - method: GET name: get-inventory description: Get Player Item Inventory call: unity-economy.get-player-inventory with: projectId: rest.projectId environmentId: rest.environmentId playerId: rest.playerId outputParameters: - type: object mapping: $. - path: /v1/players/{playerId}/purchases/virtual name: virtual-purchases description: Virtual item purchases operations: - method: POST name: purchase-item description: Purchase a Virtual Item call: unity-economy.make-virtual-purchase with: projectId: rest.projectId environmentId: rest.environmentId playerId: rest.playerId outputParameters: - type: object mapping: $. - path: /v1/players/{playerId}/save-data name: player-save-data description: Player game save data operations: - method: GET name: get-save-data description: Get Player Game Save Data call: unity-cloud-save.get-player-data with: projectId: rest.projectId playerId: rest.playerId outputParameters: - type: object mapping: $. - method: POST name: save-data description: Save Player Game Progress call: unity-cloud-save.set-player-data with: projectId: rest.projectId playerId: rest.playerId outputParameters: - type: object mapping: $. - path: /v1/leaderboards name: leaderboards description: Game leaderboard management operations: - method: GET name: list-leaderboards description: List All Leaderboards call: unity-leaderboards.list-leaderboards with: projectId: rest.projectId environmentId: rest.environmentId outputParameters: - type: object mapping: $. - path: /v1/leaderboards/{leaderboardId}/scores name: leaderboard-scores description: Leaderboard score data operations: - method: GET name: get-top-scores description: Get Top Leaderboard Scores call: unity-leaderboards.get-leaderboard-scores with: projectId: rest.projectId environmentId: rest.environmentId leaderboardId: rest.leaderboardId outputParameters: - type: object mapping: $. - path: /v1/leaderboards/{leaderboardId}/scores/players/{playerId} name: player-leaderboard-score description: Player-specific leaderboard score operations: - method: POST name: submit-score description: Submit Player Score to Leaderboard call: unity-leaderboards.add-player-score with: projectId: rest.projectId environmentId: rest.environmentId leaderboardId: rest.leaderboardId playerId: rest.playerId outputParameters: - type: object mapping: $. - method: GET name: get-player-rank description: Get Player Score and Rank call: unity-leaderboards.get-player-score with: projectId: rest.projectId environmentId: rest.environmentId leaderboardId: rest.leaderboardId playerId: rest.playerId outputParameters: - type: object mapping: $. - type: mcp port: 9080 namespace: unity-live-ops-mcp transport: http description: MCP server for AI-assisted Unity live game operations management. tools: - name: get-player-currencies description: Get all virtual currency balances for a player hints: readOnly: true openWorld: false call: unity-economy.get-player-currency-balances with: projectId: tools.projectId environmentId: tools.environmentId playerId: tools.playerId outputParameters: - type: object mapping: $. - name: add-player-currency description: Add virtual currency to a player's balance hints: readOnly: false idempotent: false call: unity-economy.increment-currency-balance with: projectId: tools.projectId environmentId: tools.environmentId playerId: tools.playerId currencyId: tools.currencyId amount: tools.amount outputParameters: - type: object mapping: $. - name: deduct-player-currency description: Deduct virtual currency from a player's balance hints: readOnly: false idempotent: false call: unity-economy.decrement-currency-balance with: projectId: tools.projectId environmentId: tools.environmentId playerId: tools.playerId currencyId: tools.currencyId amount: tools.amount outputParameters: - type: object mapping: $. - name: get-player-inventory description: Get all items in a player's inventory hints: readOnly: true openWorld: false call: unity-economy.get-player-inventory with: projectId: tools.projectId environmentId: tools.environmentId playerId: tools.playerId outputParameters: - type: object mapping: $. - name: purchase-virtual-item description: Purchase an in-game item using virtual currency hints: readOnly: false idempotent: false call: unity-economy.make-virtual-purchase with: projectId: tools.projectId environmentId: tools.environmentId playerId: tools.playerId purchase_id: tools.purchase_id outputParameters: - type: object mapping: $. - name: get-player-progress description: Retrieve a player's saved game progress and state hints: readOnly: true openWorld: false call: unity-cloud-save.get-player-data with: projectId: tools.projectId playerId: tools.playerId outputParameters: - type: object mapping: $. - name: save-player-progress description: Save player game progress and state to the cloud hints: readOnly: false idempotent: true call: unity-cloud-save.set-player-data with: projectId: tools.projectId playerId: tools.playerId data: tools.data outputParameters: - type: object mapping: $. - name: list-leaderboards description: List all game leaderboards hints: readOnly: true openWorld: true call: unity-leaderboards.list-leaderboards with: projectId: tools.projectId environmentId: tools.environmentId outputParameters: - type: object mapping: $. - name: get-top-scores description: Get the top scores from a leaderboard hints: readOnly: true openWorld: true call: unity-leaderboards.get-leaderboard-scores with: projectId: tools.projectId environmentId: tools.environmentId leaderboardId: tools.leaderboardId outputParameters: - type: object mapping: $. - name: submit-leaderboard-score description: Submit a player's score to a leaderboard hints: readOnly: false idempotent: true call: unity-leaderboards.add-player-score with: projectId: tools.projectId environmentId: tools.environmentId leaderboardId: tools.leaderboardId playerId: tools.playerId score: tools.score outputParameters: - type: object mapping: $. - name: get-player-rank description: Get a player's current rank and score on a leaderboard hints: readOnly: true openWorld: false call: unity-leaderboards.get-player-score with: projectId: tools.projectId environmentId: tools.environmentId leaderboardId: tools.leaderboardId playerId: tools.playerId outputParameters: - type: object mapping: $.