Skip to main content
Glama

configure_inapp_banner

Idempotent

Configure and publish on-site in-app popups or banners through the PushNotif SDK without browser push permission, enabling visual promos and announcements on your website.

Instructions

Configure and publish an on-site In-App Popup or Banner (center modal, top sticky bar, or bottom slide-in toast) rendered inside the website by the PushNotif SDK without requiring browser push permission. Use this tool for visual in-page promos and announcements; do not use it for OS lock-screen notifications (use send_push_notification instead). Prerequisite: call list_apps first to obtain app_id. Requires PUSHNOTIF_API_KEY; saving configuration is idempotent and costs 0 credits, while each live visitor display deducts 1 credit (inapp_trigger controls when the banner fires—such as 'scroll_50' for 50% page scroll or 'event:add_to_cart' for custom DOM events—combined with inapp_freq to cap repeat impressions per visitor). Returns JSON { ok, app_id, inapp_enabled, inapp_style, inapp_trigger, inapp_freq }.

Input Schema

NameRequiredDescriptionDefault
app_idYesTarget application ID in format app_xxxx (obtain from list_apps)
inapp_bodyYesBanner supporting message text (1 to 240 characters)
inapp_freqNoPer-visitor frequency cap: 'once_per_session' (default), 'once_per_day', 'cooldown_3h', 'cooldown_12h', 'once_per_week', or 'always'
inapp_styleNoVisual layout: 'modal' (center dialog), 'top_bar' (sticky top ribbon), or 'bottom_slide' (corner slide-in toast)
inapp_titleYesBanner headline text (1 to 100 characters)
inapp_accentNoOptional 6-digit hex color code for the CTA button and accent border (default: '#0058BE')
inapp_cta_urlNoOptional HTTPS destination URL opened when the CTA button is clicked
inapp_enabledNoSet true to publish the banner live on the website, or false to pause it (default: true)
inapp_triggerNoTrigger condition: 'immediate' (default), 'delay_5s', 'delay_10s', 'scroll_50', 'scroll_80', or custom DOM event 'event:<name>'
inapp_cta_textNoOptional CTA button label (must be paired with inapp_cta_url to render a clickable action button)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv2.2.0
    • changedInput schema / properties / inapp_accent / description
      Previous value: -"Optional hex color code for the CTA button and accent border (default: '#0058BE')"New value: +"Optional 6-digit hex color code for the CTA button and accent border (default: '#0058BE')"
    • changedInput schema / properties / inapp_cta_text / description
      Previous value: -"Optional call-to-action button label (e.g., 'Klaim Voucher →')"New value: +"Optional CTA button label (must be paired with inapp_cta_url to render a clickable action button)"
    • changedInput schema / properties / inapp_cta_url / description
      Previous value: -"Optional HTTPS URL opened when the CTA button is clicked"New value: +"Optional HTTPS destination URL opened when the CTA button is clicked"
    • changedInput schema / properties / inapp_enabled / description
      Previous value: -"Set true to activate the banner on the website, or false to pause it (default: true)"New value: +"Set true to publish the banner live on the website, or false to pause it (default: true)"
    • changedInput schema / properties / inapp_style / description
      Previous value: -"Visual layout style: 'modal' (center dialog), 'top_bar' (sticky top ribbon), or 'bottom_slide' (corner toast card)"New value: +"Visual layout: 'modal' (center dialog), 'top_bar' (sticky top ribbon), or 'bottom_slide' (corner slide-in toast)"
    • changedInput schema / properties / inapp_trigger / description
      Previous value: -"Display trigger condition: 'immediate' (default), 'delay_5s', 'delay_10s', 'scroll_50', 'scroll_80', or custom DOM event 'event:<name>'"New value: +"Trigger condition: 'immediate' (default), 'delay_5s', 'delay_10s', 'scroll_50', 'scroll_80', or custom DOM event 'event:<name>'"
  2. Changed10 schema fields changedv2.1.2
    • changedInput schema / properties / app_id / description
      Previous value: -"App ID yang ingin diatur"New value: +"Target application ID in format app_xxxx (obtain from list_apps)"
    • changedInput schema / properties / inapp_accent / description
      Previous value: -"Kode warna HEX tombol (misal: #0058BE, #047857, #E11D48)"New value: +"Optional hex color code for the CTA button and accent border (default: '#0058BE')"
    • changedInput schema / properties / inapp_body / description
      Previous value: -"Isi pesan singkat"New value: +"Banner supporting message text (1 to 240 characters)"
    • changedInput schema / properties / inapp_cta_text / description
      Previous value: -"Teks tombol aksi (CTA)"New value: +"Optional call-to-action button label (e.g., 'Klaim Voucher →')"
    • changedInput schema / properties / inapp_cta_url / description
      Previous value: -"URL tujuan saat tombol diklik"New value: +"Optional HTTPS URL opened when the CTA button is clicked"
    • changedInput schema / properties / inapp_enabled / description
      Previous value: -"True untuk mengaktifkan banner di website/aplikasi"New value: +"Set true to activate the banner on the website, or false to pause it (default: true)"
    • changedInput schema / properties / inapp_freq / description
      Previous value: -"Frekuensi tampil: once_per_session, once_per_day, always, cooldown_3h, cooldown_12h, once_per_week"New value: +"Per-visitor frequency cap: 'once_per_session' (default), 'once_per_day', 'cooldown_3h', 'cooldown_12h', 'once_per_week', or 'always'"
    • changedInput schema / properties / inapp_style / description
      Previous value: -"Gaya tampilan: modal, top_bar, atau bottom_slide"New value: +"Visual layout style: 'modal' (center dialog), 'top_bar' (sticky top ribbon), or 'bottom_slide' (corner toast card)"
    • changedInput schema / properties / inapp_title / description
      Previous value: -"Judul pengumuman/promo"New value: +"Banner headline text (1 to 100 characters)"
    • changedInput schema / properties / inapp_trigger / description
      Previous value: -"Pemicu muncul: immediate, delay_5s, delay_10s, scroll_50, scroll_80, atau event:nama_event (misal: event:add_to_cart, event:payment_success)"New value: +"Display trigger condition: 'immediate' (default), 'delay_5s', 'delay_10s', 'scroll_50', 'scroll_80', or custom DOM event 'event:<name>'"
  3. First observedv2.1.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already cover non-destructive, idempotent, closed-world, but the description adds the things annotations cannot: the PUSHNOTIF_API_KEY requirement, that saving is free while each live impression costs 1 credit, and the exact JSON shape returned. That is exactly the value-add behavior layer.

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

Conciseness4/5

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

Front-loaded with purpose and the sibling exclusion, and every sentence carries information (prerequisite, auth, cost model, return shape). It is dense and somewhat run-on — the trigger/frequency parenthetical could be split — so not a 5.

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?

For a 10-parameter mutation tool with no output schema, the description supplies the return shape, auth, cost model, idempotency and prerequisite. Gaps are minor: nothing about error behavior (e.g. invalid app_id) or what happens to an already-published banner when inapp_enabled is omitted.

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?

With 100% schema coverage the schema already documents all ten parameters including the trigger and frequency enums, so the baseline is 3. The description does add a little meaning by explaining that inapp_trigger and inapp_freq work together to cap impressions, but most of its parameter prose restates values already in the schema.

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 (configure/publish) and resource (In-App Popup or Banner) plus the concrete render styles, and explicitly contrasts it with the OS-notification sibling send_push_notification. An agent can distinguish it from every other tool in the sibling list without opening the schema.

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

Usage Guidelines5/5

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

Gives both directions: 'use this tool for visual in-page promos and announcements' and 'do not use it for OS lock-screen notifications (use send_push_notification instead)'. It also names a prerequisite (call list_apps first for app_id), which is a routing instruction, not just context.

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