Delete_item is documented as removing an item from every player inventory that holds it, and set_title_data writes configuration all players can see. The details in the tool descriptions that will trip a first integration are the identifier and the currency model: inventory calls want a TitlePlayerAccountId rather than the PlayFabId that comes back from login, and in Economy v2 a virtual currency is an item, so a grant carries an item ID and not a currency code. Against that, the design is careful where it matters — the catalog has a draft version that publish_draft_item promotes, IdempotencyId is a parameter on the inventory writes, and execute_inventory_operations is atomic across the batch it is given. ban_users reaching IPAddress and MACAddress is worth knowing before an agent is allowed to call it, since that blocks a device rather than an account.
A server over PlayFab's Economy v2 catalog, player inventory, segment, account and title-data APIs, exposing catalog authoring, per-player inventory writes, moderation and global configuration as callable tools.
- Catalog search and authoring on a draft-then-publish path: search_items queries the Economy v2 catalog by Search, Filter and OrderBy with ContinuationToken paging, create_draft_item and update_draft_item work on the draft version, publish_draft_item makes an item purchasable, and get_item returns the draft and published versions where both exist.
- Inventory writes against a named player: add_inventory_items grants items or virtual currency, subtract_inventory_items reduces a quantity without removing the stack, update_inventory_items changes item metadata and custom data, and delete_inventory_items removes items outright — all taking an Item reference, a TitlePlayerAccountId and an IdempotencyId.
- Batching for bulk economy work: execute_inventory_operations sends up to 50 operations in a single atomic request where all of them succeed or all of them fail.
- The ID conversion the inventory calls depend on: get_title_player_account_id_from_playfab_id turns the PlayFabId that comes from login or user data into the TitlePlayerAccountId the inventory tools take.
- Player targeting by segment: get_all_segments returns segment definitions whose IDs stay fixed even when the segment is renamed, and get_players_in_segments pages through the profiles inside one SegmentId.
- Moderation with a stated duration and reason: ban_users bans by PlayFabId, IPAddress or MACAddress, with DurationInHours for a temporary ban and its absence meaning permanent, and revoke_all_bans_for_user lifts every active ban on a player.
- Per-player and title-wide state: get_user_account_info returns profile data, statistics and linked accounts, get_user_data and update_user_data read and write custom keys under a Permission, set_title_data and get_title_data hold configuration every player can see, and set_title_internal_data and get_title_internal_data hold the server-only equivalent that game clients cannot read.
- Inventory discovery before the write: get_inventory_collection_ids lists a player's collections and get_inventory_items returns what is in one, paged by Count and ContinuationToken.
A PlayFab title and its developer secret key, supplied as PLAYFAB_TITLE_ID and PLAYFAB_DEV_SECRET_KEY.
One command plus a key — npx -y @akiojin/playfab-mcp-server, then supply credentials
