Skip to main content
Glama

Save Push settings

save_push
Destructive

PARTIAL SAVE: writes ONLY the 'Push' field of TitlePublicConfigurationModel; all other v1/v2 fields stay untouched. Push notifications - the title's settings for messages delivered to a player who is NOT in the game right now (Web Push in the browser, FCM/APNs on mobile). IsEnabled is the master switch and defaults to DISABLED: notifications spend a real person's attention and require their browser permission, so a title opts in explicitly. MaxSendsPerUserPerDay caps how many a single player receives; MaxSendsPerTitlePerDay caps the title as a whole and is the ONLY ceiling on a broadcast that exists anywhere - the publisher API quota does not see sends at all, because they run in a queue worker rather than in a request pipeline. QuietHoursStart/End suppress sends during the night in the SUBSCRIPTION's locale (the window may cross midnight); waking a person at 3am is the fastest way to lose the browser permission permanently. Mobile holds only the NAMES of TitleSecrets entries for the publisher's Firebase service account and APNs .p8 key, never the credentials. VAPID keys are NOT here and never will be - they are platform-wide environment variables shared by both backends. Subscriptions themselves are not config either: they live in the shared PushEndpoints/PushBindings collections, one row per browser or device plus one row per topic it follows.

Input Schema

NameRequiredDescriptionDefault
valueYesPush notification settings for the title: the master switch, per-player and per-title send ceilings, quiet hours, and the NAMES of the publisher's mobile credentials in TitleSecrets. VAPID keys are NOT here - they are platform-wide environment variables. Subscriptions themselves live in the shared PushEndpoints/PushBindings collections, not in the config.
title_idYesTitleID, для которого сохраняются данные.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and readOnlyHint=false, and the description goes well beyond them: it explains IsEnabled defaults to DISABLED, that mobile holds names not credentials, that VAPID keys and subscriptions live elsewhere, that MaxSendsPerTitlePerDay is the only broadcast ceiling the API quota cannot see, and quiet-hours semantics. Rich behavior beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The leading 'PARTIAL SAVE' clause is well front-loaded, but the body is a dense run-on of many concerns (night sends, 3am, VAPID, subscriptions) in one paragraph. Most sentences earn their place through real behavioral detail, but the piece is longer than needed and lower-signal lines dilute the structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and a nested config object, the description covers the mutation, default-to-off behavior, credential handling, and what is not in scope (VAPID, subscriptions). It is largely complete for a save tool, though it omits the response/return behavior and any precedence with get_push.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every nested field carries its own detailed description, so the schema does the heavy lifting. The description adds conceptual framing (partial save, master switch default, quiet hours locale) but little new per-parameter semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (save/write) and precisely scopes it: 'writes ONLY the Push field of TitlePublicConfigurationModel; all other v1/v2 fields stay untouched.' This is a specific verb+resource and distinguishes it from the many sibling save_* tools by naming the exact field and model touched.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'PARTIAL SAVE' framing and the note that other fields stay untouched implies when to use it (targeted push config updates), and the pairing with get_push is implicit. But there is no explicit when-to-use vs the sibling save_* tools or declaration of prerequisites (e.g. must read first). Usage is inferred, not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.